/[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.15 - (hide annotations) (download)
Tue Feb 5 14:37:49 2013 UTC (11 years, 3 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f
Changes since 1.14: +6 -1 lines
( modifications for ALLOW_GENTIM2D_CONTROL )
- forward_step.F, the_main_loop.F : pass options and arrays for adjoint tapes.
- load_fields_driver.F : add call to CTRL_MAP_GENTIM2D( myTime, myIter, myThid )

1 gforget 1.15 C $Header: /u/gcmpack/MITgcm/model/src/load_fields_driver.F,v 1.14 2012/11/09 22:40:36 jmc 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 jmc 1.14 #include "FFIELDS.h"
46 jmc 1.1
47     #ifdef ALLOW_AUTODIFF_TAMC
48     # include "tamc.h"
49 heimbach 1.12 # include "CTRL_SIZE.h"
50 jmc 1.1 # include "ctrl.h"
51     # include "ctrl_dummy.h"
52     # include "cost.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.14 #if (defined ALLOW_ADDFLUID) || (defined ALLOW_FRICTION_HEATING)
72     INTEGER i,j,k,bi,bj
73     #endif
74 jmc 1.1 CEOP
75    
76     #ifdef ALLOW_DEBUG
77 jmc 1.9 IF (debugMode) CALL DEBUG_ENTER( 'LOAD_FIELDS_DRIVER', myThid )
78 jmc 1.1 #endif
79    
80 jmc 1.14 C-- Initialise forcing arrays that may receive multiple contributions
81     #ifdef ALLOW_ADDFLUID
82     IF ( addMassFile .EQ. ' ' ) THEN
83     DO bj=myByLo(myThid),myByHi(myThid)
84     DO bi=myBxLo(myThid),myBxHi(myThid)
85     DO k=1,Nr
86     DO j=1-OLy,sNy+OLy
87     DO i=1-OLx,sNx+OLx
88     addMass(i,j,k,bi,bj) = 0. _d 0
89     ENDDO
90     ENDDO
91     ENDDO
92     ENDDO
93     ENDDO
94     ENDIF
95     #endif /* ALLOW_ADDFLUID */
96    
97     #ifdef ALLOW_FRICTION_HEATING
98     IF ( addFrictionHeating ) THEN
99     DO bj=myByLo(myThid),myByHi(myThid)
100     DO bi=myBxLo(myThid),myBxHi(myThid)
101     DO k=1,Nr
102     DO j=1-OLy,sNy+OLy
103     DO i=1-OLx,sNx+OLx
104     frictionHeating(i,j,k,bi,bj) = 0. _d 0
105     ENDDO
106     ENDDO
107     ENDDO
108     ENDDO
109     ENDDO
110     ENDIF
111     #endif /* ALLOW_FRICTION_HEATING */
112    
113 jmc 1.1 #ifdef ALLOW_BULK_FORCE
114     IF ( useBulkForce ) THEN
115     C-- Bulk-Formulae pkg: load all forcing fields at current time
116     #ifdef ALLOW_DEBUG
117 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('BULKF_FIELDS_LOAD',myThid)
118 jmc 1.1 #endif
119     CALL TIMER_START('BULKF_FIELDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
120     CALL BULKF_FIELDS_LOAD( myTime, myIter, myThid )
121     CALL TIMER_STOP ('BULKF_FIELDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
122     ENDIF
123     #endif /* ALLOW_BULK_FORCE */
124    
125     C-- Call external forcing package
126     #ifdef ALLOW_EXF
127 heimbach 1.4 IF (useEXF) THEN
128 jmc 1.1 # ifdef ALLOW_DEBUG
129 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('EXF_GETFORCING',myThid)
130 jmc 1.1 # endif
131     CALL TIMER_START('EXF_GETFORCING [LOAD_FLDS_DRIVER]',myThid)
132     CALL EXF_GETFORCING( myTime, myIter, myThid )
133     CALL TIMER_STOP ('EXF_GETFORCING [LOAD_FLDS_DRIVER]',myThid)
134 heimbach 1.4 ENDIF
135 jmc 1.5 #endif /* ALLOW_EXF */
136    
137 gforget 1.15 C-- Add generic controls (if specified by user)
138     #ifdef ALLOW_CTRL
139     CALL CTRL_MAP_GENTIM2D( myTime, myIter, myThid )
140     #endif
141    
142 jmc 1.7 C-- Call external CheapAML forcing package
143     #ifdef ALLOW_CHEAPAML
144     IF ( useCheapAML ) THEN
145     #ifdef ALLOW_DEBUG
146 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('CHEAPAML_FIELDS_LOAD',myThid)
147 jmc 1.7 #endif
148 jmc 1.9 CALL CHEAPAML_FIELDS_LOAD( myTime, myIter, myThid )
149     ENDIF
150 jmc 1.7 #endif /*ALLOW_CHEAPAML */
151    
152 jahn 1.13 IF ( .NOT.useCheapAML ) THEN
153 jmc 1.5 #ifdef ALLOW_DEBUG
154 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('EXTERNAL_FIELDS_LOAD',myThid)
155 jmc 1.5 #endif
156 jmc 1.1 CALL TIMER_START('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
157     CALL EXTERNAL_FIELDS_LOAD( myTime, myIter, myThid )
158     CALL TIMER_STOP ('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
159 jmc 1.5 #ifdef NONLIN_FRSURF
160 heimbach 1.8 CADJ STORE SST = comlev1, key = ikey_dynamics, kind = isbyte
161     CADJ STORE SSS = comlev1, key = ikey_dynamics, kind = isbyte
162 jmc 1.5 # ifdef SHORTWAVE_HEATING
163 heimbach 1.8 CADJ STORE Qsw = comlev1, key = ikey_dynamics, kind = isbyte
164 jmc 1.1 # endif
165 jmc 1.5 #endif
166 jmc 1.1 ENDIF
167    
168     #ifdef ALLOW_OFFLINE
169     IF ( useOffLine ) THEN
170     #ifdef ALLOW_DEBUG
171 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('OFFLINE_FIELDS_LOAD',myThid)
172 jmc 1.1 #endif /* ALLOW_DEBUG */
173     CALL TIMER_START('OFFLINE_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
174     CALL OFFLINE_FIELDS_LOAD( myTime, myIter, myThid )
175     CALL TIMER_STOP ('OFFLINE_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
176     ENDIF
177     #endif /* ALLOW_OFFLINE */
178    
179     #ifdef ALLOW_GCHEM
180     IF ( useGCHEM ) THEN
181     #ifdef ALLOW_DEBUG
182 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('GCHEM_FIELDS_LOAD',myThid)
183 jmc 1.1 #endif /* ALLOW_DEBUG */
184     CALL GCHEM_FIELDS_LOAD( myTime, myIter, myThid )
185     ENDIF
186     #endif /* ALLOW_GCHEM */
187    
188     #ifdef ALLOW_RBCS
189     IF ( useRBCS ) THEN
190     CALL RBCS_FIELDS_LOAD( myTime, myIter, myThid )
191     ENDIF
192     #endif
193    
194     #ifdef ALLOW_AIM
195     IF ( useAIM ) THEN
196     C- Update AIM bottom boundary data
197     CALL AIM_FIELDS_LOAD( myTime, myIter, myThid )
198     ENDIF
199     #endif
200    
201     #ifdef ALLOW_DEBUG
202 jmc 1.9 IF (debugMode) CALL DEBUG_LEAVE( 'LOAD_FIELDS_DRIVER', myThid )
203 jmc 1.1 #endif
204    
205     RETURN
206     END

  ViewVC Help
Powered by ViewVC 1.1.22