Back to home page

MITgcm

 
 

    


File indexing completed on 2022-11-23 06:10:40 UTC

view on githubraw file Latest commit 20dee616 on 2022-11-22 15:45:38 UTC
20dee61641 Mart*0001 CBOP
                0002 C     !ROUTINE: tamc.h
                0003 C     !INTERFACE:
                0004 C     #include "tamc.h"
770ad27905 Gael*0005 
20dee61641 Mart*0006 C     !DESCRIPTION:
                0007 C     *================================================================*
                0008 C     | tamc.h
                0009 C     | o Header file defining parameters and variables for the use of
                0010 C     |   the Tangent Linear and Adjoint Model Compiler (TAMC)
                0011 C     |   or the Transformations in Fortran tool (TAF).
                0012 C     |
                0013 C     | started: Christian Eckert eckert@mit.edu  04-Feb-1999
                0014 C     | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000
                0015 C     | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022
                0016 C     *================================================================*
                0017 CEOP
                0018 #ifdef ALLOW_AUTODIFF_TAMC
770ad27905 Gael*0019 
20dee61641 Mart*0020 C     TAMC checkpointing parameters:
                0021 C     ==============================
                0022 C
                0023 C     The checkpointing parameters have to be consistent with other model
                0024 C     parameters and variables. This has to be checked before the model is
                0025 C     run.
                0026 C
770ad27905 Gael*0027 
                0028 #ifdef ALLOW_TAMC_CHECKPOINTING
                0029 
20dee61641 Mart*0030 C     nchklev_1 :: length of inner loop (=size of storage in memory)
                0031 C     nchklev_2 :: length of second loop (stored on disk)
                0032 C     nchklev_3 :: length of outer loop of 3-level checkpointing
                0033       INTEGER    nchklev_1
                0034       PARAMETER( nchklev_1 =   5 )
                0035       INTEGER    nchklev_2
                0036       PARAMETER( nchklev_2 = 100 )
                0037       INTEGER    nchklev_3
                0038       PARAMETER( nchklev_3 =  32 )
                0039 #ifdef AUTODIFF_4_LEVEL_CHECKPOINT
                0040 C     nchklev_4 :: length of outer loop of 4-level checkpointing
                0041       INTEGER    nchklev_4
                0042       PARAMETER( nchklev_4 =   1 )
                0043 #endif
770ad27905 Gael*0044 
20dee61641 Mart*0045 C--   Note always check for the correct sizes of the common blocks!
                0046 C     The product of the nchklev_X needs to be at least equal to
                0047 C     nTimeSteps.
770ad27905 Gael*0048 
                0049 #else /* ALLOW_TAMC_CHECKPOINTING undefined */
                0050 
20dee61641 Mart*0051 C     Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least
                0052 C     equal to nTimeSteps. This (arbitrary) setting would accommodate a
                0053 C     short run (e.g., 10.d with deltaT=10.mn)
                0054       INTEGER    nchklev_1
                0055       PARAMETER( nchklev_1 = 1500 )
770ad27905 Gael*0056 
                0057 #endif /* ALLOW_TAMC_CHECKPOINTING */
                0058 
20dee61641 Mart*0059 C     TAMC keys:
                0060 C     ==========
                0061 C
                0062 C     The keys are used for storing and reading data of the reference
                0063 C     trajectory. Currently there is only one global key.
                0064 C     ikey_dynamics :: key for main time stepping loop
770ad27905 Gael*0065 
20dee61641 Mart*0066       COMMON /TAMC_KEYS_I/ ikey_dynamics
                0067       INTEGER ikey_dynamics
770ad27905 Gael*0068 
20dee61641 Mart*0069 C     isbyte :: precision of tapes (both memory and disk).
                0070 C               For smaller tapes replace 8 by 4.
770ad27905 Gael*0071       INTEGER    isbyte
20dee61641 Mart*0072       PARAMETER( isbyte    = 8 )
                0073 
                0074 C     maxpass :: maximum number of (active + passive) tracers
                0075 C                Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers
770ad27905 Gael*0076 #ifndef ALLOW_PTRACERS
                0077       INTEGER    maxpass
20dee61641 Mart*0078       PARAMETER( maxpass   = 3 )
770ad27905 Gael*0079 #endif
20dee61641 Mart*0080 C     maxcube :: for Multi-Dim advection, max number of horizontal directions
770ad27905 Gael*0081       INTEGER    maxcube
20dee61641 Mart*0082       PARAMETER( maxcube   = 2 )
                0083 
                0084 #ifdef ALLOW_CG2D_NSA
                0085 C     Parameter that is needed for the tape complev_cg2d_iter
                0086 C     cannot be smaller than the allowed number of iterations in cg2d
                0087 C     (numItersMax >= cg2dMaxIters in data-file)
                0088       INTEGER numItersMax
                0089       PARAMETER ( numItersMax = 100 )
                0090 #endif
770ad27905 Gael*0091 
20dee61641 Mart*0092 #endif /* ALLOW_AUTODIFF_TAMC */
                0093 C     ================================================================
                0094 C     END OF HEADER TAMC
                0095 C     ================================================================