C $Header: /u/gcmpack/MITgcm/verification/tutorial_global_oce_optim/code_ad/tamc.h,v 1.3 2009/02/13 21:52:16 heimbach Exp $ C $Name: $ #include "PACKAGES_CONFIG.h" 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 ================================================================ 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 = 30 ) integer nchklev_2 parameter( nchklev_2 = 5 ) c parameter( nchklev_2 = 150 ) integer nchklev_3 parameter( nchklev_3 = 5 ) c parameter( nchklev_3 = 150 ) 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 #ifdef ALLOW_TAMC_SINGLEPREC_COMLEV PARAMETER( isbyte = 4 ) #else PARAMETER( isbyte = 8 ) #endif 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, iptrkey c ================================================================ c END OF HEADER TAMC c ================================================================