494 |
lastdiva = .TRUE. |
lastdiva = .TRUE. |
495 |
|
|
496 |
#ifdef ALLOW_DEBUG |
#ifdef ALLOW_DEBUG |
497 |
IF (debugMode) CALL DEBUG_ENTER('THE_MODEL_MAIN',myThid) |
CALL DEBUG_ENTER('THE_MODEL_MAIN',myThid) |
498 |
#endif |
#endif |
499 |
|
|
500 |
#if defined(USE_PAPI) || defined(USE_PCL_FLOPS_SFP) || defined(USE_PCL_FLOPS) || defined(USE_PCL) |
#if defined(USE_PAPI) || defined(USE_PCL_FLOPS_SFP) || defined(USE_PCL_FLOPS) || defined(USE_PCL) |
504 |
CALL TIMER_START('ALL [THE_MODEL_MAIN]',myThid) |
CALL TIMER_START('ALL [THE_MODEL_MAIN]',myThid) |
505 |
|
|
506 |
#ifdef ALLOW_DEBUG |
#ifdef ALLOW_DEBUG |
507 |
IF (debugMode) CALL DEBUG_CALL('INITIALISE_FIXED',myThid) |
CALL DEBUG_CALL('INITIALISE_FIXED',myThid) |
508 |
#endif |
#endif |
509 |
|
|
510 |
C-- Set model configuration (fixed arrays) |
C-- Set model configuration (fixed arrays) |
512 |
CALL INITIALISE_FIXED( myThid ) |
CALL INITIALISE_FIXED( myThid ) |
513 |
CALL TIMER_STOP ('INITIALISE_FIXED [THE_MODEL_MAIN]',myThid) |
CALL TIMER_STOP ('INITIALISE_FIXED [THE_MODEL_MAIN]',myThid) |
514 |
|
|
515 |
|
#ifdef ALLOW_DEBUG |
516 |
|
IF (debugMode) CALL DEBUG_LEAVE('INITIALISE_FIXED',myThid) |
517 |
|
#endif |
518 |
|
|
519 |
myCurrentTime = startTime |
myCurrentTime = startTime |
520 |
myCurrentIter = nIter0 |
myCurrentIter = nIter0 |
521 |
|
|
548 |
|
|
549 |
# if ( defined (ALLOW_TANGENTLINEAR_RUN) ) |
# if ( defined (ALLOW_TANGENTLINEAR_RUN) ) |
550 |
c |
c |
551 |
|
#ifdef ALLOW_DEBUG |
552 |
|
IF (debugMode) CALL DEBUG_CALL('G_THE_MAIN_LOOP',myThid) |
553 |
|
#endif |
554 |
CALL TIMER_START('G_THE_MAIN_LOOP [TANGENT RUN]',mythid) |
CALL TIMER_START('G_THE_MAIN_LOOP [TANGENT RUN]',mythid) |
555 |
CALL G_THE_MAIN_LOOP ( myCurrentTime, myCurrentIter, myThid ) |
CALL G_THE_MAIN_LOOP ( myCurrentTime, myCurrentIter, myThid ) |
556 |
CALL TIMER_STOP ('G_THE_MAIN_LOOP [TANGENT RUN]',mythid) |
CALL TIMER_STOP ('G_THE_MAIN_LOOP [TANGENT RUN]',mythid) |
562 |
c-- The following assumes the TAF option '-pure' |
c-- The following assumes the TAF option '-pure' |
563 |
inquire( file='costfinal', exist=exst ) |
inquire( file='costfinal', exist=exst ) |
564 |
IF ( .NOT. exst) THEN |
IF ( .NOT. exst) THEN |
565 |
|
#ifdef ALLOW_DEBUG |
566 |
|
IF (debugMode) CALL DEBUG_CALL('MDTHE_MAIN_LOOP',myThid) |
567 |
|
#endif |
568 |
CALL TIMER_START('MDTHE_MAIN_LOOP [MD RUN]', mythid) |
CALL TIMER_START('MDTHE_MAIN_LOOP [MD RUN]', mythid) |
569 |
CALL MDTHE_MAIN_LOOP ( myCurrentTime, myCurrentIter, mythid ) |
CALL MDTHE_MAIN_LOOP ( myCurrentTime, myCurrentIter, mythid ) |
570 |
CALL TIMER_STOP ('MDTHE_MAIN_LOOP [MD RUN]', mythid) |
CALL TIMER_STOP ('MDTHE_MAIN_LOOP [MD RUN]', mythid) |
571 |
CALL COST_FINAL_STORE ( mythid, lastdiva ) |
CALL COST_FINAL_STORE ( mythid, lastdiva ) |
572 |
ELSE |
ELSE |
573 |
|
#ifdef ALLOW_DEBUG |
574 |
|
IF (debugMode) CALL DEBUG_CALL('ADTHE_MAIN_LOOP',myThid) |
575 |
|
#endif |
576 |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
577 |
CALL ADTHE_MAIN_LOOP ( mythid ) |
CALL ADTHE_MAIN_LOOP ( mythid ) |
578 |
CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
580 |
ENDIF |
ENDIF |
581 |
c-- |
c-- |
582 |
# else /* ALLOW_DIVIDED_ADJOINT undef */ |
# else /* ALLOW_DIVIDED_ADJOINT undef */ |
583 |
|
#ifdef ALLOW_DEBUG |
584 |
|
IF (debugMode) CALL DEBUG_CALL('ADTHE_MAIN_LOOP',myThid) |
585 |
|
#endif |
586 |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid) |
587 |
#ifdef ALLOW_ECCO |
#ifdef ALLOW_ECCO |
588 |
CALL ADTHE_MAIN_LOOP ( myCurrentTime, mythid ) |
CALL ADTHE_MAIN_LOOP ( myCurrentTime, mythid ) |
598 |
IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid) |
IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid) |
599 |
#endif |
#endif |
600 |
C-- Call time stepping loop of full model |
C-- Call time stepping loop of full model |
601 |
|
#ifdef ALLOW_DEBUG |
602 |
|
IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid) |
603 |
|
#endif |
604 |
CALL TIMER_START('THE_MAIN_LOOP [THE_MODEL_MAIN]',myThid) |
CALL TIMER_START('THE_MAIN_LOOP [THE_MODEL_MAIN]',myThid) |
605 |
CALL THE_MAIN_LOOP( myCurrentTime, myCurrentIter, myThid ) |
CALL THE_MAIN_LOOP( myCurrentTime, myCurrentIter, myThid ) |
606 |
CALL TIMER_STOP ('THE_MAIN_LOOP [THE_MODEL_MAIN]',myThid) |
CALL TIMER_STOP ('THE_MAIN_LOOP [THE_MODEL_MAIN]',myThid) |