Difference between revisions of "floats.in"

From WikiROMS
Jump to navigationJump to search
m (Text replacement - "ocean.in" to "roms.in")   (change visibility)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
<div class="title">Standard Input Script - <span class="red">floats.in</span></div>
<div class="title">Standard Input Script - <span class="red">floats.in</span></div>


The <span class="red">floats.in</span> file provides the initial locations of the float trajectories to compute. The name of this file is set by the <span class="blue">FPOSNAME</span> variable of the [[ocean.in]] file. This standard input ASCII file is organized in several sections as shown below, with links to more detailed explanation where required.
The <span class="red">floats.in</span> file provides the initial locations of the float trajectories to compute. The name of this file is set by the <span class="blue">FPOSNAM</span> keyword in the [[roms.in]] file. This standard input ASCII file is organized in several sections as shown below, with links to more detailed explanation where required.




Line 15: Line 15:




==Floats output model control switches==
==Floats Output Model Control Switches==
*This switch controls the computation of floats trajectories within nested and/or multiple connected grids. [1:[[Ngrids]]] values are expected. By default this switch is set to '''TRUE''' in <span class="red">mod_scalars</span> for all grids when the [[Options|CPP option]] [[FLOATS]] is activated. The '''user''' can control which grid to process by turning on/off this switch.
*This switch controls the computation of floats trajectories within nested and/or multiple connected grids. [1:[[Ngrids]]] values are expected. By default this switch is set to '''TRUE''' in [[mod_scalars.F]] for all grids when the [[Options|CPP option]] [[FLOATS]] is activated. The '''user''' can control which grid to process by turning on/off this switch.
:<div class="box">    [[Variables#Lfloats|Lfloats]] == T</div>
:<div class="box">    [[Variables#Lfloats|Lfloats]] == T</div>
*This switch controls the printing of floats positions to standard output file. This switch can be used to turn off the printing of information when thousands of floats are released.  This information is still in the output floats NetCDF file. [1:[[Ngrids]]] values are expected.
:<div class="box">      [[Variables#Fprint|Fprint]] == T</div>


*This flag tells ROMS how to handle floats when restarting ROMS from a previous solution. For new solutions (not a model restart) use <span class="blue">FRREC</span>=0. In a re-start solution, <span class="blue">FRREC</span> is the time index in the floats NetCDF file assigned for initialization.  If <span class="blue">FRREC</span> is negative (say <span class="blue">FRREC</span>=-1), the floats will re-start from the most recent time record. That is, the initialization record is assigned internally.
*This flag tells ROMS how to handle floats when restarting ROMS from a previous solution. For new solutions (not a model restart) use <span class="blue">FRREC</span>=0. In a re-start solution, <span class="blue">FRREC</span> is the time index in the floats NetCDF file assigned for initialization.  If <span class="blue">FRREC</span> is negative (say <span class="blue">FRREC</span>=-1), the floats will re-start from the most recent time record. That is, the initialization record is assigned internally.
:<div class="box">      [[Variables#FRREC|FRREC]] == 0</div>
:<div class="box">      [[Variables#frrec|FRREC]] == 0</div>
 
==Biological Behavior==
*If applicable, input script file name containing biological floats behavior model parameters.
:<div class="box">    [[Variables#fbionam|FBIONAM]] == [[behavior_oyster.in]]</div>


==Float Locations==
==Float Locations==
*Number of floats to release in each nested grid. [1:[[Ngrids]]] values are expected. These values are essential because the [[FLOATS]] structure in <span class="red">mod_floats</span> is dynamically allocated using these values.
*Number of floats to release in each nested grid. [1:[[Ngrids]]] values are expected. These values are essential because the [[FLOATS]] structure in [[mod_floats.F]] is dynamically allocated using these values.
:<div class="box">    [[Variables#NFLOATS|NFLOATS]] == 9</div>
:<div class="box">    [[Variables#Nfloats|NFLOATS]] == 9</div>


*Initial float locations for all grids. The horizontal location for a particular float or group of floats can be given in grid (<span class="blue">I</span>, <span class="blue">J</span>) units (<span class="blue">C</span>=0) or spherical (<span class="blue">longitude</span>,<span class="blue">latitude</span>) coordinates (<span class="blue">C</span>=1).<br><br>{{note}}'''Note:''' The total number of float trajectories to compute must add up to [[Variables#NFLOATS|NFLOATS]]. Meaning the sum of the <span class="blue">N</span> column must be equal to [[Variables#NFLOATS|NFLOATS]], in this case '''9'''.<div class="box" style="margin-left:6px;">[[Variables#POS|POS]] = G, C, T, N,  Ft0,    Fx0,    Fy0,    Fz0,  Fdt,    Fdx,  Fdy,  Fdz<br><br>      1  0  1  1    0.d0    5.d0    5.d0  -45.d0  0.d0    0.d0  0.d0  0.d0<br>      1  0  1  8    0.d0  10.d0  10.d0  -25.d0  0.25d0  0.d0  0.d0  0.d0</div>where
*Initial float locations for all grids. The horizontal location for a particular float or group of floats can be given in grid (<span class="blue">I</span>, <span class="blue">J</span>) units (<span class="blue">C</span>&nbsp;=&nbsp;0) or spherical (<span class="blue">longitude</span>,<span class="blue">latitude</span>) coordinates (<span class="blue">C</span>&nbsp;=&nbsp;1).<br><br>{{note}}'''Note:''' The total number of float trajectories to compute must add up to [[Variables#Nfloats|NFLOATS]]. Meaning the sum of the <span class="blue">N</span> column must be equal to [[Variables#Nfloats|NFLOATS]], in this case '''9'''.<div class="box" style="margin-left:6px;">[[POS]] = G, C, T, N,  Ft0,    Fx0,    Fy0,    Fz0,  Fdt,    Fdx,  Fdy,  Fdz<br><br>      1  0  1  1    0.d0    5.d0    5.d0  -45.d0  0.d0    0.d0  0.d0  0.d0<br>      1  0  1  8    0.d0  10.d0  10.d0  -25.d0  0.25d0  0.d0  0.d0  0.d0</div>where


:;<span class="blue">G</span>
:;<span class="blue">G</span>
Line 32: Line 39:


:;<span class="blue">C</span>
:;<span class="blue">C</span>
::Initial horizontal location (<span class="blue">Fx0</span> and <span class="blue">Fy0</span>) coordinate type <nowiki>[</nowiki>[[Variables#Fcoor|Fcoor]]]. If [[Variables#Fcoor|Fcoor]] = 0 then we are using grid units so <span class="blue">Fx0</span> must be between 1&nbsp;and&nbsp;[[Variables#Lm|Lm(ng)]]+1 and <span class="blue">Fy0</span> must be between 1&nbsp;and&nbsp;[[Variables#Lm|Mm(ng)]]+1. If [[Variables#Fcoor|Fcoor]] = 0, then <span class="blue">Fx0</span> is longitude (west values are negative) and <span class="blue">Fy0</span> is latitude (south values are negative).
::Initial horizontal location ([[Variables#Fx0|Fx0]] and [[Variables#Fy0|Fy0]]) coordinate type <nowiki>[</nowiki>[[Variables#Fcoor|Fcoor]]]. If [[Variables#Fcoor|Fcoor]] = 0 then we are using grid units so [[Variables#Fx0|Fx0]] must be between 1&nbsp;and&nbsp;[[Variables#Lm|Lm(ng)]]+1 and [[Variables#Fy0|Fy0]] must be between 1&nbsp;and&nbsp;[[Variables#Lm|Mm(ng)]]+1. If [[Variables#Fcoor|Fcoor]] = 0, then [[Variables#Fx0|Fx0]] is longitude (west values are negative) and [[Variables#Fx0|Fx0]] is latitude (south values are negative).
 
:;<span class="blue">T</span>
:;<span class="blue">T</span>
::Float trajectory type <nowiki>[</nowiki>[[Variables#Ftype|Ftype]]]. If [[Variables#Ftype|Ftype]]&nbsp;=&nbsp;1, float(s) will be neutral density 3D Lagrangian particles.  If [[Variables#Ftype|Ftype]]&nbsp;=&nbsp;2, float(s) will be isobaric (constant depth) particles.
::Float trajectory type <nowiki>[</nowiki>[[Variables#Ftype|Ftype]]]. If [[Variables#Ftype|Ftype]]&nbsp;=&nbsp;1, float(s) will be 3D Lagrangrian particles.  If [[Variables#Ftype|Ftype]]&nbsp;=&nbsp;2, float(s) will be isobaric particles (<math>p=g*(z+zeta)=\text{constant}</math>). If [[Variables#Ftype|Ftype]]&nbsp;=&nbsp;3, float(s) will be geopotential (constant depth) particles.


:;<span class="blue">N</span>
:;<span class="blue">N</span>
:: Number of floats <nowiki>[</nowiki>[[Variables#Fcount|Fcount]]] to be released at the (<span class="blue">Fx0</span>,<span class="blue">Fy0</span>,<span class="blue">Fz0</span>) location.  It must be equal or greater than one. If [[Variables#Fcount|Fcount]] is greater than one, a cluster distribution of floats centered at (<span class="blue">Fx0</span>,<span class="blue">Fy0</span>,<span class="blue">Fz0</span>) is activated. As noted above, The total number of floats trajectories to compute must add up to NFLOATS.
:: Number of floats <nowiki>[</nowiki>[[Variables#Fcount|Fcount]]] to be released at the ([[Variables#Fx0|Fx0]],[[Variables#Fy0|Fy0]],[[Variables#Fz0|Fz0]]) location.  It must be equal or greater than one. If [[Variables#Fcount|Fcount]] is greater than one, a cluster distribution of floats centered at ([[Variables#Fx0|Fx0]],[[Variables#Fy0|Fy0]],[[Variables#Fz0|Fz0]]) is activated. As noted above, The total number of floats trajectories to compute must add up to [[Variables#Nfloats|NFLOATS]].


:;<span class="blue">Ft0</span>
:;'''[[Variables#Ft0|Ft0]]'''
::Time, in days, of float release after model initialization. This value must be of type real (''i.e.'' 0.d0).
::Time, in days, of float release after model initialization. This value must be of type real (''i.e.'' 0.d0).


:;<span class="blue">Fx0</span>
:;'''[[Variables#Fx0|Fx0]]'''
::Initial float(s) x-location in grid units or longitude depending on the value of [[Variables#Fcoor|Fcoor]] (<span class="blue">C</span>). This value must be of type real (''i.e.'' 5.d0).
::Initial float(s) x-location in grid units or longitude depending on the value of [[Variables#Fcoor|Fcoor]] (<span class="blue">C</span>). This value must be of type real (''i.e.'' 5.d0).


:;<span class="blue">Fy0</span>
:;'''[[Variables#Fy0|Fy0]]'''
::Initial float(s) y-location in grid units or longitude depending on the value of [[Variables#Fcoor|Fcoor]] (<span class="blue">C</span>). This value must be of type real (''i.e.'' 5.d0).
::Initial float(s) y-location in grid units or longitude depending on the value of [[Variables#Fcoor|Fcoor]] (<span class="blue">C</span>). This value must be of type real (''i.e.'' 5.d0).


:;<span class="blue">Fz0</span>
:;'''[[Variables#Fz0|Fz0]]'''
::Initial float(s) z-location in vertical levels or depth. If <span class="blue">Fz0</span> is less than or equal to zero then <span class="blue">Fz0</span> is the initial depth in meters. If <span class="blue">Fz0</span> is greater than 0 and less than [[Variables#N|N(ng)]] the initial position is relative to the W grid (0 is the bottom and N is the surface).  This value must be of type real (''i.e.'' -45.d0).
::Initial float(s) z-location in vertical levels or depth. If <span class="blue">Fz0</span> is less than or equal to zero then <span class="blue">Fz0</span> is the initial depth in meters. If <span class="blue">Fz0</span> is greater than 0 and less than [[Variables#N|N(ng)]] the initial position is relative to the W grid (0 is the bottom and N is the surface).  This value must be of type real (''i.e.'' -45.d0).
::{{warning}}'''Warning:''' If the depth in meters at particular horizontal is not bounded, the floats are released at the surface.
::{{warning}}'''Warning:''' If the depth in meters at particular horizontal is not bounded, the floats are released at the surface.


:;<span class="blue">Fdt</span>
:;'''[[Variables#Fdt|Fdt]]'''
::Float cluster release time interval in days. This is only used if [[Variables#Fcount|Fcount]] (<span class="blue">N</span>) is greater than '''1'''. If <span class="blue">Fdt</span>&nbsp;gt;&nbsp;'''0''' a cluster of floats will be deployed from (<span class="blue">Fx0</span>,<span class="blue">Fy0</span>,<span class="blue">Fz0</span>) at Fdt intervals until [[Variables#Fcount|Fcount]] floats are released. If <span class="blue">Fdt</span>&nbsp;=&nbsp;'''0''' [[Variables#Fcount|Fcount]] floats will be deployed simultaneously with a distribution centered at (<span class="blue">Fx0</span>,<span class="blue">Fy0</span>,<span class="blue">Fz0</span>) and defined by (<span class="blue">Fdx</span>,<span class="blue">Fdy</span>,<span class="blue">Fdz</span>). This value must be of type real (''i.e.'' 5.d0).
::Float cluster release time interval in days. This is only used if [[Variables#Fcount|Fcount]] (<span class="blue">N</span>) is greater than '''1'''. If <span class="blue">Fdt</span>&nbsp;gt;&nbsp;'''0''' a cluster of floats will be deployed from ([[Variables#Fx0|Fx0]],[[Variables#Fy0|Fy0]],[[Variables#Fz0|Fz0]]) at Fdt intervals until [[Variables#Fcount|Fcount]] floats are released. If <span class="blue">Fdt</span>&nbsp;=&nbsp;'''0''' [[Variables#Fcount|Fcount]] floats will be deployed simultaneously with a distribution centered at ([[Variables#Fx0|Fx0]],[[Variables#Fy0|Fy0]],[[Variables#Fz0|Fz0]]) and defined by ([[Variables#Fdx|Fdx]],[[Variables#Fdy|Fdy]],[[Variables#Fdz|Fdz]]). This value must be of type real (''i.e.'' 5.d0).


:;<span class="blue">Fdx</span>
:;'''[[Variables#Fdx|Fdx]]'''
::Cluster x-distribution parameter. This is only used if [[Variables#Fcount|Fcount]] (<span class="blue">N</span>) is greater than '''1''' and <span class="blue">Fdt</span>&nbsp;=&nbsp;0. This value must be of type real (''i.e.'' 5.d0).
::Cluster x-distribution parameter. This is only used if [[Variables#Fcount|Fcount]] (<span class="blue">N</span>) is greater than '''1''' and [[Variables#Fdt|Fdt]]&nbsp;=&nbsp;0. This value must be of type real (''i.e.'' 5.d0).


:;<span class="blue">Fdy</span>
:;'''[[Variables#Fdy|Fdy]]'''
::Cluster y-distribution parameter. This is only used if [[Variables#Fcount|Fcount]] (<span class="blue">N</span>) is greater than '''1''' and <span class="blue">Fdt</span>&nbsp;=&nbsp;0. This value must be of type real (''i.e.'' 5.d0).
::Cluster y-distribution parameter. This is only used if [[Variables#Fcount|Fcount]] (<span class="blue">N</span>) is greater than '''1''' and [[Variables#Fdt|Fdt]]&nbsp;=&nbsp;0. This value must be of type real (''i.e.'' 5.d0).


:;<span class="blue">Fdz</span>
:;'''[[Variables#Fdz|Fdz]]'''
::Cluster z-distribution parameter. This is only used if [[Variables#Fcount|Fcount]] (<span class="blue">N</span>) is greater than '''1''' and <span class="blue">Fdt</span>&nbsp;=&nbsp;0. This value must be of type real (''i.e.'' 5.d0).
::Cluster z-distribution parameter. This is only used if [[Variables#Fcount|Fcount]] (<span class="blue">N</span>) is greater than '''1''' and [[Variables#Fdt|Fdt]]&nbsp;=&nbsp;0. This value must be of type real (''i.e.'' 5.d0).


:{{note}}'''Note:''' The parameters (<span class="blue">Fdx</span>,<span class="blue">Fdy</span>,<span class="blue">Fdz</span>) can be used to specify any type of cluster distribution, for instance:
:{{note}}'''Note:''' The parameters ([[Variables#Fdx|Fdx]],[[Variables#Fdy|Fdy]],[[Variables#Fdz|Fdz]]) can be used to specify any type of cluster distribution, for instance:
:::<div class="box">Lines of floats:<br><br>  Fdx > 0,  Fdy = 0,  Fdz = 0<br>  Fdx = 0,  Fdy > 0,  Fdz = 0<br>  Fdx = 0,  Fdy = 0,  Fdz > 0</div>
:::<div class="box">Lines of floats:<br><br>  [[Variables#Fdx|Fdx]] > 0,  [[Variables#Fdy|Fdy]] = 0,  [[Variables#Fdz|Fdz]] = 0<br>  [[Variables#Fdx|Fdx]] = 0,  [[Variables#Fdy|Fdy]] > 0,  [[Variables#Fdz|Fdz]] = 0<br>  [[Variables#Fdx|Fdx]] = 0,  [[Variables#Fdy|Fdy]] = 0,  [[Variables#Fdz|Fdz]] > 0</div>
::The '''user''' can use any of these parameters to design any cluster distribution in routine <span class="red">init_floats.F</span>.
::The '''user''' can use any of these parameters to design any cluster distribution in routine [[init_floats.F]].

Latest revision as of 15:13, 17 July 2019

Standard Input Script - floats.in

The floats.in file provides the initial locations of the float trajectories to compute. The name of this file is set by the FPOSNAM keyword in the roms.in file. This standard input ASCII file is organized in several sections as shown below, with links to more detailed explanation where required.


Note Notice: Detailed information about ROMS input script file syntax can be found here.

Note Notice: A default floats.in input script is provided in the User/External subdirectory. Also there are several floats input scripts in the ROMS/External subdirectory which are used in the distributed test cases. They are usually named floats_app.in where app is the lowercase of the test case CPP option.



Introduction

Floats Output Model Control Switches

  • This switch controls the computation of floats trajectories within nested and/or multiple connected grids. [1:Ngrids] values are expected. By default this switch is set to TRUE in mod_scalars.F for all grids when the CPP option FLOATS is activated. The user can control which grid to process by turning on/off this switch.
Lfloats == T
  • This switch controls the printing of floats positions to standard output file. This switch can be used to turn off the printing of information when thousands of floats are released. This information is still in the output floats NetCDF file. [1:Ngrids] values are expected.
Fprint == T
  • This flag tells ROMS how to handle floats when restarting ROMS from a previous solution. For new solutions (not a model restart) use FRREC=0. In a re-start solution, FRREC is the time index in the floats NetCDF file assigned for initialization. If FRREC is negative (say FRREC=-1), the floats will re-start from the most recent time record. That is, the initialization record is assigned internally.
FRREC == 0

Biological Behavior

  • If applicable, input script file name containing biological floats behavior model parameters.

Float Locations

  • Number of floats to release in each nested grid. [1:Ngrids] values are expected. These values are essential because the FLOATS structure in mod_floats.F is dynamically allocated using these values.
NFLOATS == 9
  • Initial float locations for all grids. The horizontal location for a particular float or group of floats can be given in grid (I, J) units (C = 0) or spherical (longitude,latitude) coordinates (C = 1).

    NoteNote: The total number of float trajectories to compute must add up to NFLOATS. Meaning the sum of the N column must be equal to NFLOATS, in this case 9.
    POS = G, C, T, N, Ft0, Fx0, Fy0, Fz0, Fdt, Fdx, Fdy, Fdz

    1 0 1 1 0.d0 5.d0 5.d0 -45.d0 0.d0 0.d0 0.d0 0.d0
    1 0 1 8 0.d0 10.d0 10.d0 -25.d0 0.25d0 0.d0 0.d0 0.d0
    where
G
Nested grid number [ng]. This must be 1 in non-nested applications.
C
Initial horizontal location (Fx0 and Fy0) coordinate type [Fcoor]. If Fcoor = 0 then we are using grid units so Fx0 must be between 1 and Lm(ng)+1 and Fy0 must be between 1 and Mm(ng)+1. If Fcoor = 0, then Fx0 is longitude (west values are negative) and Fx0 is latitude (south values are negative).
T
Float trajectory type [Ftype]. If Ftype = 1, float(s) will be 3D Lagrangrian particles. If Ftype = 2, float(s) will be isobaric particles (). If Ftype = 3, float(s) will be geopotential (constant depth) particles.
N
Number of floats [Fcount] to be released at the (Fx0,Fy0,Fz0) location. It must be equal or greater than one. If Fcount is greater than one, a cluster distribution of floats centered at (Fx0,Fy0,Fz0) is activated. As noted above, The total number of floats trajectories to compute must add up to NFLOATS.
Ft0
Time, in days, of float release after model initialization. This value must be of type real (i.e. 0.d0).
Fx0
Initial float(s) x-location in grid units or longitude depending on the value of Fcoor (C). This value must be of type real (i.e. 5.d0).
Fy0
Initial float(s) y-location in grid units or longitude depending on the value of Fcoor (C). This value must be of type real (i.e. 5.d0).
Fz0
Initial float(s) z-location in vertical levels or depth. If Fz0 is less than or equal to zero then Fz0 is the initial depth in meters. If Fz0 is greater than 0 and less than N(ng) the initial position is relative to the W grid (0 is the bottom and N is the surface). This value must be of type real (i.e. -45.d0).
WarningWarning: If the depth in meters at particular horizontal is not bounded, the floats are released at the surface.
Fdt
Float cluster release time interval in days. This is only used if Fcount (N) is greater than 1. If Fdt gt; 0 a cluster of floats will be deployed from (Fx0,Fy0,Fz0) at Fdt intervals until Fcount floats are released. If Fdt = 0 Fcount floats will be deployed simultaneously with a distribution centered at (Fx0,Fy0,Fz0) and defined by (Fdx,Fdy,Fdz). This value must be of type real (i.e. 5.d0).
Fdx
Cluster x-distribution parameter. This is only used if Fcount (N) is greater than 1 and Fdt = 0. This value must be of type real (i.e. 5.d0).
Fdy
Cluster y-distribution parameter. This is only used if Fcount (N) is greater than 1 and Fdt = 0. This value must be of type real (i.e. 5.d0).
Fdz
Cluster z-distribution parameter. This is only used if Fcount (N) is greater than 1 and Fdt = 0. This value must be of type real (i.e. 5.d0).
NoteNote: The parameters (Fdx,Fdy,Fdz) can be used to specify any type of cluster distribution, for instance:
Lines of floats:

Fdx > 0, Fdy = 0, Fdz = 0
Fdx = 0, Fdy > 0, Fdz = 0
Fdx = 0, Fdy = 0, Fdz > 0
The user can use any of these parameters to design any cluster distribution in routine init_floats.F.