/[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.7 - (show annotations) (download)
Fri May 23 20:19:16 2003 UTC (20 years, 11 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint51, checkpoint51d_post, checkpoint51b_pre, checkpoint51b_post, checkpoint51c_post, checkpoint50g_post, checkpoint50h_post, checkpoint50i_post, checkpoint51e_post, checkpoint51a_post
Changes since 1.6: +62 -24 lines
checkpoint50g_post
o merged with release1_p17 (pkg/seaice and verification/lab_sea)
  - added SEAICE_MULTILEVEL for 8-category sea-ice thermodynamics
  - LSR sea-ice dynamic solver moved to SouthWest B-grid location and
    made the default because of faster convergence than ADI

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 uwindFile = 'u10m.labsea79' # 10-m zonal wind
24 vwindFile = 'v10m.labsea79' # 10-m meridional wind
25 atempFile = 'tair.labsea1979' # 2-m air temperature
26 aqhFile = 'qa.labsea1979' # 2-m specific humidity
27 lwdownFile = 'flo.labsea1979' # downward longwave radiation
28 swdownFile = 'fsh.labsea1979' # downward shortwave radiation
29 precipFile = '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 The default experiment is Experiment 8, below.
40 It uses pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf.
41
42 Note that fairly large differences in accuracy occur across different
43 platforms. For example, testscript comparisons between g77 (Linux)
44 and f77 (SGI) generated output gives:
45
46 T S U V
47 C D M c m s m s m s m s
48 n p a R g m m e . m m e . m m e . m m e .
49 f n k u 2 i a a d i a a d i a a d i a a d
50 g d e n d n x n . n x n . n x n . n x n .
51
52 Y Y Y Y 8 10 9 11 10 9 11 13 10 9 8 8 9 8 9 8 9 FAIL lab_sea
53
54
55 Instructions for generating 1-CPU and 2-CPU executables
56 =======================================================
57
58 Generating 1-CPU executable:
59 cd verification/lab_sea/input
60 ln -sf ../code/SIZE.h .
61 ln -sf ../code/CPP_EEOPTIONS.h .
62 ln -sf ../code/CPP_OPTIONS.NOEXF.h CPP_OPTIONS.h
63 rm -f SEAICE_OPTIONS.h
64 ../../../tools/genmake -makefile
65 ==> on alhena use:
66 ../../../tools/genmake -platform=o2k_noopt -makefile
67 make clean
68 make depend
69 make
70 mv mitgcmuv mitgcmuv_1
71
72 Generating 1-CPU executable with SEAICE_EXTERNAL_FORCING:
73 cd ../../../verification/lab_sea/input
74 ln -sf ../code/SIZE.h .
75 ln -sf ../code/CPP_EEOPTIONS.h .
76 ln -sf ../code/CPP_OPTIONS.h .
77 ln -sf ../code/ECCO_CPPOPTIONS.h .
78 ln -sf ../code/SEAICE_OPTIONS.h .
79 ../../../tools/genmake -makefile
80 ==> on alhena use:
81 ../../../tools/genmake -platform=o2k_noopt -makefile
82 make clean
83 make depend
84 make
85 mv mitgcmuv mitgcmuv_exf_forcing
86
87 1-CPU executable with SEAICE_EXTERNAL_FORCING, without READ_EVAP
88 cd ../../../verification/lab_sea/input
89 ln -sf ../code/SIZE.h .
90 ln -sf ../code/CPP_EEOPTIONS.h .
91 ln -sf ../code/CPP_OPTIONS.h .
92 ln -sf ../code/ECCO_CPPOPTIONS.BULK.h ECCO_CPPOPTIONS.h
93 ln -sf ../code/SEAICE_OPTIONS.h .
94 ../../../tools/genmake -makefile
95 ==> on alhena use:
96 ../../../tools/genmake -platform=o2k_noopt -makefile
97 make clean
98 make depend
99 make
100 mv mitgcmuv mitgcmuv_compute_evap
101
102 Generating 1-CPU executable with SEAICE_EXTERNAL_FLUXES:
103 cd ../../../verification/lab_sea/input
104 ln -sf ../code/SIZE.h .
105 ln -sf ../code/CPP_EEOPTIONS.h .
106 ln -sf ../code/CPP_OPTIONS.h .
107 ln -sf ../code/ECCO_CPPOPTIONS.BULK.h ECCO_CPPOPTIONS.h
108 ln -sf ../code/SEAICE_OPTIONS.EXF_FLUXES.h SEAICE_OPTIONS.h
109 ../../../tools/genmake -makefile
110 ==> on alhena use:
111 ../../../tools/genmake -platform=o2k_noopt -makefile
112 make clean
113 make depend
114 make
115 mv mitgcmuv mitgcmuv_exf_fluxes
116
117 Generating 1-CPU executable with SEAICE_MULTILEVEL:
118 cd ../../../verification/lab_sea/input
119 ln -sf ../code/SIZE.h .
120 ln -sf ../code/CPP_EEOPTIONS.h .
121 ln -sf ../code/CPP_OPTIONS.NOEXF.h CPP_OPTIONS.h
122 ln -sf ../code/SEAICE_OPTIONS.MULTILEVEL.h SEAICE_OPTIONS.h
123 ../../../tools/genmake -makefile
124 ==> on alhena use:
125 ../../../tools/genmake -platform=o2k_noopt -makefile
126 make clean
127 make depend
128 make
129 mv mitgcmuv mitgcmuv_multilevel
130
131 Generating 2-CPU executable:
132 cd ../../../verification/lab_sea/input
133 ln -sf ../code/SIZE.2x1.h SIZE.h
134 ln -sf ../code/CPP_EEOPTIONS.MPI.h CPP_EEOPTIONS.h
135 ln -sf ../code/CPP_OPTIONS.NOEXF.h CPP_OPTIONS.h
136 rm -f SEAICE_OPTIONS.h
137 ../../../tools/genmake -mpi -makefile
138 ==> on alhena for comparison purposes use:
139 ../../../tools/genmake -mpi -platform=o2k_noopt -makefile
140 ==> on alhena for fast execution use:
141 ../../../tools/genmake -mpi -platform=o2k -makefile
142 make clean
143 make depend
144 make
145 mv mitgcmuv mitgcmuv_2x1
146
147
148 Instructions for running Experiment 1
149 =====================================
150
151 This is a 1-cpu, 10-hour integration used to make sure that all
152 the files are available and that the sea-ice model compiles and
153 runs. The reading of atmospheric forcing files and the computation
154 of open-water bulk fluxes are carried out within pkg/seaice.
155
156 To run Experiment 1:
157 cd ../../../verification/lab_sea/input
158 ln -sf DATA.10hours data
159 ln -sf DATA.SEAICE.lsr data.seaice
160 mitgcmuv_1 >&! output.txt
161 mkdir exp1
162 mv *tave.0000000010.data exp1
163
164 Use matlab script lookat_exp1.m to compare the output
165 of exp1 with that from release1_p16 sea-ice code:
166 cd ../../../verification/lab_sea/matlab
167 matlab
168 lookat_exp1
169
170
171 Instructions for running Experiment 2
172 =====================================
173
174 This is a 1-cpu test of the ADI solver. The solution is
175 compared to that of experiment 1, which used the LSR solver.
176
177 To run Experiment 2:
178 cd ../../../verification/lab_sea/input
179 ln -sf DATA.10hours data
180 ln -sf DATA.SEAICE.adi data.seaice
181 mitgcmuv_1 >&! output.txt
182 mkdir exp2
183 mv *tave.0000000010.data exp2
184
185 Use matlab script lookat_exp2.m to compare
186 the output of exp2 to that of exp1:
187 cd ../../../verification/lab_sea/matlab
188 matlab
189 lookat_exp2
190
191
192 Instructions for running Experiment 3
193 =====================================
194
195 This is a test of periodic boundary conditions for LSR
196 and ADI solvers. The domain has a flat bottom and
197 is periodic both in the x and the y directions.
198 All forcing files are null or constant (u10m = v10m = 5 m/s).
199
200 To run Experiment 3:
201 cd ../../../verification/lab_sea/input
202 ln -sf DATA.1hour data
203 ln -sf DATA.SEAICE.testadi data.seaice
204 mitgcmuv_1 >&! output.txt
205 mkdir exp3a
206 mv *tave.0000000001.data exp3a
207 ln -sf DATA.SEAICE.testlsr data.seaice
208 mitgcmuv_1 >&! output.txt
209 mkdir exp3b
210 mv *tave.0000000001.data exp3b
211
212 Use matlab script lookat_exp3.m to look at
213 results from exp3a and exp3b:
214 cd ../../../verification/lab_sea/matlab
215 matlab
216 lookat_exp3
217
218 Both solvers should and do converge to solutions
219 that are constant at each latitude. But note that
220 the two solutions are not exactly the same because
221 the two solvers represent slightly different
222 approximations of the viscous/plastic equations.
223
224
225 Instructions for running Experiment 4
226 =====================================
227
228 This is a 2-cpu, 10-hour integration used to test
229 tile edges for sea-ice dynamic solvers.
230
231 To run Experiment 4:
232 cd ../../../verification/lab_sea/input
233 ln -sf DATA.10hours data
234 ln -sf DATA.SEAICE.lsr data.seaice
235 mpirun -np 2 mitgcmuv_2x1
236 mkdir exp4
237 mv *tave.0000000010.data exp4
238
239 Use the matlab script lookat_exp4.m to compare
240 the 2-cpu output to that of exp1:
241 cd ../../../verification/lab_sea/matlab
242 matlab
243 lookat_exp4
244
245 The accuracy of the dynamic solvers is increased by
246 reducing parameter LSR_ERROR for the LSR solver and
247 by increasing parameter NPSEUDO for the ADI solver.
248 The computational cost/accuracy trade-off is quite
249 high for the ADI solver but relatively small for
250 the LSR solver, which is the default solver.
251
252
253 Instructions for running Experiment 5
254 =====================================
255
256 This is a 2-cpu, 2-year, test integration. It illustrates
257 convention used by seaice_get_forcing.F for multi-year forcing.
258
259 To run Experiment 5:
260 cd ../../../verification/lab_sea/input
261 ln -sf DATA.2years data
262 ln -sf DATA.SEAICE.lsr data.seaice
263 ln -sf evap.labsea1979 evap.labsea1980
264 ln -sf flo.labsea1979 flo.labsea1980
265 ln -sf fsh.labsea1979 fsh.labsea1980
266 ln -sf prate.labsea1979 prate.labsea1980
267 ln -sf qa.labsea1979 qa.labsea1980
268 ln -sf tair.labsea1979 tair.labsea1980
269 ln -sf u10m.labsea79 u10m.labsea80
270 ln -sf v10m.labsea79 v10m.labsea80
271 mpirun -np 2 mitgcmuv_2x1
272
273 Use the matlab script lookat_exp5.m to compare
274 the 2-cpu output to SMMR-SSM/I data:
275 cd ../../../verification/lab_sea/matlab
276 matlab
277 lookat_exp5
278
279 The comparison here is just for fun.
280 The configuration is too coarse and artificial
281 to reproduce realistic sea-ice conditions.
282
283
284 Instructions for running Experiment 6
285 =====================================
286
287 This is a 1-cpu test of sea-ice thermodynamics (no dynamics).
288 The solution is compared to that of experiment 1.
289
290 To run Experiment 6:
291 cd ../../../verification/lab_sea/input
292 ln -sf DATA.10hours data
293 ln -sf DATA.SEAICE.nodynamics data.seaice
294 mitgcmuv_1 >&! output.txt
295 mkdir exp6
296 mv *tave.0000000010.data exp6
297
298 Use the matlab script lookat_exp6.m to compare
299 the output of exp6 to that of exp1:
300 cd ../verification/lab_sea/matlab
301 matlab
302 lookat_exp6
303
304
305 Instructions for running Experiment 7
306 =====================================
307
308 This is a 2-cpu, 10-hour integration used to test
309 tile edges for sea-ice thermodynamics (no dynamics).
310 2-CPU executable from experiment 4 is required.
311
312 To run Experiment 7:
313 cd ../../../verification/lab_sea/input
314 ln -sf DATA.10hours data
315 ln -sf DATA.SEAICE.nodynamics data.seaice
316 mpirun -np 2 mitgcmuv_2x1
317 mkdir exp7
318 mv *tave.0000000010.data exp7
319
320 Use the matlab script lookat_exp7.m to compare
321 the output of exp7 to that of exp6:
322 cd ../verification/lab_sea/matlab
323 matlab
324 lookat_exp7
325
326
327 Instructions for running Experiment 8
328 =====================================
329
330 This is the default experiment which is executed by
331 verification/testscript. It is a 1-cpu, 10-hour integration
332 used to test CPP option SEAICE_EXTERNAL_FORCING. Atmospheric
333 state is read-in using pkg/exf, rather than pkg/seaice routines.
334 This experiment uses pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf.
335
336 To run Experiment 8:
337 cd ../../../verification/lab_sea/input
338 ln -sf DATA.10hours_exf data
339 ln -sf DATA.SEAICE.exf data.seaice
340 mitgcmuv_exf_forcing >&! output.txt
341 mkdir exp8
342 mv *tave.0000000010.data exp8
343
344 Use matlab script lookat_exp8.m to compare
345 the output of exp8 to that of exp1:
346 cd ../../../verification/lab_sea/matlab
347 matlab
348 lookat_exp8
349
350
351 Instructions for running Experiment 9
352 =====================================
353
354 This is a 1-cpu, 10-hour integration used to test CPP option
355 SEAICE_EXTERNAL_FLUXES. Both the atmospheric state and the
356 open-water surface fluxes are provided by pkg/exf.
357
358 To run Experiment 9:
359 cd ../../../verification/lab_sea/input
360 ln -sf DATA.10hours_exf data
361 ln -sf DATA.SEAICE.exf data.seaice
362 mitgcmuv_exf_fluxes >&! output.txt
363 mkdir exp9
364 mv *tave.0000000010.data exp9
365
366 Use matlab script lookat_exp9.m to compare
367 the output of exp9 to that of exp8:
368 cd ../../../verification/lab_sea/matlab
369 matlab
370 lookat_exp9
371
372
373 Instructions for running Experiment 10
374 ======================================
375
376 This is a 1-cpu, 10-hour integration similar to exp8, but
377 with bulk formula computation of evaporation fields.
378
379 To run Experiment 10:
380 cd ../../../verification/lab_sea/input
381 ln -sf DATA.10hours_exf data
382 ln -sf DATA.SEAICE.exf data.seaice
383 mitgcmuv_compute_evap >&! output.txt
384 mkdir exp10
385 mv *tave.0000000010.data exp10
386
387 Use matlab script lookat_exp10.m to compare
388 the output of exp10 to that of exp8:
389 cd ../../../verification/lab_sea/matlab
390 matlab
391 lookat_exp10
392
393
394 Instructions for running Experiment 11
395 ======================================
396
397 This is a 1-cpu, 10-hour integration similar to exp1, but
398 with multi-level sea-ice thermodynamics.
399
400 To run Experiment 10:
401 cd ../../../verification/lab_sea/input
402 ln -sf DATA.10hours data
403 ln -sf DATA.SEAICE.lsr data.seaice
404 mitgcmuv_multilevel >&! output.txt
405 mkdir exp11
406 mv *tave.0000000010.data exp11
407
408 Use matlab script lookat_exp11.m to compare
409 the output of exp11 to that of exp1:
410 cd ../../../verification/lab_sea/matlab
411 matlab
412 lookat_exp11

  ViewVC Help
Powered by ViewVC 1.1.22