C $Header: /u/gcmpack/MITgcm/verification/obcs_ctrl/code_ad/tamc.h,v 1.2 2011/06/23 21:42:39 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 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 c c ================================================================== c HEADER TAMC c ================================================================== 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 integer nchklev_2 integer nchklev_3 integer nchklev_4 parameter( nchklev_1 = 9 ) parameter( nchklev_2 = 8 ) parameter( nchklev_3 = 1 ) parameter( nchklev_4 = 1 ) c-- Note always check for the correct sizes of the common blocks! #else /* ALLOW_TAMC_CHECKPOINTING undefined */ integer nchklev_0 parameter( nchklev_0 = 48 ) #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 = 4 ) INTEGER maximpl PARAMETER( maximpl = 6 ) INTEGER maxpass #ifdef ALLOW_PTRACERS cmm ALLOW_PASSIVE_TRACER cmm PARAMETER( maxpass = 3 ) #else 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 c ================================================================== c END OF HEADER TAMC c ==================================================================