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. CHARACTER*(MAX_LEN_FNAM) flt_file COMMON / FLT_PARAM_C / flt_file 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 _RL 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) COMMON / FLT_STATE_VAR / & npart, tstart, tend, & ipart, jpart, kpart, & kfloat, iup, itop C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|