-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFLT.h
136 lines (118 loc) · 5.66 KB
/
FLT.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
C $Header: /u/gcmpack/MITgcm/pkg/flt/FLT.h,v 1.8 2012/09/12 22:03:00 dfer Exp $
C $Name: $
C ==================================================================
C HEADER flt
C ==================================================================
C
C o This header file contains variables that are used by the
C flt package.
C
C ==================================================================
C HEADER flt
C ==================================================================
C== Constant ==
C flt_surf :: "surface" level of the floats.
C Can be deeper than 1, e.g. IF no mixed layer model is used
C flt_nan :: qualifier for a float that is not yet released or that died
_RL flt_surf
_RL flt_nan
PARAMETER (flt_surf = 1.)
PARAMETER (flt_nan = -999.)
C Full domain extension:
C flt_xLo :: Full domain lower X boundary
C flt_xHi :: Full domain upper X boundary
C flt_yLo :: Full domain lower Y boundary
C flt_yHi :: Full domain upper Y boundary
_RL flt_xLo, flt_xHi, flt_yLo, flt_yHi
COMMON / FLT_CONST_R /
& flt_xLo, flt_xHi, flt_yLo, flt_yHi
C== Parameters ==
C flt_noise :: range of noise added to the velocity component
C (randomly). The noise can be added or subtracted,
C the range is +/- flt_noise/2
C flt_deltaT :: time-step to step forward floats (in flt_runga2.F)
C default is deltaTClock
C flt_int_traj :: period between storing model state at float position, in s
C flt_int_prof :: period between float vertical profiles, in s
C FLT_Iter0 :: timestep number when float are initialized
C
C note: flt_int_prof is the time between getting profiles, not the
C the return cycle of the float to the surface. The latter can
C be specified individually for every float. Because the mechanism
C for returning to the surface is called in the profiling routine
C flt_int_prof has to be the minimum of all iup(max_npart).
C The subsampling of profiles can be done later in the analysis.
_RL flt_noise, flt_deltaT
_RL flt_int_traj, flt_int_prof
INTEGER FLT_Iter0
COMMON / FLT_PARAM_R /
& flt_noise, flt_deltaT,
& flt_int_traj, flt_int_prof,
& FLT_Iter0
C flt_selectTrajOutp :: select which var. to output along trajectories
C flt_selectProfOutp :: select which var. to output along profiles
C =0 : none ; =1 : position only ; =2 : +p,u,v,t,s
INTEGER flt_selectTrajOutp
INTEGER flt_selectProfOutp
COMMON / FLT_PARAM_I /
& flt_selectTrajOutp, flt_selectProfOutp
C flt_file :: name of the file containing the initial positions.
C At initialization the program first looks for a
C global file flt_file.data. If that is not found it
C looks for tiled files flt_file.iG.jG.data.
C-------Start Nathaniel Hack ---------------------
C flt_npart :: integer number of floats in flt_file
INTEGER flt_npart
CHARACTER*(MAX_LEN_FNAM) flt_file
COMMON / FLT_PARAM_C /
& flt_file, flt_npart
C---------End Nathaniel Hack-----------------------
C mapIniPos2Index :: convert float initial position to (local) index map
LOGICAL mapIniPos2Index
COMMON / FLT_PARAM_L / mapIniPos2Index
C== Float State ==
C npart_tile :: actual number of floats per tile
INTEGER npart_tile(nSx,nSy)
COMMON / FLT_STATE_I / npart_tile
C max_npart :: total number of floats
C (this is read from the input files)
_RL max_npart
COMMON / FLT_STATE_R / max_npart
C npart :: float identifier
C tstart :: start date of integration of float, in s.
C Note: If tstart=-1 floats are integrated right from the
C beginning
C tend :: end date of integration of float, in s.
C Note: If tend=-1 floats are integrated till the end of
C integration
C ipart :: horiz. position of float : 1rst decimal (local) index
C jpart :: horiz. position of float : 2nd decimal (local) index
C kpart :: vertical level of float (decimal number in case of 3D float)
C kfloat :: target depth of float.
C iup :: type of float :
C o should profile ( > 0 = return cycle, in s, to surface)
C o remain at depth ( = 0 )
C o is a 3D float ( = -1 )
C o should be advected without additional noise ( = -2 ).
C This implies that the float is non-profiling
C o is a mooring ( = -3 ), i.e. the float is not advected
C itop :: time of float the surface, in s
C------------begin Nathaniel LAVD hack ------------------
C lavd :: the lavd of the particle
INTEGER npart(max_npart_tile,nSx,nSy)
_RL tstart(max_npart_tile,nSx,nSy)
_RL tend(max_npart_tile,nSx,nSy)
_RL ipart(max_npart_tile,nSx,nSy)
_RL jpart(max_npart_tile,nSx,nSy)
_RL kpart(max_npart_tile,nSx,nSy)
_RL kfloat(max_npart_tile,nSx,nSy)
_RL iup(max_npart_tile,nSx,nSy)
_RL itop(max_npart_tile,nSx,nSy)
_RL lavd(max_npart_tile,nSx,nSy)
COMMON / FLT_STATE_VAR /
& npart, tstart, tend,
& ipart, jpart, kpart,
& kfloat, iup, itop,
& lavd
C-----------end Nathaniel LAVD hack --------------------
C--- +----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|