/[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.1.2.10 - (hide annotations) (download)
Thu May 22 20:49:14 2003 UTC (20 years, 11 months ago) by dimitri
Branch: release1
CVS Tags: release1_p16
Changes since 1.1.2.9: +26 -23 lines
release1_p16
o fixed gather/scatter inital MPI dialogue in ini_procs.F
o pkg/seaice/lsr.F has been moved to SouthWest B-grid location
  and has been made the default dynamic solver because of its
  fast convergence properties relative to adi.F solver.

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

  ViewVC Help
Powered by ViewVC 1.1.22