146 |
C | | | |-INI_SALT :: Set model initial salinity field. |
C | | | |-INI_SALT :: Set model initial salinity field. |
147 |
C | | | |-INI_PSURF :: Set model initial free-surface height/pressure. |
C | | | |-INI_PSURF :: Set model initial free-surface height/pressure. |
148 |
C | | | |-INI_PRESSURE :: Compute model initial hydrostatic pressure |
C | | | |-INI_PRESSURE :: Compute model initial hydrostatic pressure |
149 |
|
C | | | |-READ_CHECKPOINT :: Read the checkpoint |
150 |
C | | | |
C | | | |
151 |
C | | |-INI_TR1 :: Set initial tracer 1 distribution. |
C | | |-INI_TR1 :: Set initial tracer 1 distribution. |
152 |
C | | | |
C | | | |
379 |
C/\ | | | |-KPP_DO_DIAGS :: KPP diags. see pkg/kpp |
C/\ | | | |-KPP_DO_DIAGS :: KPP diags. see pkg/kpp |
380 |
C/\ | | | |-SBO_CALC :: SBO diags. see pkg/sbo |
C/\ | | | |-SBO_CALC :: SBO diags. see pkg/sbo |
381 |
C/\ | | | |-SBO_DIAGS :: SBO diags. see pkg/sbo |
C/\ | | | |-SBO_DIAGS :: SBO diags. see pkg/sbo |
382 |
|
C/\ | | | |-SEAICE_DO_DIAGS :: SEAICE diags. see pkg/seaice |
383 |
C/\ | | | |-GCHEM_DIAGS :: gchem diags. see pkg/gchem |
C/\ | | | |-GCHEM_DIAGS :: gchem diags. see pkg/gchem |
384 |
C/\ | | | |
C/\ | | | |
385 |
C/\ | | |-WRITE_CHECKPOINT :: Do I/O for restart files. |
C/\ | | |-WRITE_CHECKPOINT :: Do I/O for restart files. |
469 |
#include "SIZE.h" |
#include "SIZE.h" |
470 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
471 |
#include "PARAMS.h" |
#include "PARAMS.h" |
472 |
|
#ifdef ALLOW_MNC |
473 |
|
#include "MNC_PARAMS.h" |
474 |
|
#endif |
475 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
476 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
477 |
# include "CG3D.h" |
# include "CG3D.h" |
544 |
IF (myProcId .eq. 0) THEN |
IF (myProcId .eq. 0) THEN |
545 |
inquire( file='costfinal', exist=exst ) |
inquire( file='costfinal', exist=exst ) |
546 |
IF ( .NOT. exst .AND. niter0 .EQ. 0 ) THEN |
IF ( .NOT. exst .AND. niter0 .EQ. 0 ) THEN |
547 |
CALL TIMER_START('CTRL_UNPACK [THE_MODEL_MAIN]',mythid) |
IF ( optimcycle.NE.0 ) THEN |
548 |
CALL CTRL_UNPACK( .TRUE. , mythid ) |
CALL TIMER_START('CTRL_UNPACK [THE_MODEL_MAIN]',mythid) |
549 |
CALL TIMER_STOP ('CTRL_UNPACK [THE_MODEL_MAIN]',mythid) |
CALL CTRL_UNPACK( .TRUE. , mythid ) |
550 |
|
CALL TIMER_STOP ('CTRL_UNPACK [THE_MODEL_MAIN]',mythid) |
551 |
|
ENDIF |
552 |
IF ( optimcycle.EQ.0 .AND. mycurrentiter.EQ.niter0 ) THEN |
IF ( optimcycle.EQ.0 .AND. mycurrentiter.EQ.niter0 ) THEN |
553 |
CALL TIMER_START('CTRL_PACK [THE_MODEL_MAIN]',mythid) |
CALL TIMER_START('CTRL_PACK [THE_MODEL_MAIN]',mythid) |
554 |
CALL CTRL_PACK( .TRUE. , mythid ) |
CALL CTRL_PACK( .TRUE. , mythid ) |
582 |
CALL COST_FINAL_STORE ( mythid, lastdiva ) |
CALL COST_FINAL_STORE ( mythid, lastdiva ) |
583 |
ELSE |
ELSE |
584 |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
585 |
CALL ADTHE_MAIN_LOOP ( mythid ) |
CALL ADTHE_MAIN_LOOP ( myCurrentTime, myCurrentIter, mythid ) |
586 |
CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
587 |
CALL COST_FINAL_RESTORE ( mythid, lastdiva ) |
CALL COST_FINAL_RESTORE ( mythid, lastdiva ) |
588 |
ENDIF |
ENDIF |
589 |
c-- |
c-- |
590 |
# else /* ALLOW_DIVIDED_ADJOINT undef */ |
# else /* ALLOW_DIVIDED_ADJOINT undef */ |
591 |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
592 |
CALL ADTHE_MAIN_LOOP ( mythid ) |
CALL ADTHE_MAIN_LOOP ( myCurrentTime, myCurrentIter, mythid ) |
593 |
|
cph CALL ADTHE_MAIN_LOOP ( mythid ) |
594 |
CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
595 |
# endif /* ALLOW_DIVIDED_ADJOINT */ |
# endif /* ALLOW_DIVIDED_ADJOINT */ |
596 |
c |
c |
630 |
|
|
631 |
#endif /* ALLOW_TANGENTLINEAR_RUN ALLOW_ADJOINT_RUN ALLOW_ADMTLM_RUN */ |
#endif /* ALLOW_TANGENTLINEAR_RUN ALLOW_ADJOINT_RUN ALLOW_ADMTLM_RUN */ |
632 |
|
|
|
C-- Sea-ice checkpoint (in case the in-loop checkpoint was missed) |
|
|
#ifdef ALLOW_SEAICE |
|
|
IF ( useSEAICE ) |
|
|
& CALL SEAICE_WRITE_PICKUP( |
|
|
& .TRUE., myCurrentTime, myCurrentIter, myThid ) |
|
|
#endif |
|
|
|
|
633 |
C-- Final checkpoint (in case the in-loop checkpoint was missed) |
C-- Final checkpoint (in case the in-loop checkpoint was missed) |
634 |
CALL TIMER_START('WRITE_CHECKPOINT [THE_MODEL_MAIN]',myThid) |
CALL TIMER_START('WRITE_CHECKPOINT [THE_MODEL_MAIN]',myThid) |
635 |
CALL PACKAGES_WRITE_PICKUP( |
CALL PACKAGES_WRITE_PICKUP( |
640 |
|
|
641 |
CALL TIMER_STOP ('ALL [THE_MODEL_MAIN]',myThid) |
CALL TIMER_STOP ('ALL [THE_MODEL_MAIN]',myThid) |
642 |
|
|
643 |
|
#ifdef ALLOW_MNC |
644 |
|
IF (useMNC) THEN |
645 |
|
C Close all open NetCDF files |
646 |
|
_BEGIN_MASTER( mythid ) |
647 |
|
CALL MNC_FILE_CLOSE_ALL( myThid ) |
648 |
|
_END_MASTER( mythid ) |
649 |
|
ENDIF |
650 |
|
#endif |
651 |
|
|
652 |
C-- Write timer statistics |
C-- Write timer statistics |
653 |
IF ( myThid .EQ. 1 ) THEN |
IF ( myThid .EQ. 1 ) THEN |
654 |
CALL TIMER_PRINTALL( myThid ) |
CALL TIMER_PRINTALL( myThid ) |