10 |
#ifdef ALLOW_OFFLINE |
#ifdef ALLOW_OFFLINE |
11 |
# include "OFFLINE_OPTIONS.h" |
# include "OFFLINE_OPTIONS.h" |
12 |
#endif |
#endif |
13 |
|
#ifdef ALLOW_GMREDI |
14 |
|
# include "GMREDI_OPTIONS.h" |
15 |
|
#endif |
16 |
|
|
17 |
CBOP |
CBOP |
18 |
C !ROUTINE: FORWARD_STEP |
C !ROUTINE: FORWARD_STEP |
88 |
# ifdef EXACT_CONSERV |
# ifdef EXACT_CONSERV |
89 |
# include "SURFACE.h" |
# include "SURFACE.h" |
90 |
# endif |
# endif |
91 |
|
# ifdef ALLOW_KPP |
92 |
|
# include "KPP.h" |
93 |
|
# endif |
94 |
|
# ifdef ALLOW_GMREDI |
95 |
|
# include "GMREDI.h" |
96 |
|
# endif |
97 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
98 |
|
|
99 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
272 |
CALL DO_ATMOSPHERIC_PHYS( myTime, myIter, myThid ) |
CALL DO_ATMOSPHERIC_PHYS( myTime, myIter, myThid ) |
273 |
CALL TIMER_STOP ('DO_ATMOSPHERIC_PHYS [FORWARD_STEP]',mythid) |
CALL TIMER_STOP ('DO_ATMOSPHERIC_PHYS [FORWARD_STEP]',mythid) |
274 |
|
|
275 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
276 |
|
CADJ STORE theta = comlev1, key = ikey_dynamics |
277 |
|
CADJ STORE salt = comlev1, key = ikey_dynamics |
278 |
|
CADJ STORE totphihyd = comlev1, key = ikey_dynamics |
279 |
|
CADJ STORE surfaceforcingtice = comlev1, key = ikey_dynamics |
280 |
|
# ifdef ALLOW_KPP |
281 |
|
CADJ STORE uvel = comlev1, key = ikey_dynamics |
282 |
|
CADJ STORE vvel = comlev1, key = ikey_dynamics |
283 |
|
# endif |
284 |
|
# ifdef EXACT_CONSERV |
285 |
|
CADJ STORE empmr = comlev1, key = ikey_dynamics |
286 |
|
CADJ STORE pmepr = comlev1, key = ikey_dynamics |
287 |
|
# endif |
288 |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
289 |
|
|
290 |
#ifndef ALLOW_OFFLINE |
#ifndef ALLOW_OFFLINE |
291 |
#ifdef ALLOW_DEBUG |
#ifdef ALLOW_DEBUG |
292 |
IF ( debugLevel .GE. debLevB ) |
IF ( debugLevel .GE. debLevB ) |
297 |
CALL TIMER_STOP ('DO_OCEANIC_PHYS [FORWARD_STEP]',mythid) |
CALL TIMER_STOP ('DO_OCEANIC_PHYS [FORWARD_STEP]',mythid) |
298 |
#endif |
#endif |
299 |
|
|
300 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
301 |
|
cph needed to be moved here from do_oceanic_physics |
302 |
|
cph to be visible down the road |
303 |
|
c |
304 |
|
CADJ STORE surfaceForcingS = comlev1, key = ikey_dynamics |
305 |
|
CADJ STORE surfaceForcingT = comlev1, key = ikey_dynamics |
306 |
|
CADJ STORE surfaceForcingTice = comlev1, key = ikey_dynamics |
307 |
|
ctest( |
308 |
|
CADJ STORE IVDConvCount = comlev1, key = ikey_dynamics |
309 |
|
ctest) |
310 |
|
# ifdef ALLOW_PTRACERS |
311 |
|
CADJ STORE surfaceForcingPtr = comlev1, key = ikey_dynamics |
312 |
|
# endif |
313 |
|
c |
314 |
|
# ifdef ALLOW_GMREDI |
315 |
|
CADJ STORE Kwx = comlev1, key = ikey_dynamics |
316 |
|
CADJ STORE Kwy = comlev1, key = ikey_dynamics |
317 |
|
CADJ STORE Kwz = comlev1, key = ikey_dynamics |
318 |
|
# ifdef GM_BOLUS_ADVEC |
319 |
|
CADJ STORE GM_PsiX = comlev1, key = ikey_dynamics |
320 |
|
CADJ STORE GM_PsiY = comlev1, key = ikey_dynamics |
321 |
|
# endif |
322 |
|
# endif |
323 |
|
c |
324 |
|
# ifdef ALLOW_KPP |
325 |
|
CADJ STORE KPPghat = comlev1, key = ikey_dynamics |
326 |
|
CADJ STORE KPPfrac = comlev1, key = ikey_dynamics |
327 |
|
CADJ STORE KPPdiffKzS = comlev1, key = ikey_dynamics |
328 |
|
CADJ STORE KPPdiffKzT = comlev1, key = ikey_dynamics |
329 |
|
# endif |
330 |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
331 |
|
|
332 |
IF ( .NOT.staggerTimeStep ) THEN |
IF ( .NOT.staggerTimeStep ) THEN |
333 |
#ifdef ALLOW_DEBUG |
#ifdef ALLOW_DEBUG |
334 |
IF ( debugLevel .GE. debLevB ) |
IF ( debugLevel .GE. debLevB ) |
581 |
#ifdef ALLOW_COST |
#ifdef ALLOW_COST |
582 |
C-- compare model with data and compute cost function |
C-- compare model with data and compute cost function |
583 |
C-- this is done after exchanges to allow interpolation |
C-- this is done after exchanges to allow interpolation |
|
ceh3 perhaps needs an IF ( useCOST ) THEN |
|
|
CADJ STORE theta, uvel, vvel = comlev1, key = ikey_dynamics |
|
584 |
CALL TIMER_START('COST_TILE [FORWARD_STEP]',myThid) |
CALL TIMER_START('COST_TILE [FORWARD_STEP]',myThid) |
585 |
CALL COST_TILE ( mytime, myiter, myThid ) |
CALL COST_TILE ( mytime, myiter, myThid ) |
586 |
CALL TIMER_STOP ('COST_TILE [FORWARD_STEP]',myThid) |
CALL TIMER_STOP ('COST_TILE [FORWARD_STEP]',myThid) |