C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/hs94.1x64x5/code_ad/tamc.h,v 1.4 2014/04/05 21:45:54 jmc Exp $ C $Name: $ C ================================================================ C HEADER TAMC C ================================================================ C C o Header for the use of the Tangent Linear and Adjoint Model C Compiler (TAMC). C C started: Christian Eckert eckert@mit.edu 04-Feb-1999 C changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 C - New parameter nlevchk_0 for dimensionalising C common blocks in the undef ALLOW_TAMC_CHECKPOINTING case C - nhreads_chkpt was declared at the wrong place C - new keys, separate for different packages C ================================================================ C HEADER TAMC C ================================================================ #ifdef ALLOW_AUTODIFF_TAMC C TAMC checkpointing parameters: C ============================== C C The checkpointing parameters have to be consistent with other model C parameters and variables. This has to be checked before the model is C run. C C nyears_chkpt :: Number of calendar years affected by the assimilation C experiment; nyears_chkpt has to be at least equal to C the result of cal_IntYears(mythid). C nmonths_chkpt :: Number of months per year; nmonth_chkpt has to be at C least equal to nmonthyear. C ndays_chkpt :: Number of days per month; nday_chkpt has to be at least C equal to nmaxdaymonth. C nsteps_chkpt :: Number of steps per day; nsteps_chkpt has to be at C least equal to cal_nStepDay(mythid) C ncheck_chkpt :: Number of innermost checkpoints. C C ngeom_chkpt :: Geometry factor. C nthreads_chkpt :: Number of threads to be used; nth_chkpt .eq. nTx*nTy integer nyears_chkpt integer nmonths_chkpt integer ndays_chkpt integer ngeom_chkpt integer ncheck_chkpt integer nthreads_chkpt parameter (nyears_chkpt = 1 ) parameter (nmonths_chkpt = 12 ) parameter (ndays_chkpt = 31 ) parameter (ngeom_chkpt = nr*nsx*nsy ) parameter (ncheck_chkpt = 6 ) parameter ( nthreads_chkpt = 1 ) #ifdef ALLOW_TAMC_CHECKPOINTING integer nchklev_1 parameter( nchklev_1 = 36 ) integer nchklev_2 parameter( nchklev_2 = 30 ) integer nchklev_3 parameter( nchklev_3 = 60 ) C-- Note always check for the correct sizes of the common blocks! #else /* ALLOW_TAMC_CHECKPOINTING undefined */ integer nchklev_0 parameter( nchklev_0 = 64800 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ c TAMC keys: c ========== c c The keys are used for storing and reading data of the reference c trajectory. c c The convention used here is: c ikey_ c c which means that this key is used in routine for reading c and writing data. common /tamc_keys_i/ & ikey_dynamics, & ikey_yearly, & ikey_daily_1, & ikey_daily_2, & iloop_daily integer ikey_dynamics integer ikey_yearly integer ikey_daily_1 integer ikey_daily_2 integer iloop_daily INTEGER isbyte PARAMETER( isbyte = 8 ) INTEGER maximpl PARAMETER( maximpl = 6 ) #ifndef ALLOW_PTRACERS INTEGER maxpass PARAMETER( maxpass = 2 ) #endif INTEGER maxcube PARAMETER( maxcube = 1 ) INTEGER act0, act1, act2, act3, act4 INTEGER max0, max1, max2, max3 INTEGER iikey, kkey, passkey, igadkey, & itdkey, idynkey, igmkey, ikppkey, iptrkey #ifdef ALLOW_CG2D_NSA C Parameter that is needed for the tape complev_cg2d_iter C cannot be smaller than the allowed number of iterations in cg2d C (numItersMax >= cg2dMaxIters in data-file) INTEGER numItersMax PARAMETER ( numItersMax = 100 ) #endif #endif /* ALLOW_AUTODIFF_TAMC */ C ================================================================ C END OF HEADER TAMC C ================================================================