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

Diff of /MITgcm/verification/lab_sea/README

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

revision 1.1 by heimbach, Mon Nov 11 22:03:47 2002 UTC revision 1.1.2.11 by dimitri, Fri May 23 08:07:09 2003 UTC
# Line 0  Line 1 
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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.2.11

  ViewVC Help
Powered by ViewVC 1.1.22