1 |
jmc |
1.3 |
C $Header: /u/gcmpack/MITgcm/pkg/flt/FLT.h,v 1.2 2009/01/08 19:40:41 jmc Exp $ |
2 |
jmc |
1.2 |
C $Name: $ |
3 |
adcroft |
1.1 |
|
4 |
jmc |
1.2 |
C ================================================================== |
5 |
|
|
C HEADER flt |
6 |
|
|
C ================================================================== |
7 |
|
|
C |
8 |
|
|
C o This header file contains variables that are used by the |
9 |
|
|
C flt package. |
10 |
|
|
C |
11 |
|
|
C ================================================================== |
12 |
|
|
C HEADER flt |
13 |
|
|
C ================================================================== |
14 |
|
|
|
15 |
|
|
C== Size == |
16 |
|
|
|
17 |
|
|
C max_npart_tile :: maximum number of floats on a tile |
18 |
|
|
C normally npart_tile < max_npart, but could be the same |
19 |
|
|
C for safety |
20 |
|
|
C max_npart_exch :: maximum number of floats on a tile that can be |
21 |
|
|
C exchanged at one time |
22 |
|
|
C normally max_npart_exch < max_npart_tile, |
23 |
|
|
C but could be the same for safety |
24 |
|
|
C |
25 |
|
|
INTEGER max_npart_tile, max_npart_exch |
26 |
|
|
PARAMETER (max_npart_tile = 300) |
27 |
|
|
PARAMETER (max_npart_exch = 50) |
28 |
|
|
|
29 |
|
|
C== Constant == |
30 |
adcroft |
1.1 |
|
31 |
jmc |
1.2 |
C flt_surf :: "surface" level of the floats. |
32 |
|
|
C Can be deeper than 1, e.g. IF no mixed layer model is used |
33 |
|
|
C flt_nan :: qualifier for a float that is not yet released or that died |
34 |
|
|
_RL flt_surf |
35 |
|
|
_RL flt_nan |
36 |
|
|
PARAMETER (flt_surf = 1.) |
37 |
|
|
PARAMETER (flt_nan = -999.) |
38 |
adcroft |
1.1 |
|
39 |
jmc |
1.2 |
C Full domain extension: |
40 |
|
|
C flt_xLo :: Full domain lower X boundary |
41 |
|
|
C flt_xHi :: Full domain upper X boundary |
42 |
|
|
C flt_yLo :: Full domain lower Y boundary |
43 |
jmc |
1.3 |
C flt_yHi :: Full domain upper Y boundary |
44 |
jmc |
1.2 |
C |
45 |
|
|
_RL flt_xLo, flt_xHi, flt_yLo, flt_yHi |
46 |
|
|
COMMON / FLT_CONST_R / |
47 |
|
|
& flt_xLo, flt_xHi, flt_yLo, flt_yHi |
48 |
|
|
|
49 |
|
|
C== Parameters == |
50 |
|
|
|
51 |
|
|
C flt_noise :: range of noise added to the velocity component |
52 |
|
|
C (randomly). The noise can be added or subtracted, |
53 |
|
|
C the range is +/- flt_noise/2 |
54 |
|
|
C flt_int_traj :: period between storing model state at float position, in s |
55 |
|
|
C flt_int_prof :: period between float vertical profiles, in s |
56 |
|
|
C |
57 |
|
|
C note: flt_int_prof is the time between getting profiles, not the |
58 |
|
|
C the return cycle of the float to the surface. The latter can |
59 |
|
|
C be specified individually for every float. Because the mechanism |
60 |
|
|
C for return ing to the surface is called in the profiling routine |
61 |
|
|
C flt_int_prof has to be the minimum of all iup(max_npart). |
62 |
|
|
C The subsampling of profiles can be done later in the analysis. |
63 |
|
|
C |
64 |
|
|
_RL flt_noise |
65 |
|
|
_RL flt_int_traj, flt_int_prof |
66 |
|
|
COMMON / FLT_PARAM_R / |
67 |
|
|
& flt_noise, |
68 |
|
|
& flt_int_traj, flt_int_prof |
69 |
|
|
|
70 |
|
|
C flt_file :: name of the file containing the initial positions. |
71 |
|
|
C At initialization the program first looks for a |
72 |
|
|
C global file flt_file.data. If that is not found it |
73 |
|
|
C looks for tiled files flt_file.iG.jG.data. |
74 |
|
|
C |
75 |
|
|
CHARACTER*(MAX_LEN_FNAM) flt_file |
76 |
|
|
COMMON / FLT_PARAM_C / flt_file |
77 |
|
|
|
78 |
|
|
C== Float State == |
79 |
adcroft |
1.1 |
|
80 |
jmc |
1.2 |
C npart_tile :: actual number of floats per tile |
81 |
|
|
C |
82 |
adcroft |
1.1 |
INTEGER npart_tile(nSx,nSy) |
83 |
jmc |
1.2 |
COMMON / FLT_STATE_I / npart_tile |
84 |
adcroft |
1.1 |
|
85 |
jmc |
1.2 |
C max_npart :: total number of floats |
86 |
|
|
C (this is read from the input files) |
87 |
|
|
C |
88 |
|
|
_RL max_npart |
89 |
|
|
COMMON / FLT_STATE_R / max_npart |
90 |
|
|
|
91 |
|
|
C npart :: float identifier |
92 |
|
|
C tstart :: start date of integration of float, in s. |
93 |
|
|
C Note: If tstart=-1 floats are integrated right from the |
94 |
|
|
C beginning |
95 |
|
|
C tend :: end date of integration of float, in s. |
96 |
|
|
C Note: If tend=-1 floats are integrated till the end of |
97 |
|
|
C integration |
98 |
jmc |
1.3 |
C ipart :: horiz. position of float : 1rst decimal (local) index |
99 |
|
|
C jpart :: horiz. position of float : 2nd decimal (local) index |
100 |
|
|
C kpart :: vertical level of float (decimal number in case of 3D float) |
101 |
jmc |
1.2 |
C kfloat :: target depth of float. |
102 |
jmc |
1.3 |
C iup :: type of float : |
103 |
|
|
C o should profile ( > 0 = return cycle, in s, to surface) |
104 |
|
|
C o remain at depth ( = 0 ) |
105 |
|
|
C o is a 3D float ( = -1 ) |
106 |
|
|
C o should be advected without additional noise ( = -2 ). |
107 |
jmc |
1.2 |
C This implies that the float is non-profiling |
108 |
jmc |
1.3 |
C o is a mooring ( = -3 ), i.e. the float is not advected |
109 |
jmc |
1.2 |
C itop :: time of float the surface, in s |
110 |
adcroft |
1.1 |
_RL npart(max_npart_tile,nSx,nSy) |
111 |
|
|
_RL tstart(max_npart_tile,nSx,nSy) |
112 |
|
|
_RL tend(max_npart_tile,nSx,nSy) |
113 |
jmc |
1.3 |
_RL ipart(max_npart_tile,nSx,nSy) |
114 |
|
|
_RL jpart(max_npart_tile,nSx,nSy) |
115 |
adcroft |
1.1 |
_RL kpart(max_npart_tile,nSx,nSy) |
116 |
|
|
_RL kfloat(max_npart_tile,nSx,nSy) |
117 |
|
|
_RL iup(max_npart_tile,nSx,nSy) |
118 |
|
|
_RL itop(max_npart_tile,nSx,nSy) |
119 |
|
|
|
120 |
jmc |
1.2 |
COMMON / FLT_STATE_VAR / |
121 |
|
|
& npart, tstart, tend, |
122 |
jmc |
1.3 |
& ipart, jpart, kpart, |
123 |
jmc |
1.2 |
& kfloat, iup, itop |
124 |
adcroft |
1.1 |
|
125 |
jmc |
1.2 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |