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

Annotation of /MITgcm/verification/lab_sea/README

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


Revision 1.9 - (hide annotations) (download)
Thu Jan 15 03:38:22 2004 UTC (20 years, 3 months ago) by dimitri
Branch: MAIN
Changes since 1.8: +13 -24 lines
o added temporary hack for sea-ice dynamics on the cube:
  metric terms are ignored and it is assumed that
  there is no sea-ice on cube faces 1, 2, 4, and 5.

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

  ViewVC Help
Powered by ViewVC 1.1.22