-
Notifications
You must be signed in to change notification settings - Fork 237
/
tamc.h
96 lines (82 loc) · 3.26 KB
/
tamc.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
CBOP
C !ROUTINE: tamc.h
C !INTERFACE:
C #include "tamc.h"
C !DESCRIPTION:
C *================================================================*
C | tamc.h
C | o Header file defining parameters and variables for the use of
C | the Tangent Linear and Adjoint Model Compiler (TAMC)
C | or the Transformations in Fortran tool (TAF).
C |
C | started: Christian Eckert eckert@mit.edu 04-Feb-1999
C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000
C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022
C *================================================================*
CEOP
#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
#ifdef ALLOW_TAMC_CHECKPOINTING
C nchklev_1 :: length of inner loop (=size of storage in memory)
C nchklev_2 :: length of second loop (stored on disk)
C nchklev_3 :: length of outer loop of 3-level checkpointing
INTEGER nchklev_1
PARAMETER( nchklev_1 = 2 )
INTEGER nchklev_2
PARAMETER( nchklev_2 = 2 )
INTEGER nchklev_3
PARAMETER( nchklev_3 = 4 )
#ifdef AUTODIFF_4_LEVEL_CHECKPOINT
C nchklev_4 :: length of outer loop of 4-level checkpointing
C use a value of 4 in case we want to test it here
INTEGER nchklev_4
PARAMETER( nchklev_4 = 4 )
#endif
C-- Note always check for the correct sizes of the common blocks!
C The product of the nchklev_X needs to be at least equal to
C nTimeSteps.
#else /* ALLOW_TAMC_CHECKPOINTING undefined */
C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least
C equal to nTimeSteps. This (arbitrary) setting would accommodate a
C short run (e.g., 10.d with deltaT=10.mn)
INTEGER nchklev_1
PARAMETER( nchklev_1 = 1500 )
#endif /* ALLOW_TAMC_CHECKPOINTING */
C TAMC keys:
C ==========
C
C The keys are used for storing and reading data of the reference
C trajectory. Currently there is only one global key.
C ikey_dynamics :: key for main time stepping loop
COMMON /TAMC_KEYS_I/ ikey_dynamics
INTEGER ikey_dynamics
C isbyte :: precision of tapes (both memory and disk).
C For smaller tapes replace 8 by 4.
INTEGER isbyte
PARAMETER( isbyte = 8 )
C maxpass :: maximum number of (active + passive) tracers
C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers
#ifndef ALLOW_PTRACERS
INTEGER maxpass
PARAMETER( maxpass = 2 )
#endif
C maxcube :: for Multi-Dim advection, max number of horizontal directions
INTEGER maxcube
PARAMETER( maxcube = 2 )
#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 ================================================================