103 |
# include "DYNVARS.h" |
# include "DYNVARS.h" |
104 |
# include "FFIELDS.h" |
# include "FFIELDS.h" |
105 |
# include "EOS.h" |
# include "EOS.h" |
106 |
|
# include "AUTODIFF.h" |
107 |
|
|
108 |
# ifdef ALLOW_GENERIC_ADVDIFF |
# ifdef ALLOW_GENERIC_ADVDIFF |
109 |
# include "GAD.h" |
# include "GAD.h" |
187 |
character yprefix*3 |
character yprefix*3 |
188 |
#endif |
#endif |
189 |
|
|
|
#ifdef ALLOW_TAMC_CHECKPOINTING |
|
|
integer ilev_1 |
|
|
integer ilev_2 |
|
|
integer ilev_3 |
|
|
integer ilev_4 |
|
|
integer max_lev2 |
|
|
integer max_lev3 |
|
|
integer max_lev4 |
|
|
#endif |
|
|
|
|
190 |
#if defined(TIME_PER_TIMESTEP) || defined(USE_PAPI_FLOPS) || defined(USE_PCL_FLOPS) |
#if defined(TIME_PER_TIMESTEP) || defined(USE_PAPI_FLOPS) || defined(USE_PCL_FLOPS) |
191 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
192 |
#ifdef TIME_PER_TIMESTEP |
#ifdef TIME_PER_TIMESTEP |
344 |
do ilev_4 = 1,nchklev_4 |
do ilev_4 = 1,nchklev_4 |
345 |
if(ilev_4.le.max_lev4) then |
if(ilev_4.le.max_lev4) then |
346 |
c************************************** |
c************************************** |
347 |
|
CALL AUTODIFF_STORE( myThid ) |
348 |
#include "checkpoint_lev4_directives.h" |
#include "checkpoint_lev4_directives.h" |
349 |
|
CALL AUTODIFF_RESTORE( myThid ) |
350 |
c************************************** |
c************************************** |
351 |
c-- Initialise storage for the middle loop. |
c-- Initialise storage for the middle loop. |
352 |
CADJ INIT tapelev3 = USER |
CADJ INIT tapelev3 = USER |
356 |
do ilev_3 = 1,nchklev_3 |
do ilev_3 = 1,nchklev_3 |
357 |
if(ilev_3.le.max_lev3) then |
if(ilev_3.le.max_lev3) then |
358 |
c************************************** |
c************************************** |
359 |
|
CALL AUTODIFF_STORE( myThid ) |
360 |
#include "checkpoint_lev3_directives.h" |
#include "checkpoint_lev3_directives.h" |
361 |
|
CALL AUTODIFF_RESTORE( myThid ) |
362 |
c************************************** |
c************************************** |
363 |
c-- Initialise storage for the middle loop. |
c-- Initialise storage for the middle loop. |
364 |
CADJ INIT tapelev2 = USER |
CADJ INIT tapelev2 = USER |
367 |
do ilev_2 = 1,nchklev_2 |
do ilev_2 = 1,nchklev_2 |
368 |
if(ilev_2.le.max_lev2) then |
if(ilev_2.le.max_lev2) then |
369 |
c************************************** |
c************************************** |
370 |
|
CALL AUTODIFF_STORE( myThid ) |
371 |
#include "checkpoint_lev2_directives.h" |
#include "checkpoint_lev2_directives.h" |
372 |
|
CALL AUTODIFF_RESTORE( myThid ) |
373 |
c************************************** |
c************************************** |
374 |
|
|
375 |
c************************************** |
c************************************** |