4 |
#include "PACKAGES_CONFIG.h" |
#include "PACKAGES_CONFIG.h" |
5 |
#include "CPP_OPTIONS.h" |
#include "CPP_OPTIONS.h" |
6 |
|
|
|
#ifdef ALLOW_GCHEM |
|
|
# include "GCHEM_OPTIONS.h" |
|
|
#endif |
|
7 |
#ifdef ALLOW_OFFLINE |
#ifdef ALLOW_OFFLINE |
8 |
# include "OFFLINE_OPTIONS.h" |
# include "OFFLINE_OPTIONS.h" |
9 |
#endif |
#endif |
296 |
CALL TIMER_STOP ('DO_OCEANIC_PHYS [FORWARD_STEP]',mythid) |
CALL TIMER_STOP ('DO_OCEANIC_PHYS [FORWARD_STEP]',mythid) |
297 |
#endif |
#endif |
298 |
|
|
299 |
|
Cml#ifdef ALLOW_GCHEM |
300 |
|
CmlC GCHEM package is an interface for any bio-geochemical or |
301 |
|
CmlC ecosystem model you would like to include. |
302 |
|
CmlC If GCHEM_SEPARATE_FORCING is not defined, you are |
303 |
|
CmlC responsible for computing tendency terms for passive |
304 |
|
CmlC tracers and storing them on a 3DxNumPtracers-array called |
305 |
|
CmlC gchemTendency in GCHEM_FORCING. This tendency is then added |
306 |
|
CmlC to gPtr in ptracers_forcing later-on. |
307 |
|
CmlC If GCHEM_SEPARATE_FORCING is defined, you are reponsible for |
308 |
|
CmlC UPDATING ptracers directly in GCHEM_FORCING_SEP. This amounts |
309 |
|
CmlC to a completely separate time step that you have to implement |
310 |
|
CmlC yourself (Eulerian seems to be fine in most cases). |
311 |
|
Cml#ifdef ALLOW_DEBUG |
312 |
|
Cml IF ( debugLevel .GE. debLevB ) |
313 |
|
Cml & CALL DEBUG_CALL('GCHEM_FORCING',myThid) |
314 |
|
Cml#endif |
315 |
|
Cml IF ( useGCHEM ) THEN |
316 |
|
Cml CALL TIMER_START('GCHEM_FORCING [FORWARD_STEP]',myThid) |
317 |
|
Cml CALL GCHEM_FORCING( myTime, myIter, myThid ) |
318 |
|
Cml CALL TIMER_STOP ('GCHEM_FORCING [FORWARD_STEP]',myThid) |
319 |
|
Cml ENDIF |
320 |
|
Cml#endif /* ALLOW_GCHEM */ |
321 |
|
|
322 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
323 |
cph needed to be moved here from do_oceanic_physics |
cph needed to be moved here from do_oceanic_physics |
324 |
cph to be visible down the road |
cph to be visible down the road |
538 |
CALL TRACERS_CORRECTION_STEP(myTime, myIter, myThid) |
CALL TRACERS_CORRECTION_STEP(myTime, myIter, myThid) |
539 |
CALL TIMER_STOP ('TS_CORRECTION_STEP [FORWARD_STEP]',myThid) |
CALL TIMER_STOP ('TS_CORRECTION_STEP [FORWARD_STEP]',myThid) |
540 |
|
|
541 |
cswdptr -- add for seperate timestepping of chemical/biological/forcing |
C Add separate timestepping of chemical/biological/forcing |
542 |
cswdptr of ptracers --- |
C of ptracers here in GCHEM_FORCING_SEP |
543 |
#ifdef ALLOW_GCHEM |
#ifdef ALLOW_GCHEM |
544 |
ceh3 This is broken -- this ifdef should not be visible! |
#ifdef ALLOW_DEBUG |
545 |
#ifdef PTRACERS_SEPARATE_FORCING |
IF ( debugLevel .GE. debLevB ) |
546 |
|
& CALL DEBUG_CALL('GCHEM_FORCING_SEP',myThid) |
547 |
|
#endif /* ALLOW_DEBUG */ |
548 |
IF ( useGCHEM ) THEN |
IF ( useGCHEM ) THEN |
549 |
|
CALL TIMER_START('GCHEM_FORCING_SEP [FORWARD_STEP]',myThid) |
550 |
CALL GCHEM_FORCING_SEP( myTime,myIter,myThid ) |
CALL GCHEM_FORCING_SEP( myTime,myIter,myThid ) |
551 |
|
CALL TIMER_STOP ('GCHEM_FORCING_SEP [FORWARD_STEP]',myThid) |
552 |
ENDIF |
ENDIF |
|
#endif /* PTRACERS_SEPARATE_FORCING */ |
|
553 |
#endif /* ALLOW_GCHEM */ |
#endif /* ALLOW_GCHEM */ |
|
cswdptr -- end add --- |
|
554 |
|
|
555 |
C-- Do "blocking" sends and receives for tendency "overlap" terms |
C-- Do "blocking" sends and receives for tendency "overlap" terms |
556 |
c CALL TIMER_START('BLOCKING_EXCHANGES [FORWARD_STEP]',myThid) |
c CALL TIMER_START('BLOCKING_EXCHANGES [FORWARD_STEP]',myThid) |