462 |
logical exst |
logical exst |
463 |
logical lastdiva |
logical lastdiva |
464 |
CEOP |
CEOP |
465 |
|
c-- set default: |
466 |
|
lastdiva = .TRUE. |
467 |
|
|
468 |
|
#ifndef DISABLE_DEBUGMODE |
469 |
|
IF (debugMode) CALL DEBUG_ENTER('THE_MODEL_MAIN',myThid) |
470 |
|
#endif |
471 |
|
|
472 |
C-- This timer encompasses the whole code |
C-- This timer encompasses the whole code |
473 |
CALL TIMER_START('ALL [THE_MODEL_MAIN]',myThid) |
CALL TIMER_START('ALL [THE_MODEL_MAIN]',myThid) |
474 |
|
|
475 |
|
#ifndef DISABLE_DEBUGMODE |
476 |
|
IF (debugMode) CALL DEBUG_CALL('INITIALISE_FIXED',myThid) |
477 |
|
#endif |
478 |
|
|
479 |
C-- Set model configuration (fixed arrays) |
C-- Set model configuration (fixed arrays) |
480 |
CALL TIMER_START('INITIALISE_FIXED [THE_MODEL_MAIN]',myThid) |
CALL TIMER_START('INITIALISE_FIXED [THE_MODEL_MAIN]',myThid) |
481 |
CALL INITIALISE_FIXED( myThid ) |
CALL INITIALISE_FIXED( myThid ) |
504 |
CALL COST_DEPENDENT_INIT ( mythid ) |
CALL COST_DEPENDENT_INIT ( mythid ) |
505 |
_BARRIER |
_BARRIER |
506 |
|
|
507 |
#if ( defined (ALLOW_ADJOINT_RUN) || \ |
#ifndef ALLOW_TANGENTLINEAR_RUN |
508 |
defined (ALLOW_ECCO_OPTIMIZATION) ) |
c |
509 |
# ifdef ALLOW_DIVIDED_ADJOINT |
# if ( defined (ALLOW_ADJOINT_RUN) || \ |
510 |
|
defined (ALLOW_ECCO_OPTIMIZATION) ) |
511 |
|
# ifdef ALLOW_DIVIDED_ADJOINT |
512 |
c-- The following assumes the TAF option '-pure' |
c-- The following assumes the TAF option '-pure' |
513 |
inquire( file='costfinal', exist=exst ) |
inquire( file='costfinal', exist=exst ) |
514 |
IF ( .NOT. exst) THEN |
IF ( .NOT. exst) THEN |
523 |
CALL COST_FINAL_RESTORE ( mythid, lastdiva ) |
CALL COST_FINAL_RESTORE ( mythid, lastdiva ) |
524 |
ENDIF |
ENDIF |
525 |
c-- |
c-- |
526 |
# else |
# else /* ALLOW_DIVIDED_ADJOINT undef */ |
527 |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
528 |
CALL ADTHE_MAIN_LOOP ( mythid ) |
CALL ADTHE_MAIN_LOOP ( mythid ) |
529 |
CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
530 |
|
# endif /* ALLOW_DIVIDED_ADJOINT */ |
531 |
# endif |
# endif |
532 |
c-- |
c-- |
533 |
#elif (defined (ALLOW_TANGENTLINEAR_RUN)) |
#else /* ALLOW_TANGENTLINEAR_RUN defined */ |
534 |
CALL TIMER_START('G_THE_MAIN_LOOP [TANGENT RUN]',mythid) |
CALL TIMER_START('G_THE_MAIN_LOOP [TANGENT RUN]',mythid) |
535 |
CALL G_THE_MAIN_LOOP ( myCurrentTime, myCurrentIter, myThid ) |
CALL G_THE_MAIN_LOOP ( myCurrentTime, myCurrentIter, myThid ) |
536 |
CALL TIMER_STOP ('G_THE_MAIN_LOOP [TANGENT RUN]',mythid) |
CALL TIMER_STOP ('G_THE_MAIN_LOOP [TANGENT RUN]',mythid) |
537 |
#endif |
#endif /* ALLOW_TANGENTLINEAR_RUN */ |
538 |
_BARRIER |
_BARRIER |
539 |
|
|
540 |
_BEGIN_MASTER( mythid ) |
_BEGIN_MASTER( mythid ) |
541 |
IF ( myProcId .eq. 0 .AND. lastdiva ) THEN |
IF ( myProcId .eq. 0 .AND. lastdiva ) THEN |
542 |
CALL TIMER_START('CTLR_PACK [THE_MODEL_MAIN]',mythid) |
CALL TIMER_START('CTRL_PACK [THE_MODEL_MAIN]',mythid) |
543 |
call CTRL_PACK( mycurrentiter, mycurrenttime, mythid ) |
call CTRL_PACK( mycurrentiter, mycurrenttime, mythid ) |
544 |
CALL TIMER_STOP ('CTLR_PACK [THE_MODEL_MAIN]',mythid) |
CALL TIMER_STOP ('CTRL_PACK [THE_MODEL_MAIN]',mythid) |
545 |
ENDIF |
ENDIF |
546 |
_END_MASTER( mythid ) |
_END_MASTER( mythid ) |
547 |
_BARRIER |
_BARRIER |
557 |
|
|
558 |
#else /* ALLOW_ADJOINT_RUN undef */ |
#else /* ALLOW_ADJOINT_RUN undef */ |
559 |
|
|
560 |
|
#ifndef DISABLE_DEBUGMODE |
561 |
|
IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid) |
562 |
|
#endif |
563 |
|
|
564 |
C-- Call time stepping loop of full model |
C-- Call time stepping loop of full model |
565 |
CALL TIMER_START('THE_MAIN_LOOP [THE_MODEL_MAIN]',myThid) |
CALL TIMER_START('THE_MAIN_LOOP [THE_MODEL_MAIN]',myThid) |
566 |
CALL THE_MAIN_LOOP( myCurrentTime, myCurrentIter, myThid ) |
CALL THE_MAIN_LOOP( myCurrentTime, myCurrentIter, myThid ) |
589 |
CALL COMM_STATS |
CALL COMM_STATS |
590 |
ENDIF |
ENDIF |
591 |
|
|
592 |
|
#ifndef DISABLE_DEBUGMODE |
593 |
|
IF (debugMode) CALL DEBUG_LEAVE('THE_MODEL_MAIN',myThid) |
594 |
|
#endif |
595 |
|
|
596 |
RETURN |
RETURN |
597 |
END |
END |