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

Annotation of /MITgcm/model/src/load_fields_driver.F

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


Revision 1.13 - (hide annotations) (download)
Wed Nov 7 21:37:33 2012 UTC (11 years, 6 months ago) by jahn
Branch: MAIN
Changes since 1.12: +2 -2 lines
allow loading of forcing fields through external_fields_load even if exf is on

1 jahn 1.13 C $Header: /u/gcmpack/MITgcm/model/src/load_fields_driver.F,v 1.12 2012/07/31 16:09:43 heimbach Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "PACKAGES_CONFIG.h"
5     #include "CPP_OPTIONS.h"
6    
7     CBOP
8     C !ROUTINE: LOAD_FIELDS_DRIVER
9     C !INTERFACE:
10     SUBROUTINE LOAD_FIELDS_DRIVER( myTime, myIter, myThid )
11    
12     C !DESCRIPTION: \bv
13     C *==================================================================
14     C | SUBROUTINE LOAD_FIELDS_DRIVER
15     C | o Load external forcing fields from file
16     C *==================================================================
17     C *==================================================================
18     C \ev
19    
20     C !CALLING SEQUENCE:
21     C LOAD_FIELDS_DRIVER
22     C |
23     C |-- BULKF_FIELDS_LOAD
24     C |
25     C |-- EXF_GETFORCING
26     C |
27 jmc 1.10 C |-- CHEAPAML_FIELDS_LOAD
28     C |
29 jmc 1.1 C |-- EXTERNAL_FIELDS_LOAD
30     C |
31     C |-- OFFLINE_FIELDS_LOAD
32     C |
33     C |-- GCHEM_FIELDS_LOAD
34     C |
35     C |-- RBCS_FIELDS_LOAD
36     C |
37     C |-- AIM_FIELDS_LOAD
38    
39     C !USES:
40     IMPLICIT NONE
41     C == Global variables ==
42     #include "SIZE.h"
43     #include "EEPARAMS.h"
44     #include "PARAMS.h"
45    
46     #ifdef ALLOW_AUTODIFF_TAMC
47     # include "tamc.h"
48 heimbach 1.12 # include "CTRL_SIZE.h"
49 jmc 1.1 # include "ctrl.h"
50     # include "ctrl_dummy.h"
51     # include "cost.h"
52     # include "FFIELDS.h"
53     # include "EOS.h"
54     # ifdef ALLOW_EXF
55 jmc 1.2 # include "EXF_FIELDS.h"
56 jmc 1.1 # ifdef ALLOW_BULKFORMULAE
57 jmc 1.2 # include "EXF_CONSTANTS.h"
58 jmc 1.1 # endif
59     # endif
60     #endif /* ALLOW_AUTODIFF_TAMC */
61    
62 jmc 1.10 C !INPUT/OUTPUT PARAMETERS:
63 jmc 1.1 C myTime :: time counter for this thread
64     C myIter :: iteration counter for this thread
65     C myThid :: thread number for this instance of the routine.
66     _RL myTime
67     INTEGER myIter
68     INTEGER myThid
69    
70 jmc 1.10 C !LOCAL VARIABLES:
71 jmc 1.1 CEOP
72    
73     #ifdef ALLOW_DEBUG
74 jmc 1.9 IF (debugMode) CALL DEBUG_ENTER( 'LOAD_FIELDS_DRIVER', myThid )
75 jmc 1.1 #endif
76    
77     #ifdef ALLOW_BULK_FORCE
78     IF ( useBulkForce ) THEN
79     C-- Bulk-Formulae pkg: load all forcing fields at current time
80     #ifdef ALLOW_DEBUG
81 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('BULKF_FIELDS_LOAD',myThid)
82 jmc 1.1 #endif
83     CALL TIMER_START('BULKF_FIELDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
84     CALL BULKF_FIELDS_LOAD( myTime, myIter, myThid )
85     CALL TIMER_STOP ('BULKF_FIELDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
86     ENDIF
87     #endif /* ALLOW_BULK_FORCE */
88    
89     C-- Call external forcing package
90     #ifdef ALLOW_EXF
91 heimbach 1.4 IF (useEXF) THEN
92 jmc 1.1 # ifdef ALLOW_DEBUG
93 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('EXF_GETFORCING',myThid)
94 jmc 1.1 # endif
95     CALL TIMER_START('EXF_GETFORCING [LOAD_FLDS_DRIVER]',myThid)
96     CALL EXF_GETFORCING( myTime, myIter, myThid )
97     CALL TIMER_STOP ('EXF_GETFORCING [LOAD_FLDS_DRIVER]',myThid)
98 heimbach 1.4 ENDIF
99 jmc 1.5 #endif /* ALLOW_EXF */
100    
101 jmc 1.7 C-- Call external CheapAML forcing package
102     #ifdef ALLOW_CHEAPAML
103     IF ( useCheapAML ) THEN
104     #ifdef ALLOW_DEBUG
105 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('CHEAPAML_FIELDS_LOAD',myThid)
106 jmc 1.7 #endif
107 jmc 1.9 CALL CHEAPAML_FIELDS_LOAD( myTime, myIter, myThid )
108     ENDIF
109 jmc 1.7 #endif /*ALLOW_CHEAPAML */
110    
111 jahn 1.13 IF ( .NOT.useCheapAML ) THEN
112 jmc 1.5 #ifdef ALLOW_DEBUG
113 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('EXTERNAL_FIELDS_LOAD',myThid)
114 jmc 1.5 #endif
115 jmc 1.1 CALL TIMER_START('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
116     CALL EXTERNAL_FIELDS_LOAD( myTime, myIter, myThid )
117     CALL TIMER_STOP ('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
118 jmc 1.5 #ifdef NONLIN_FRSURF
119 heimbach 1.8 CADJ STORE SST = comlev1, key = ikey_dynamics, kind = isbyte
120     CADJ STORE SSS = comlev1, key = ikey_dynamics, kind = isbyte
121 jmc 1.5 # ifdef SHORTWAVE_HEATING
122 heimbach 1.8 CADJ STORE Qsw = comlev1, key = ikey_dynamics, kind = isbyte
123 jmc 1.1 # endif
124 jmc 1.5 #endif
125 jmc 1.1 ENDIF
126    
127     #ifdef ALLOW_OFFLINE
128     IF ( useOffLine ) THEN
129     #ifdef ALLOW_DEBUG
130 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('OFFLINE_FIELDS_LOAD',myThid)
131 jmc 1.1 #endif /* ALLOW_DEBUG */
132     CALL TIMER_START('OFFLINE_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
133     CALL OFFLINE_FIELDS_LOAD( myTime, myIter, myThid )
134     CALL TIMER_STOP ('OFFLINE_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
135     ENDIF
136     #endif /* ALLOW_OFFLINE */
137    
138     #ifdef ALLOW_GCHEM
139     IF ( useGCHEM ) THEN
140     #ifdef ALLOW_DEBUG
141 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('GCHEM_FIELDS_LOAD',myThid)
142 jmc 1.1 #endif /* ALLOW_DEBUG */
143     CALL GCHEM_FIELDS_LOAD( myTime, myIter, myThid )
144     ENDIF
145     #endif /* ALLOW_GCHEM */
146    
147     #ifdef ALLOW_RBCS
148     IF ( useRBCS ) THEN
149     CALL RBCS_FIELDS_LOAD( myTime, myIter, myThid )
150     ENDIF
151     #endif
152    
153     #ifdef ALLOW_AIM
154     IF ( useAIM ) THEN
155     C- Update AIM bottom boundary data
156     CALL AIM_FIELDS_LOAD( myTime, myIter, myThid )
157     ENDIF
158     #endif
159    
160     #ifdef ALLOW_DEBUG
161 jmc 1.9 IF (debugMode) CALL DEBUG_LEAVE( 'LOAD_FIELDS_DRIVER', myThid )
162 jmc 1.1 #endif
163    
164     RETURN
165     END

  ViewVC Help
Powered by ViewVC 1.1.22