/[MITgcm]/MITgcm/verification/lab_sea/README
ViewVC logotype

Contents of /MITgcm/verification/lab_sea/README

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


Revision 1.1.2.3 - (show annotations) (download)
Fri Dec 27 08:01:56 2002 UTC (21 years, 4 months ago) by dimitri
Branch: release1
CVS Tags: release1_p10
Changes since 1.1.2.2: +105 -27 lines
o modifications for using pkg/exf with pkg/seaice
  - pkg/seaice CPP options SEAICE_EXTERNAL_FORCING
    and SEAICE_EXTERNAL_FLUXES
  - pkg/exf CPP options EXF_READ_EVAP and
    EXF_NO_BULK_COMPUTATIONS
  - usage examples are Experiments 8 and 9 in
    verification/lab_sea/README
  - verification/lab_sea default experiment now uses
    pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf

1 Example: Labrador Sea Region with Sea-Ice
2 =========================================
3
4 This example sets up a small (20x16x23) Labrador Sea experiment
5 coupled to a dynamic thermodynamic sea-ice model.
6 A brief description of the sea-ice model is in "seaice.ps".
7
8 The domain of integration spans 280E to 320E and 46N to 78N.
9 Horizontal grid spacing is 2 degrees.
10 The 23 vertical levels and the bathymetry file
11 bathyFile = 'bathy.labsea'
12 are obtained from the the 2-degree ECCO configuration.
13
14 Integration is initialized from annual-mean Levitus climatology
15 hydrogThetaFile = 'LevCli_temp.labsea'
16 hydrogSaltFile = 'LevCli_salt.labsea'
17
18 Surface salinity relaxation is to the monthly mean Levitus climatology
19 saltClimFile = 'SSS.labsea'
20
21 Forcing files are a 1979-1999 monthly climatology computed from the
22 NCEP reanalysis (see pkg/seaice/SEAICE_FFIELDS.h for units and signs)
23 gairxFile = 'u10m.labsea79' # 10-m zonal wind
24 gairyFile = 'v10m.labsea79' # 10-m meridional wind
25 tairFile = 'tair.labsea1979' # 2-m air temperature
26 qaFile = 'qa.labsea1979' # 2-m specific humidity
27 floFile = 'flo.labsea1979' # longwave radiation
28 fshFile = 'fsh.labsea1979' # shortwave radiation
29 rainFile = 'prate.labsea1979' # precipitation
30 evapFile = 'evap.labsea1979' # evaporation
31
32
33 Using testscript to test sea-ice code
34 =====================================
35
36 Running the testscript experiment:
37 cd verification
38 ./testscript -force lab_sea
39
40 Note that fairly large differences in accuracy occur across different
41 platforms. For example, testscript comparisons between g77 (Linux)
42 and f77 (SGI) generated output gives:
43
44 T S U V
45 C D M c m s m s m s m s
46 n p a R g m m e . m m e . m m e . m m e .
47 f n k u 2 i a a d i a a d i a a d i a a d
48 g d e n d n x n . n x n . n x n . n x n .
49
50 Y Y Y Y 8 10 9 11 10 9 11 13 10 9 8 8 9 8 9 8 9 FAIL lab_sea
51
52
53 Instructions for generating 1-CPU and 2-CPU executables
54 =======================================================
55
56 Generating 1-CPU executable:
57 cd verification/lab_sea/input
58 ln -sf ../code/SIZE.h .
59 ln -sf ../code/CPP_EEOPTIONS.h .
60 ln -sf ../code/CPP_OPTIONS.NOEXF.h CPP_OPTIONS.h
61 rm -f SEAICE_OPTIONS.h
62 ../../../tools/genmake -makefile
63 ==> on alhena use:
64 ../../../tools/genmake -platform=o2k_noopt -makefile
65 make clean
66 make depend
67 make
68 mv mitgcmuv mitgcmuv_1
69
70 Generating 1-CPU executable with SEAICE_EXTERNAL_FORCING:
71 cd ../../../verification/lab_sea/input
72 ln -sf ../code/SIZE.h .
73 ln -sf ../code/CPP_EEOPTIONS.h .
74 ln -sf ../code/CPP_OPTIONS.h .
75 ln -sf ../code/ECCO_CPPOPTIONS.h .
76 ln -sf ../code/SEAICE_OPTIONS.h .
77 ../../../tools/genmake -makefile
78 ==> on alhena use:
79 ../../../tools/genmake -platform=o2k_noopt -makefile
80 make clean
81 make depend
82 make
83 mv mitgcmuv mitgcmuv_exf_forcing
84
85 Generating 1-CPU executable with SEAICE_EXTERNAL_FLUXES:
86 cd ../../../verification/lab_sea/input
87 ln -sf ../code/SIZE.h .
88 ln -sf ../code/CPP_EEOPTIONS.h .
89 ln -sf ../code/CPP_OPTIONS.h .
90 ln -sf ../code/ECCO_CPPOPTIONS.BULK.h ECCO_CPPOPTIONS.h
91 ln -sf ../code/SEAICE_OPTIONS.EXF_FLUXES.h SEAICE_OPTIONS.h
92 ../../../tools/genmake -makefile
93 ==> on alhena use:
94 ../../../tools/genmake -platform=o2k_noopt -makefile
95 make clean
96 make depend
97 make
98 mv mitgcmuv mitgcmuv_exf_fluxes
99
100 Generating 2-CPU executable:
101 cd ../../../verification/lab_sea/input
102 ln -sf ../code/SIZE.2x1.h SIZE.h
103 ln -sf ../code/CPP_EEOPTIONS.MPI.h CPP_EEOPTIONS.h
104 ln -sf ../code/CPP_OPTIONS.NOEXF.h CPP_OPTIONS.h
105 rm -f SEAICE_OPTIONS.h
106 ../../../tools/genmake -mpi -makefile
107 ==> on alhena for comparison purposes use:
108 ../../../tools/genmake -mpi -platform=o2k_noopt -makefile
109 ==> on alhena for fast execution use:
110 ../../../tools/genmake -mpi -platform=o2k -makefile
111 make clean
112 make depend
113 make
114 mv mitgcmuv mitgcmuv_2x1
115
116
117 Instructions for running Experiment 1
118 =====================================
119
120 This is a 1-cpu, 10-hour integration used to make sure that all the
121 files are available and that the model compiles and integrates. It
122 is the default experiment of "verification/testscript lab_sea".
123
124 To run Experiment 1:
125 cd ../../../verification/lab_sea/input
126 ln -sf DATA.10hours data
127 ln -sf DATA.SEAICE.adi data.seaice
128 mitgcmuv_1 >&! output.txt
129 mkdir exp1
130 mv *tave.0000000010.data exp1
131
132 Use matlab script lookat_exp1.m to compare the output
133 of exp1 with that from release1_p10 sea-ice code:
134 cd ../../../verification/lab_sea/matlab
135 matlab
136 lookat_exp1
137
138
139 Instructions for running Experiment 2
140 =====================================
141
142 This is a 1-cpu test of the LSR solver. The solution is
143 compared to that of experiment 1, which used the ADI solver.
144
145 To run Experiment 2:
146 cd ../../../verification/lab_sea/input
147 ln -sf DATA.10hours data
148 ln -sf DATA.SEAICE.lsr data.seaice
149 mitgcmuv_1 >&! output.txt
150 mkdir exp2
151 mv *tave.0000000010.data exp2
152
153 Use matlab script lookat_exp2.m to compare
154 the output of exp2 to that of exp1:
155 cd ../../../verification/lab_sea/matlab
156 matlab
157 lookat_exp2
158
159
160 Instructions for running Experiment 3
161 =====================================
162
163 This is a test of periodic boundary conditions for LSR
164 and ADI solvers. The domain has a flat bottom and
165 is periodic both in the x and the y directions.
166 All forcing files are null or constant (u10m = v10m = 5 m/s).
167
168 To run Experiment 3:
169 cd ../../../verification/lab_sea/input
170 ln -sf DATA.1hour data
171 ln -sf DATA.SEAICE.testadi data.seaice
172 mitgcmuv_1 >&! output.txt
173 mkdir exp3a
174 mv *tave.0000000001.data exp3a
175 ln -sf DATA.SEAICE.testlsr data.seaice
176 mitgcmuv_1 >&! output.txt
177 mkdir exp3b
178 mv *tave.0000000001.data exp3b
179
180 Use matlab script lookat_exp3.m to compare
181 the output of exp2 to that of exp1:
182 cd ../../../verification/lab_sea/matlab
183 matlab
184 lookat_exp3
185
186 If the dynamic ice solvers are correct, they should converge to a
187 constant solution. The tests above show that both the ADI and the LSR
188 solver are unable to handle periodic domains and therefore that they
189 cannot be "correctly" parallelized.
190
191
192 Instructions for running Experiment 4
193 =====================================
194
195 This is a 2-cpu, 10-hour integration used to test
196 tile edges for sea-ice dynamic solvers.
197
198 To run Experiment 4:
199 cd ../../../verification/lab_sea/input
200 ln -sf DATA.10hours data
201 ln -sf DATA.SEAICE.adi data.seaice
202 mpirun -np 2 mitgcmuv_2x1
203 mkdir exp4
204 mv *tave.0000000010.data exp4
205
206 Use the matlab script lookat_exp4.m to compare
207 the 2-cpu output to that of exp1:
208 cd ../../../verification/lab_sea/matlab
209 matlab
210 lookat_exp4
211
212 The inaccuracy at the tile boundary can be decreased by increasing
213 NPSEUDO in data.seaice at the expense of computation time.
214 Also as sea-ice ages (thickens) the difference at the tiles becomes
215 increasingly small. For solver pkg/seaice/adi.F a value of NPSEUDO=10
216 appears adequate for forward integrations but cannot be used for sea-ice
217 adjoint model. Work is underway to fix this problem.
218
219
220 Instructions for running Experiment 5
221 =====================================
222
223 This is a 2-cpu, 2-year, test integration. It illustrates
224 convention used by seaice_get_forcing.F for multi-year forcing.
225
226 To run Experiment 5:
227 cd ../../../verification/lab_sea/input
228 ln -sf DATA.2years data
229 ln -sf DATA.SEAICE.adi data.seaice
230 ln -sf evap.labsea1979 evap.labsea1980
231 ln -sf flo.labsea1979 flo.labsea1980
232 ln -sf fsh.labsea1979 fsh.labsea1980
233 ln -sf prate.labsea1979 prate.labsea1980
234 ln -sf qa.labsea1979 qa.labsea1980
235 ln -sf tair.labsea1979 tair.labsea1980
236 ln -sf u10m.labsea79 u10m.labsea80
237 ln -sf v10m.labsea79 v10m.labsea80
238 mpirun -np 2 mitgcmuv_2x1
239
240 Use the matlab script lookat_exp5.m to compare
241 the 2-cpu output to SMMR-SSM/I data:
242 cd ../../../verification/lab_sea/matlab
243 matlab
244 lookat_exp5
245
246 Disclaimer:
247 The comparison here is just for fun, not really supposed
248 to look anything like the data.
249 Otherwise it would put a lot of people out of business :-)
250
251 Instructions for running Experiment 6
252 =====================================
253
254 This is a 1-cpu test of sea-ice thermodynamics (no dynamics).
255 The solution is compared to that of experiment 1.
256
257 To run Experiment 6:
258 cd ../../../verification/lab_sea/input
259 ln -sf DATA.10hours data
260 ln -sf DATA.SEAICE.nodynamics data.seaice
261 mitgcmuv_1 >&! output.txt
262 mkdir exp6
263 mv *tave.0000000010.data exp6
264
265 Use the matlab script lookat_exp6.m to compare
266 the output of exp6 to that of exp1:
267 cd ../verification/lab_sea/matlab
268 matlab
269 lookat_exp6
270
271 Instructions for running Experiment 7
272 =====================================
273
274 This is a 2-cpu, 10-hour integration used to test
275 tile edges for sea-ice thermodynamics (no dynamics).
276 2-CPU executable from experiment 4 is required.
277
278 To run Experiment 7:
279 cd ../../../verification/lab_sea/input
280 ln -sf DATA.10hours data
281 ln -sf DATA.SEAICE.nodynamics data.seaice
282 mpirun -np 2 mitgcmuv_2x1
283 mkdir exp7
284 mv *tave.0000000010.data exp7
285
286 Use the matlab script lookat_exp7.m to compare
287 the output of exp7 to that of exp6:
288 cd ../verification/lab_sea/matlab
289 matlab
290 lookat_exp7
291
292
293 Instructions for running Experiment 8
294 =====================================
295
296 This is the default experiment which is executed by
297 verification/testscript. It is a 1-cpu, 10-hour integration
298 used to test CPP option SEAICE_EXTERNAL_FORCING. Atmospheric
299 state is read-in using pkg/exf, rather than pkg/seaice routines.
300 This experiment uses pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf.
301
302 To run Experiment 8:
303 cd ../../../verification/lab_sea/input
304 ln -sf DATA.10hours_exf data
305 ln -sf DATA.SEAICE.adi_exf data.seaice
306 mitgcmuv_exf_forcing >&! output.txt
307 mkdir exp8
308 mv *tave.0000000010.data exp8
309
310 Use matlab script lookat_exp8.m to compare
311 the output of exp8 to that of exp1:
312 cd ../../../verification/lab_sea/matlab
313 matlab
314 lookat_exp8
315
316
317 Instructions for running Experiment 9
318 =====================================
319
320 This is a 1-cpu, 10-hour integration used to test CPP option
321 SEAICE_EXTERNAL_FLUXES. Atmospheric state and open-water surface
322 fluxes are computed by pkg/exf, rather than pkg/seaice routines.
323
324 To run Experiment 9:
325 cd ../../../verification/lab_sea/input
326 ln -sf DATA.10hours_exf data
327 ln -sf DATA.SEAICE.adi_exf data.seaice
328 mitgcmuv_exf_fluxes >&! output.txt
329 mkdir exp9
330 mv *tave.0000000010.data exp9
331
332 Use matlab script lookat_exp9.m to compare
333 the output of exp9 to that of exp8:
334 cd ../../../verification/lab_sea/matlab
335 matlab
336 lookat_exp9

  ViewVC Help
Powered by ViewVC 1.1.22