/[MITgcm]/MITgcm/model/src/packages_init_variables.F
ViewVC logotype

Diff of /MITgcm/model/src/packages_init_variables.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.13 by jmc, Wed Oct 9 00:57:57 2002 UTC revision 1.94 by jmc, Fri Apr 4 20:54:11 2014 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    #ifdef ALLOW_AUTODIFF
7    # include "AUTODIFF_OPTIONS.h"
8    #endif
9    #ifdef ALLOW_CTRL
10    # include "CTRL_OPTIONS.h"
11    #endif
12    
13  CBOP  CBOP
14  C     !ROUTINE: PACKAGES_INIT_VARIABLES  C     !ROUTINE: PACKAGES_INIT_VARIABLES
# Line 8  C     !INTERFACE: Line 17  C     !INTERFACE:
17    
18  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
19  C     *==========================================================*  C     *==========================================================*
20  C     | SUBROUTINE PACKAGES_INIT_VARIABLES                          C     | SUBROUTINE PACKAGES_INIT_VARIABLES
21  C     | o Does initialisation of package-related variable data      C     | o Does initialisation of package-related variable data
22  C     *==========================================================*  C     *==========================================================*
23  C     \ev  C     \ev
24    
25  C     !CALLING SEQUENCE:  C     !CALLING SEQUENCE:
26  C     PACKAGES_INIT_VARIABLES  C     PACKAGES_INIT_VARIABLES
27  C       |  C       |
28  C       |-- GMREDI_INIT  C       |-- DIAGNOSTICS_INIT_VARIA
29  C       |  C       |
30  C       |-- KPP_INIT  C       |-- OFFLINE_INIT_VARIA
 C       |-- KPP_OPEN_DIAGS  
