/[MITgcm]/MITgcm_contrib/high_res_cube/cs510_adjoint/code_ad/tamc.h
ViewVC logotype

Contents of /MITgcm_contrib/high_res_cube/cs510_adjoint/code_ad/tamc.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.4 - (show annotations) (download)
Fri Jun 12 19:35:52 2009 UTC (16 years, 1 month ago) by zhc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +45 -7 lines
File MIME type: text/plain
50 levels ajoint+complete data constraint

1
2 c ==================================================================
3 c HEADER TAMC
4 c ==================================================================
5 c
6 c o Header for the use of the Tangent Linear and Adjoint Model
7 c Compiler (TAMC).
8 c
9 c started: Christian Eckert eckert@mit.edu 04-Feb-1999
10 c
11 c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000
12 c - New parameter nlevchk_0 for dimensionalising
13 c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case
14 c - nhreads_chkpt was declared at the wrong place
15 c
16 c
17 c ==================================================================
18 c HEADER TAMC
19 c ==================================================================
20
21
22 c TAMC checkpointing parameters:
23 c ==============================
24 c
25 c The checkpointing parameters have to be consistent with other model
26 c parameters and variables. This has to be checked before the model is
27 c run.
28 c
29 c nyears_chkpt - Number of calendar years affected by the assimilation
30 c experiment; nyears_chkpt has to be at least equal to
31 c the result of cal_IntYears(mythid).
32 c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at
33 c least equal to nmonthyear.
34 c ndays_chkpt - Number of days per month; nday_chkpt has to be at least
35 c equal to nmaxdaymonth.
36 c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at
37 c least equal to cal_nStepDay(mythid)
38 c ncheck_chkpt - Number of innermost checkpoints.
39 c
40 c ngeom_chkpt - Geometry factor.
41 c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy
42
43 integer nyears_chkpt
44 integer nmonths_chkpt
45 integer ndays_chkpt
46 integer ngeom_chkpt
47 integer ncheck_chkpt
48 integer nthreads_chkpt
49
50 parameter (nyears_chkpt = 1 )
51 parameter (nmonths_chkpt = 12 )
52 parameter (ndays_chkpt = 31 )
53 parameter (ngeom_chkpt = nr*nsx*nsy )
54 parameter (ncheck_chkpt = 6 )
55 parameter ( nthreads_chkpt = 1 )
56
57 #ifdef ALLOW_TAMC_CHECKPOINTING
58
59 integer nchklev_1
60 integer nchklev_2
61 integer nchklev_3
62 c parameter( nchklev_1 = 2 )
63 c hzhang: try double innermost memeory : 16months:sqrt(34992/lev1)
64 c Nr=50
65 c parameter( nchklev_1 = 18 ) !2.18GB
66 c parameter( nchklev_2 = 45 )
67 c parameter( nchklev_3 = 45 )
68 c parameter( nchklev_1 = 20 ) !2.32GB OK!
69 c parameter( nchklev_2 = 42 )
70 c parameter( nchklev_3 = 42 )
71 c parameter( nchklev_1 = 22 ) !2.46GB
72 c parameter( nchklev_2 = 40 )
73 c parameter( nchklev_3 = 40 )
74 parameter( nchklev_1 = 25 ) !2.67GB
75 parameter( nchklev_2 = 38 )
76 parameter( nchklev_3 = 37 )
77 c parameter( nchklev_1 = 30 ) !3.03GB
78 c parameter( nchklev_2 = 35 )
79 c parameter( nchklev_3 = 35 )
80 c 3600 cpus, 4G/cpu
81 c parameter( nchklev_1 = 40 ) !3.73GB
82 c parameter( nchklev_2 = 30 )
83 c parameter( nchklev_3 = 30 )
84 c parameter( nchklev_1 = 50 ) !4.44GB
85 c parameter( nchklev_1 = 52 ) !4.58GB OK!
86 c parameter( nchklev_1 = 54 ) !4.72GB
87 c parameter( nchklev_2 = 26 )
88 c parameter( nchklev_3 = 27 )
89 c Nr=28:
90 c parameter( nchklev_1 = 30 ) !1.94GB
91 c parameter( nchklev_2 = 35 )
92 c parameter( nchklev_3 = 35 )
93 c parameter( nchklev_1 = 35 ) !2.15GB
94 c parameter( nchklev_2 = 32 )
95 c parameter( nchklev_3 = 32 )
96 c parameter( nchklev_1 = 40 ) !2.35GB OK!
97 c parameter( nchklev_2 = 30 )
98 c parameter( nchklev_3 = 30 )
99 c 3600 cpus, 4G/cpu
100 c parameter( nchklev_1 = 42 ) !2.43GB
101 c parameter( nchklev_2 = 29 )
102 c parameter( nchklev_3 = 29 )
103 c parameter( nchklev_1 = 45 ) !2.56GB
104 c parameter( nchklev_1 = 48 ) !2.69GB
105 c parameter( nchklev_2 = 28 )
106 c parameter( nchklev_3 = 28 )
107 c parameter( nchklev_1 = 60 ) !3.17GB
108 c parameter( nchklev_2 = 25 )
109 c parameter( nchklev_3 = 25 )
110 c parameter( nchklev_1 = 80 ) !3.99GB
111 c parameter( nchklev_1 = 85 ) !4.20GB
112 c parameter( nchklev_2 = 21 )
113 c parameter( nchklev_3 = 21 )
114 c parameter( nchklev_1 = 90 ) !4.41GB OK!
115 c parameter( nchklev_2 = 20 )
116 c parameter( nchklev_3 = 20 )
117 c-- Note always check for the correct sizes of the common blocks!
118
119 #else /* ALLOW_TAMC_CHECKPOINTING undefined */
120
121 integer nchklev_0
122 parameter( nchklev_0 = 48 )
123
124 #endif /* ALLOW_TAMC_CHECKPOINTING */
125
126 c TAMC keys:
127 c ==========
128 c
129 c The keys are used for storing and reading data of the reference
130 c trajectory.
131 c
132 c The convention used here is:
133 c ikey_<name>
134 c
135 c which means that this key is used in routine <name> for reading
136 c and writing data.
137
138 common /tamc_keys_i/
139 & ikey_dynamics,
140 & ikey_yearly,
141 & ikey_daily_1,
142 & ikey_daily_2,
143 & iloop_daily
144
145 integer ikey_dynamics
146 integer ikey_yearly
147 integer ikey_daily_1
148 integer ikey_daily_2
149 integer iloop_daily
150
151 INTEGER isbyte
152 c PARAMETER( isbyte = 4 )
153 #ifdef ALLOW_TAMC_SINGLEPREC_COMLEV
154 PARAMETER( isbyte = 4 )
155 #else
156 PARAMETER( isbyte = 8 )
157 #endif
158 INTEGER maximpl
159 PARAMETER( maximpl = 6 )
160 INTEGER maxpass
161 #ifdef ALLOW_PASSIVE_TRACER
162 PARAMETER( maxpass = 3 )
163 #else
164 PARAMETER( maxpass = 2 )
165 #endif
166 INTEGER maxcube
167 PARAMETER( maxcube = 1 )
168
169 INTEGER act0, act1, act2, act3, act4
170 INTEGER max0, max1, max2, max3
171 INTEGER iikey, kkey, passkey, igadkey,
172 & itdkey, idynkey, igmkey
173
174 c ==================================================================
175 c END OF HEADER TAMC
176 c ==================================================================
177

  ViewVC Help
Powered by ViewVC 1.1.22