/[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.24 - (hide annotations) (download)
Mon Sep 18 16:44:16 2017 UTC (6 years, 7 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, HEAD
Changes since 1.23: +9 -5 lines
- add missing CPP brackets

1 gforget 1.24 C $Header: /u/gcmpack/MITgcm/model/src/load_fields_driver.F,v 1.23 2017/09/11 17:29:59 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "PACKAGES_CONFIG.h"
5     #include "CPP_OPTIONS.h"
6 jmc 1.16 #ifdef ALLOW_AUTODIFF
7     # include "AUTODIFF_OPTIONS.h"
8     #endif
9     #ifdef ALLOW_COST
10     # include "COST_OPTIONS.h"
11     #endif
12     #ifdef ALLOW_CTRL
13     # include "CTRL_OPTIONS.h"
14     #endif
15     #ifdef ALLOW_EXF
16     # include "EXF_OPTIONS.h"
17     #endif
18 jmc 1.1
19     CBOP
20     C !ROUTINE: LOAD_FIELDS_DRIVER
21     C !INTERFACE:
22     SUBROUTINE LOAD_FIELDS_DRIVER( myTime, myIter, myThid )
23    
24     C !DESCRIPTION: \bv
25     C *==================================================================
26     C | SUBROUTINE LOAD_FIELDS_DRIVER
27     C | o Load external forcing fields from file
28     C *==================================================================
29     C *==================================================================
30     C \ev
31    
32     C !CALLING SEQUENCE:
33     C LOAD_FIELDS_DRIVER
34     C |
35     C |-- BULKF_FIELDS_LOAD
36     C |
37     C |-- EXF_GETFORCING
38     C |
39 jmc 1.10 C |-- CHEAPAML_FIELDS_LOAD
40     C |
41 jmc 1.1 C |-- EXTERNAL_FIELDS_LOAD
42     C |
43     C |-- GCHEM_FIELDS_LOAD
44     C |
45     C |-- RBCS_FIELDS_LOAD
46     C |
47     C |-- AIM_FIELDS_LOAD
48    
49     C !USES:
50     IMPLICIT NONE
51     C == Global variables ==
52     #include "SIZE.h"
53     #include "EEPARAMS.h"
54     #include "PARAMS.h"
55 jmc 1.14 #include "FFIELDS.h"
56 jmc 1.1
57 jmc 1.16 #ifdef ALLOW_AUTODIFF
58 jmc 1.1 # include "tamc.h"
59 gforget 1.24 # ifdef ALLOW_CTRL
60     # include "CTRL_SIZE.h"
61     # include "ctrl.h"
62     # include "ctrl_dummy.h"
63     # endif
64     # ifdef ALLOW_COST
65     # include "cost.h"
66     # endif
67 jmc 1.1 # include "EOS.h"
68     # ifdef ALLOW_EXF
69 jmc 1.2 # include "EXF_FIELDS.h"
70 jmc 1.16 # include "EXF_CONSTANTS.h"
71 jmc 1.1 # endif
72 jmc 1.16 #endif /* ALLOW_AUTODIFF */
73 jmc 1.1
74 jmc 1.10 C !INPUT/OUTPUT PARAMETERS:
75 jmc 1.1 C myTime :: time counter for this thread
76     C myIter :: iteration counter for this thread
77     C myThid :: thread number for this instance of the routine.
78     _RL myTime
79     INTEGER myIter
80     INTEGER myThid
81    
82 jmc 1.10 C !LOCAL VARIABLES:
83 jmc 1.14 #if (defined ALLOW_ADDFLUID) || (defined ALLOW_FRICTION_HEATING)
84     INTEGER i,j,k,bi,bj
85     #endif
86 jmc 1.1 CEOP
87    
88     #ifdef ALLOW_DEBUG
89 jmc 1.9 IF (debugMode) CALL DEBUG_ENTER( 'LOAD_FIELDS_DRIVER', myThid )
90 jmc 1.1 #endif
91    
92 jmc 1.14 C-- Initialise forcing arrays that may receive multiple contributions
93     #ifdef ALLOW_ADDFLUID
94 jmc 1.19 IF ( selectAddFluid.NE.0 .AND. addMassFile.EQ.' ' ) THEN
95 jmc 1.14 DO bj=myByLo(myThid),myByHi(myThid)
96     DO bi=myBxLo(myThid),myBxHi(myThid)
97     DO k=1,Nr
98     DO j=1-OLy,sNy+OLy
99     DO i=1-OLx,sNx+OLx
100     addMass(i,j,k,bi,bj) = 0. _d 0
101     ENDDO
102     ENDDO
103     ENDDO
104     ENDDO
105     ENDDO
106     ENDIF
107     #endif /* ALLOW_ADDFLUID */
108    
109     #ifdef ALLOW_FRICTION_HEATING
110 jmc 1.19 IF ( addFrictionHeating .AND. staggerTimeStep ) THEN
111 jmc 1.14 DO bj=myByLo(myThid),myByHi(myThid)
112     DO bi=myBxLo(myThid),myBxHi(myThid)
113     DO k=1,Nr
114     DO j=1-OLy,sNy+OLy
115     DO i=1-OLx,sNx+OLx
116     frictionHeating(i,j,k,bi,bj) = 0. _d 0
117     ENDDO
118     ENDDO
119     ENDDO
120     ENDDO
121     ENDDO
122     ENDIF
123     #endif /* ALLOW_FRICTION_HEATING */
124    
125 gforget 1.17 C-- Map generic time varying controls to xx_gentim2d
126     #ifdef ALLOW_CTRL
127 gforget 1.18 if (useCTRL) CALL CTRL_MAP_GENTIM2D( myTime, myIter, myThid )
128 gforget 1.17 #endif
129    
130 jmc 1.1 #ifdef ALLOW_BULK_FORCE
131     IF ( useBulkForce ) THEN
132     C-- Bulk-Formulae pkg: load all forcing fields at current time
133     #ifdef ALLOW_DEBUG
134 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('BULKF_FIELDS_LOAD',myThid)
135 jmc 1.1 #endif
136     CALL TIMER_START('BULKF_FIELDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
137     CALL BULKF_FIELDS_LOAD( myTime, myIter, myThid )
138     CALL TIMER_STOP ('BULKF_FIELDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
139     ENDIF
140     #endif /* ALLOW_BULK_FORCE */
141    
142     C-- Call external forcing package
143     #ifdef ALLOW_EXF
144 heimbach 1.4 IF (useEXF) THEN
145 jmc 1.1 # ifdef ALLOW_DEBUG
146 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('EXF_GETFORCING',myThid)
147 jmc 1.1 # endif
148     CALL TIMER_START('EXF_GETFORCING [LOAD_FLDS_DRIVER]',myThid)
149     CALL EXF_GETFORCING( myTime, myIter, myThid )
150     CALL TIMER_STOP ('EXF_GETFORCING [LOAD_FLDS_DRIVER]',myThid)
151 heimbach 1.4 ENDIF
152 jmc 1.5 #endif /* ALLOW_EXF */
153    
154 jmc 1.7 C-- Call external CheapAML forcing package
155     #ifdef ALLOW_CHEAPAML
156     IF ( useCheapAML ) THEN
157     #ifdef ALLOW_DEBUG
158 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('CHEAPAML_FIELDS_LOAD',myThid)
159 jmc 1.7 #endif
160 jmc 1.9 CALL CHEAPAML_FIELDS_LOAD( myTime, myIter, myThid )
161     ENDIF
162 jmc 1.7 #endif /*ALLOW_CHEAPAML */
163    
164 jmc 1.23 IF ( fluidIsWater ) THEN
165 jmc 1.5 #ifdef ALLOW_DEBUG
166 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('EXTERNAL_FIELDS_LOAD',myThid)
167 jmc 1.5 #endif
168 jmc 1.1 CALL TIMER_START('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
169     CALL EXTERNAL_FIELDS_LOAD( myTime, myIter, myThid )
170     CALL TIMER_STOP ('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
171 jmc 1.5 #ifdef NONLIN_FRSURF
172 heimbach 1.8 CADJ STORE SST = comlev1, key = ikey_dynamics, kind = isbyte
173     CADJ STORE SSS = comlev1, key = ikey_dynamics, kind = isbyte
174 jmc 1.5 # ifdef SHORTWAVE_HEATING
175 heimbach 1.8 CADJ STORE Qsw = comlev1, key = ikey_dynamics, kind = isbyte
176 jmc 1.1 # endif
177 jmc 1.5 #endif
178 jmc 1.23 ENDIF
179 jmc 1.1
180     #ifdef ALLOW_GCHEM
181     IF ( useGCHEM ) THEN
182     #ifdef ALLOW_DEBUG
183 jmc 1.9 IF (debugMode) CALL DEBUG_CALL('GCHEM_FIELDS_LOAD',myThid)
184 jmc 1.1 #endif /* ALLOW_DEBUG */
185     CALL GCHEM_FIELDS_LOAD( myTime, myIter, myThid )
186     ENDIF
187     #endif /* ALLOW_GCHEM */
188    
189     #ifdef ALLOW_RBCS
190     IF ( useRBCS ) THEN
191     CALL RBCS_FIELDS_LOAD( myTime, myIter, myThid )
192     ENDIF
193     #endif
194    
195     #ifdef ALLOW_AIM
196     IF ( useAIM ) THEN
197     C- Update AIM bottom boundary data
198     CALL AIM_FIELDS_LOAD( myTime, myIter, myThid )
199     ENDIF
200     #endif
201    
202     #ifdef ALLOW_DEBUG
203 jmc 1.9 IF (debugMode) CALL DEBUG_LEAVE( 'LOAD_FIELDS_DRIVER', myThid )
204 jmc 1.1 #endif
205    
206     RETURN
207     END

  ViewVC Help
Powered by ViewVC 1.1.22