31  C       |  C       |
32  C       |-- OBCS_INIT_VARIABLES  C       |-- GAD_INIT_VARIA
33  C       |  C       |
34  C       |-- CTRL_MAP_INI  C       |-- CD_CODE_INI_VARS
35    C       |
36    C       |-- PP81_INIT_VARIA
37    C       |
38    C       |-- MY82_INIT_VARIA
39    C       |
40    C       |-- GGL90_INIT_VARIA
41    C       |
42    C       |-- KPP_INIT_VARIA
43    C       |
44    C       |-- GMREDI_INIT_VARIA
45    C       |
46    C       |-- BBL_INIT_VARIA
47    C       |
48    C       |-- DWNSLP_INIT_VARIA
49    C       |
50    C       |-- EXF_INIT
51    C       |
52    C       |-- BULKF_INIT_VARIA
53    C       |
54    C       |-- EBM_INI_VARS
55    C       |
56    C       |-- CHEAPAML_INIT_VARIA
57    C       |
58    C       |-- SMOOTH_INIT_VARIA
59    C       |
60    C       |-- PROFILES_INIT_VARIA
61    C       |
62    C       |-- FLT_INIT_VARIA
63    C       |
64    C       |-- PTRACERS_INIT_VARIA
65  C       |  C       |
66  C       |-- COST_INIT  C       |-- LONGSTEP_INIT_VARIA
67  C       |  C       |
68  C       |-- ECCO_INIT  C       |-- GCHEM_INIT_VARI
69  C       |  C       |
70  C       |-- INI_FORCING  C       |-- RBCS_INIT_VARIA
71    C       |
72    C       |-- MATRIX_INIT_VARIA
73    C       |
74    C       |-- FRAZIL_INIT_VARIA
75    C       |
76    C       |-- SEAICE_INIT_VARIA
77    C       |
78    C       |-- SALT_PLUME_INIT_VARIA
79    C       |
80    C       |-- SHELFICE_INIT_VARIA
81    C       |
82    C       |-- STREAMICE_INIT_VARIA
83    C       |
84    C       |-- ICEFRONT_INIT_VARIA
85    C       |
86    C       |-- THSICE_INI_VARS
87    C       |
88    C       |-- LAND_INI_VARS
89    C       |
90    C       |-- ATM2D_INIT_VARS
91    C       |
92    C       |-- ATM_PHYS_INIT_VARIA
93    C       |
94    C       |-- FIZHI_INI_VARS
95    C       |
96    C       |-- REGRID_INIT_VARIA
97    C       |
98    C       |-- LAYERS_INIT_VARIA
99    C       |
100    C       |-- NEST_CHILD_INIT_VARIA
101    C       |-- NEST_PARENT_INIT_VARIA
102    C       |
103    C       |-- CPL_INI_VARS
104    C       |
105    C       |-- MYPACKAGE_INIT_VARIA
106    C       |
107    C       |-- CTRL_INIT_VARIABLES
108    C       |-- CTRL_MAP_INI_ECCO
109    C       |-- CTRL_MAP_INI
110    C       |
111    C       |-- OBCS_INIT_VARIABLES
112    
113  C     !USES:  C     !USES:
114        IMPLICIT NONE        IMPLICIT NONE
# Line 37  C     === Global variables === Line 116  C     === Global variables ===
116  #include "SIZE.h"  #include "SIZE.h"
117  #include "EEPARAMS.h"  #include "EEPARAMS.h"
118  #include "PARAMS.h"  #include "PARAMS.h"
119    #ifdef ALLOW_AUTODIFF
120    # include "DYNVARS.h"
121    # include "tamc.h"
122    # include "tamc_keys.h"
123    #endif
124    
125  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
126  C     === Routine arguments ===  C     === Routine arguments ===
127  C     myThid -  Number of this instances  C     myThid  :: my Thread Id number
128        INTEGER myThid        INTEGER myThid
129  CEOP  CEOP
130    
131  #ifdef ALLOW_GMREDI  #ifdef ALLOW_DEBUG
132  C--   Initialize GM/Redi parameterization        IF (debugMode)
133        IF (useGMRedi) CALL GMREDI_INIT( myThid )       &     CALL DEBUG_ENTER('PACKAGES_INIT_VARIABLES',myThid)
134    #endif /* ALLOW_DEBUG */
135    
136    #ifdef ALLOW_DIAGNOSTICS
137          IF ( useDiagnostics ) THEN
138            CALL DIAGNOSTICS_INIT_VARIA( myThid )
139          ENDIF
140    #endif /* ALLOW_DIAGNOSTICS */
141    
142    #ifdef ALLOW_OFFLINE
143    C--   Here we call OFFLINE_INIT_VARIA (which calls OFFLINE_FIELDS_LOAD)
144    C     before other {PKG}_init_varia, closer to where main pickup-file
145    C     are usually read-in (but skipped when using pkg/offline)
146    # ifndef ALLOW_AUTODIFF
147          IF ( useOFFLINE ) THEN
148    # endif
149            CALL OFFLINE_INIT_VARIA( myThid )
150    # ifndef ALLOW_AUTODIFF
151          ENDIF
152    # endif
153    #endif /* ALLOW_OFFLINE */
154    
155    #ifdef ALLOW_GENERIC_ADVDIFF
156          IF ( useGAD ) THEN
157    # ifdef ALLOW_DEBUG
158            IF (debugMode) CALL DEBUG_CALL('GAD_INIT_VARIA',myThid)
159    # endif
160            CALL GAD_INIT_VARIA( myThid )
161          ENDIF
162    #endif /* ALLOW_GENERIC_ADVDIFF */
163    
164    #ifdef ALLOW_CD_CODE
165    C--   Initialize CD_CODE variables:
166    C- note(jmc): before packaging CD_CODE, was done within ini_fields (=called before),
167    C             therefore call CD-ini-vars before others pkg.
168          IF (useCDscheme) THEN
169    # ifdef ALLOW_DEBUG
170            IF (debugMode) CALL DEBUG_CALL('CD_CODE_INI_VARS',myThid)
171    # endif
172            CALL CD_CODE_INI_VARS( myThid )
173          ENDIF
174    #endif /* ALLOW_CD_CODE */
175    
176    #ifdef ALLOW_PP81
177    C--   Initialize PP81 vertical mixing scheme.
178          IF (usePP81) THEN
179    # ifdef ALLOW_DEBUG
180           IF (debugMode) CALL DEBUG_CALL('PP81_INIT_VARIA',myThid)
181    # endif
182           CALL PP81_INIT_VARIA( myThid )
183          ENDIF
184    #endif /* ALLOW_PP81 */
185    
186    #ifdef ALLOW_MY82
187    C--   Initialize MY82 vertical mixing scheme.
188          IF (useMY82) THEN
189           CALL MY82_INIT_VARIA( myThid )
190          ENDIF
191    #endif /* ALLOW_MY82 */
192    
193    #ifdef ALLOW_GGL90
194    C--   Initialize GGL90 vertical mixing scheme.
195          IF (useGGL90) THEN
196    #ifdef ALLOW_DEBUG
197          IF (debugMode) CALL DEBUG_CALL('GGL90_INIT_VARIA',myThid)
198  #endif  #endif
199           CALL GGL90_INIT_VARIA( myThid )
200          ENDIF
201    #endif /* ALLOW_GGL90 */
202    
203  #ifdef ALLOW_KPP  #ifdef ALLOW_KPP
204  C--   Initialize KPP vertical mixing scheme.  C--   Initialize KPP vertical mixing scheme.
205        IF (useKPP) THEN        IF (useKPP) THEN
206         CALL KPP_INIT( myThid )  # ifdef ALLOW_DEBUG
207         CALL KPP_OPEN_DIAGS( myThid )         IF (debugMode) CALL DEBUG_CALL('KPP_INIT_VARIA',myThid)
208    # endif
209           CALL KPP_INIT_VARIA( myThid )
210        ENDIF        ENDIF
211  #endif  #endif /* ALLOW_KPP */
212    
213  #ifdef ALLOW_OBCS  #ifdef ALLOW_GMREDI
214  C--   Open boundaries data  C--   Initialize GM/Redi parameterization
215        IF (useOBCS) THEN        IF (useGMRedi) THEN
216          CALL OBCS_INIT_VARIABLES( myThid )  # ifdef ALLOW_DEBUG
217            IF (debugMode) CALL DEBUG_CALL('GMREDI_INIT_VARIA',myThid)
218    # endif
219            CALL GMREDI_INIT_VARIA( myThid )
220        ENDIF        ENDIF
221  #endif  #endif /* ALLOW_GMREDI */
222    
223    #ifdef ALLOW_BBL
224          IF ( useBBL ) THEN
225            CALL BBL_INIT_VARIA( myThid )
226          ENDIF
227    #endif /* ALLOW_BBL */
228    
229    #ifdef ALLOW_DOWN_SLOPE
230          IF ( useDOWN_SLOPE ) THEN
231            CALL DWNSLP_INIT_VARIA( myThid )
232          ENDIF
233    #endif /* ALLOW_DOWN_SLOPE */
234    
235    #ifdef ALLOW_EXF
236          IF (useEXF) THEN
237    # ifdef ALLOW_DEBUG
238           IF (debugMode) CALL DEBUG_CALL('EXF_INIT',myThid)
239    # endif
240           CALL EXF_INIT( myThid )
241          ENDIF
242    #endif /* ALLOW_EXF */
243    
244    #ifdef ALLOW_BULK_FORCE
245          IF (useBulkForce) THEN
246            CALL BULKF_INIT_VARIA( myThid )
247          ENDIF
248    #endif /* ALLOW_BULK_FORCE */
249    
250    #ifdef ALLOW_EBM
251    # ifdef ALLOW_AUTODIFF_TAMC
252    CADJ STORE theta = tapelev_init, key = 1
253    # endif
254          IF (useEBM) THEN
255            CALL EBM_INI_VARS( myThid )
256          ENDIF
257    #endif /* ALLOW_EBM */
258    
259    #ifdef ALLOW_CHEAPAML
260          IF (useCheapAML) THEN
261            CALL CHEAPAML_INIT_VARIA( myThid )
262          ENDIF
263    #endif /* ALLOW_CHEAPAML */
264    
265    #ifdef ALLOW_SMOOTH
266          CALL SMOOTH_INIT_VARIA(myThid)
267    #endif /* ALLOW_SMOOTH */
268    
269    #ifdef ALLOW_PROFILES
270    C--   Initialise Profiles cost function.
271          IF (usePROFILES) THEN
272            CALL PROFILES_INIT_VARIA( myThid )
273          ENDIF
274    #endif /* ALLOW_PROFILES */
275    
276    #ifdef ALLOW_FLT
277    C--   Initialise float position
278          IF ( useFLT ) THEN
279            CALL FLT_INIT_VARIA( myThid )
280          ENDIF
281    #endif /* ALLOW_FLT */
282    
283  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
284        IF ( usePTRACERS ) CALL PTRACERS_INIT( mythid )  # ifndef ALLOW_AUTODIFF
285  #endif        IF ( usePTRACERS ) THEN
286    # endif
287    # ifdef ALLOW_DEBUG
288            IF (debugMode) CALL DEBUG_CALL('PTRACERS_INIT_VARIA',myThid)
289    # endif
290            CALL PTRACERS_INIT_VARIA( myThid )
291    # ifdef ALLOW_LONGSTEP
292    #  ifdef ALLOW_DEBUG
293            IF (debugMode) CALL DEBUG_CALL('LONGSTEP_INIT_VARIA',myThid)
294    #  endif
295            CALL LONGSTEP_INIT_VARIA( myThid )
296    # endif /* ALLOW_LONGSTEP */
297    # ifndef ALLOW_AUTODIFF
298          ENDIF
299    # endif
300    #endif /* ALLOW_PTRACERS */
301    
302    #ifdef ALLOW_GCHEM
303          IF (useGCHEM) THEN
304            CALL GCHEM_INIT_VARI( myThid )
305          ENDIF
306    #endif /* ALLOW_GCHEM */
307    
308    #ifdef ALLOW_RBCS
309          IF ( useRBCS ) THEN
310            CALL RBCS_INIT_VARIA( myThid )
311          ENDIF
312    #endif /* ALLOW_RBCS */
313    
314    #ifdef ALLOW_MATRIX
315          IF ( useMATRIX ) THEN
316    # ifdef ALLOW_DEBUG
317            IF (debugMode) CALL DEBUG_CALL('MATRIX_INIT',myThid)
318    # endif
319            CALL MATRIX_INIT_VARIA( myThid )
320          ENDIF
321    #endif /* ALLOW_MATRIX */
322    
323  #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_TANGENTLINEAR_RUN))  #ifdef ALLOW_FRAZIL
324  c--   Map the control variables onto the model state.        IF (useFRAZIL) THEN
325        call ctrl_map_ini( mythid )  # ifdef ALLOW_DEBUG
326        _BARRIER          IF (debugMode) CALL DEBUG_CALL('FRAZIL_INIT_VARIA',myThid)
327    # endif
328            CALL FRAZIL_INIT_VARIA( myThid)
329          ENDIF
330    #endif /* ALLOW_FRAZIL */
331    
332    #ifdef ALLOW_SEAICE
333    C--   Initialize SEAICE model.
334          IF (useSEAICE) THEN
335    # ifdef ALLOW_DEBUG
336           IF (debugMode) CALL DEBUG_CALL('SEAICE_INIT_VARIA',myThid)
337    # endif
338           CALL SEAICE_INIT_VARIA( myThid )
339          ENDIF
340    #endif /* ALLOW_SEAICE */
341    
342    #ifdef ALLOW_SALT_PLUME
343          IF ( useSALT_PLUME ) THEN
344            CALL SALT_PLUME_INIT_VARIA( myThid )
345          ENDIF
346    #endif /* ALLOW_SALT_PLUME */
347    
348    #ifdef ALLOW_SHELFICE
349          IF (useShelfIce) THEN
350    # ifdef ALLOW_DEBUG
351           IF (debugMode) CALL DEBUG_CALL('SHELFICE_INIT_VARIA',myThid)
352    # endif
353           CALL SHELFICE_INIT_VARIA( myThid )
354          ENDIF
355    #endif /* ALLOW_SHELFICE */
356    
357    #ifdef ALLOW_STREAMICE
358    cph      IF (useStreamIce) THEN
359    # ifdef ALLOW_DEBUG
360           IF (debugMode) CALL DEBUG_CALL('STREAMICE_INIT_VARIA',myThid)
361    # endif
362           CALL STREAMICE_INIT_VARIA( myThid )
363    cph      ENDIF
364    #endif /* ALLOW_STREAMICE */
365    
366    #ifdef ALLOW_ICEFRONT
367          IF (useICEFRONT) THEN
368    # ifdef ALLOW_DEBUG
369           IF (debugMode) CALL DEBUG_CALL('ICEFRONT_INIT_VARIA',myThid)
370    # endif
371           CALL ICEFRONT_INIT_VARIA( myThid )
372          ENDIF
373    #endif /* ALLOW_ICEFRONT */
374    
375    #ifdef ALLOW_THSICE
376          IF (useThSIce) THEN
377    # ifdef ALLOW_DEBUG
378            IF (debugMode) CALL DEBUG_CALL('THSICE_INI_VARS',myThid)
379    # endif
380            CALL THSICE_INI_VARS( myThid)
381          ENDIF
382    #endif /* ALLOW_THSICE */
383    
384    #ifdef ALLOW_LAND
385          IF ( useLAND ) THEN
386    # ifdef ALLOW_DEBUG
387            IF (debugMode) CALL DEBUG_CALL('LAND_INI_VARS',myThid)
388    # endif
389            CALL LAND_INI_VARS( myThid )
390          ENDIF
391    #endif /* ALLOW_LAND */
392    
393    #ifdef ALLOW_ATM2D
394          IF (useAtm2d) THEN
395    # ifdef ALLOW_DEBUG
396            IF (debugMode) CALL DEBUG_CALL('ATM2D_INIT_VARS',myThid)
397    # endif
398            CALL ATM2D_INIT_VARS( myThid )
399          ENDIF
400    #endif /* ALLOW_ATM2D */
401    
402    #ifdef ALLOW_ATM_PHYS
403          IF (useAtm_Phys) THEN
404    # ifdef ALLOW_DEBUG
405            IF (debugMode) CALL DEBUG_CALL('ATM_PHYS_INIT_VARIA',myThid)
406    # endif
407            CALL ATM_PHYS_INIT_VARIA( myThid )
408          ENDIF
409    #endif /* ALLOW_ATM_PHYS */
410    
411    #ifdef ALLOW_FIZHI
412    C Initialize FIZHI state variables
413          IF (useFIZHI) THEN
414    # ifdef ALLOW_DEBUG
415            IF (debugMode) CALL DEBUG_CALL('FIZHI_INIT_VARS',myThid)
416    # endif
417            CALL FIZHI_INIT_VARS( myThid )
418          ENDIF
419    #endif /* ALLOW_FIZHI */
420    
421    #ifdef ALLOW_REGRID
422          IF ( useREGRID ) THEN
423            CALL REGRID_INIT_VARIA( myThid )
424          ENDIF
425    #endif /* ALLOW_REGRID */
426    
427    #ifdef ALLOW_LAYERS
428          IF ( useLayers ) THEN
429            CALL LAYERS_INIT_VARIA( myThid )
430          ENDIF
431    #endif /* ALLOW_LAYERS */
432    
433    #ifdef ALLOW_NEST_CHILD
434    C--   Initialize NEST in CHILD configuration
435          IF (useNEST_CHILD) THEN
436    #ifdef ALLOW_DEBUG
437           IF (debugMode)
438         &       CALL DEBUG_CALL('NEST_CHILD_INIT_VARIA',myThid)
439  #endif  #endif
440           CALL NEST_CHILD_INIT_VARIA( myThid )
441          ENDIF
442    #endif /* ALLOW_NEST_CHILD */
443    
444  #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE  #ifdef ALLOW_NEST_PARENT
445        CALL EXF_INIT( mythid )  C--   Initialize NEST in PARENT configuration
446  #else        IF (useNEST_PARENT) THEN
447        CALL INI_FORCING( mythid )  #ifdef ALLOW_DEBUG
448           IF (debugMode)
449         &       CALL DEBUG_CALL('NEST_PARENT_INIT',myThid)
450  #endif  #endif
451           CALL NEST_PARENT_INIT_VARIA( myThid )
452          ENDIF
453    #endif /* ALLOW_NEST_PARENT */
454    
455  #ifdef INCLUDE_ECCO_PACKAGE  #ifdef COMPONENT_MODULE
456        IF (useECCO) THEN        IF (useCoupler) THEN
457         CALL ECCO_INIT( myThid )  # ifdef ALLOW_DEBUG
458            IF (debugMode) CALL DEBUG_CALL('CPL_INI_VARS',myThid)
459    # endif
460            CALL CPL_INI_VARS( myThid )
461        ENDIF        ENDIF
462  #else  #endif /* COMPONENT_MODULE */
463  # ifdef ALLOW_COST  
464  c--   Initialise the cost function.  #ifdef ALLOW_MYPACKAGE
465        call cost_init( mythid )        IF ( useMYPACKAGE ) THEN
466        _BARRIER          CALL MYPACKAGE_INIT_VARIA( myThid )
467          ENDIF
468    #endif /* ALLOW_MYPACKAGE */
469    
470    #ifdef ALLOW_AUTODIFF_TAMC
471    CADJ STORE theta  = tapelev_init, key = 1
472    CADJ STORE salt   = tapelev_init, key = 1
473    # ifdef ALLOW_DIFFKR_CONTROL
474    CADJ STORE diffkr = tapelev_init, key = 1
475  # endif  # endif
476  #endif  #endif /* ALLOW_AUTODIFF_TAMC */
477    
478    #ifdef ALLOW_AUTODIFF
479    C--   Initialise auxiliary xx_ fields
480          IF (debugMode) CALL DEBUG_CALL('CTRL_INIT_VARIABLES',myThid)
481          CALL CTRL_INIT_VARIABLES ( myThid )
482    C--   Map the control variables onto the model state.
483    C-    Needs to be called after few {PKG}_init_varia (e.g., PTRACERS_INIT_VARIA)
484    # ifdef ALLOW_ECCO
485          IF (debugMode) CALL DEBUG_CALL('CTRL_MAP_INI_ECCO',myThid)
486          CALL CTRL_MAP_INI_ECCO( myThid )
487    # else
488          IF (debugMode) CALL DEBUG_CALL('CTRL_MAP_INI',myThid)
489          CALL CTRL_MAP_INI( myThid )
490    # endif
491    #endif /* ALLOW_AUTODIFF */
492    
493    #ifdef ALLOW_OBCS
494    C--   put this call in last position (needs to come after few {PKG}_init_varia)
495          IF (useOBCS) THEN
496    # ifdef ALLOW_DEBUG
497            IF (debugMode) CALL DEBUG_CALL('OBCS_INIT_VARIABLES',myThid)
498    # endif
499            CALL OBCS_INIT_VARIABLES( myThid )
500          ENDIF
501    #endif /* ALLOW_OBCS */
502    
503    #ifdef ALLOW_DEBUG
504          IF (debugMode)
505         &     CALL DEBUG_LEAVE('PACKAGES_INIT_VARIABLES',myThid)
506    #endif /* ALLOW_DEBUG */
507    
508        RETURN        RETURN
509        END        END

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.94

  ViewVC Help
Powered by ViewVC 1.1.22