/[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.2 by heimbach, Tue Nov 12 20:54:28 2002 UTC revision 1.10 by dimitri, Tue Jan 20 17:02:41 2004 UTC
# Line 3  Example: Labrador Sea Region with Sea-Ic Line 3  Example: Labrador Sea Region with Sea-Ic
3    
4  This example sets up a small (20x16x23) Labrador Sea experiment  This example sets up a small (20x16x23) Labrador Sea experiment
5  coupled to a dynamic thermodynamic sea-ice model.  coupled to a dynamic thermodynamic sea-ice model.
6  A brief description of the sea-ice model is in "doc/seaice.ps".  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.  The domain of integration spans 280E to 320E and 46N to 78N.
9  Horizontal grid spacing is 2 degrees.  Horizontal grid spacing is 2 degrees.
# Line 20  Surface salinity relaxation is to the mo Line 20  Surface salinity relaxation is to the mo
20    
21  Forcing files are a 1979-1999 monthly climatology computed from the  Forcing files are a 1979-1999 monthly climatology computed from the
22  NCEP reanalysis (see pkg/seaice/SEAICE_FFIELDS.h for units and signs)  NCEP reanalysis (see pkg/seaice/SEAICE_FFIELDS.h for units and signs)
23    gairxFile      = 'u10m.labsea79'    # 10-m zonal wind    uwindFile      = 'u10m.labsea79'    # 10-m zonal wind
24    gairyFile      = 'v10m.labsea79'    # 10-m meridional wind    vwindFile      = 'v10m.labsea79'    # 10-m meridional wind
25    tairFile       = 'tair.labsea1979'  # 2-m air temperature    atempFile      = 'tair.labsea1979'  # 2-m air temperature
26    qaFile         = 'qa.labsea1979'    # 2-m specific humidity    aqhFile        = 'qa.labsea1979'    # 2-m specific humidity
27    floFile        = 'flo.labsea1979'   # longwave radiation    lwdownFile     = 'flo.labsea1979'   # downward longwave radiation
28    fshFile        = 'fsh.labsea1979'   # shortwave radiation    swdownFile     = 'fsh.labsea1979'   # downward shortwave radiation
29    rainFile       = 'prate.labsea1979' # precipitation    precipFile     = 'prate.labsea1979' # precipitation
30    evapFile       = 'evap.labsea1979'  # evaporation    evapFile       = 'evap.labsea1979'  # evaporation
31    
32    
33  Instructions for running Experiment 1  Using testscript to test sea-ice code
34  =====================================  =====================================
35    
36  This is a 1-cpu, 10-hour integration used to make sure that all the  Running the testscript experiment:
37  files are available and that the model compiles and integrates.    cd MITgcm/verification
38      ./testreport -t 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/packages.conf .
61      ln -sf ../code/SIZE.h .
62      ln -sf ../code/CPP_EEOPTIONS.h .
63      rm -f SEAICE_OPTIONS.h
64      ../../../tools/genmake2
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/packages.conf .
73      ln -sf ../code/SIZE.h .
74      ln -sf ../code/CPP_EEOPTIONS.h .
75      ln -sf ../code/CPP_OPTIONS.h .
76      ln -sf ../code/ECCO_CPPOPTIONS.h .
77      ln -sf ../code/SEAICE_OPTIONS.h .
78      ../../../tools/genmake2
79      make clean
80      make depend
81      make
82      mv mitgcmuv mitgcmuv_exf_forcing
83    
84    1-CPU executable with SEAICE_EXTERNAL_FORCING, without READ_EVAP
85      cd ../../../verification/lab_sea/input
86      ln -sf ../code/packages.conf .
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.h .
92      ../../../tools/genmake2
93      make clean
94      make depend
95      make
96      mv mitgcmuv mitgcmuv_compute_evap
97    
98    Generating 1-CPU executable with SEAICE_EXTERNAL_FLUXES:
99      cd ../../../verification/lab_sea/input
100      ln -sf ../code/packages.conf .
101      ln -sf ../code/SIZE.h .
102      ln -sf ../code/CPP_EEOPTIONS.h .
103      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      ../../../tools/genmake2
107      make clean
108      make depend
109      make
110      mv mitgcmuv mitgcmuv_exf_fluxes
111    
112  To configure and compile the code:  Generating 1-CPU executable with SEAICE_MULTILEVEL:
113    cd MITgcmUV    cd ../../../verification/lab_sea/input
114    mkdir bin exe    ln -sf ../code/packages.conf .
115    cd bin    ln -sf ../code/SIZE.h .
116    ln -sf ../verification/lab_sea/code/SIZE.h .    ln -sf ../code/CPP_EEOPTIONS.h .
117    ln -sf ../verification/lab_sea/code/CPP_OPTIONS.h .    ln -sf ../code/SEAICE_OPTIONS.MULTILEVEL.h SEAICE_OPTIONS.h
118    ln -sf ../verification/lab_sea/code/CPP_EEOPTIONS.h .    ../../../tools/genmake2
119    ../tools/genmake -makefile    make clean
120    make depend    make depend
121    make    make
122      mv mitgcmuv mitgcmuv_multilevel
123    
124  To run:  Generating 2-CPU executable:
125    cd ../exe    cd ../../../verification/lab_sea/input
126    cp ../verification/lab_sea/input/* .    ln -sf ../code/packages.conf .
127    ln -sf data.10hours data    ln -sf ../code/SIZE.2x1.h SIZE.h
128    ln -sf data.seaice.adi data.seaice    ln -sf ../code/CPP_EEOPTIONS.h_mpi CPP_EEOPTIONS.h
129    mv mitgcmuv mitgcmuv1    rm -f SEAICE_OPTIONS.h
130    mitgcmuv1 >&! output.txt    ../../../tools/genmake2 -mpi
131      make clean
132      make depend
133      make
134      mv mitgcmuv mitgcmuv_2x1
135    
136    
137    Instructions for running Experiment 1
138    =====================================
139    
140    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    
145    To run Experiment 1:
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 exp1    mkdir exp1
151    mv *tave.0000000010.data exp1    mv *tave.0000000010.data exp1
152    
153  There is comparison output in:  Use matlab script lookat_exp1.m to compare the output
154    diff output.txt ../verification/lab_sea/results/output.txt | more  of exp1 with that from checkpoint51f sea-ice code:
155      cd ../../../verification/lab_sea/matlab
 Use the matlab script lookat_exp1.m to compare the output  
 of exp1 with that from release1_beta1 sea-ice code:  
   cd ../verification/lab_sea/matlab  
156    matlab    matlab
157    lookat_exp1    lookat_exp1
158    
159    
160  Instructions for running Experiment 2  Instructions for running Experiment 2
161  =====================================  =====================================
162    
163  This is a 1-cpu test of the LSR solver.  The solution is  This is a 1-cpu test of the ADI solver.  The solution is
164  compared to that of experiment 1, which used the ADI solver.  compared to that of experiment 1, which used the LSR solver.
165  1-CPU executable from experiment 1 is required.  
166    To run Experiment 2:
167  To run:    cd ../../../verification/lab_sea/input
168    cd ../exe    ln -sf DATA.10hours data
169    cp ../verification/lab_sea/input/* .    ln -sf DATA.SEAICE.adi data.seaice
170    ln -sf data.10hours data    mitgcmuv_1 >&! output.txt
   ln -sf data.seaice.lsr data.seaice  
   mitgcmuv1 >&! output.txt  
171    mkdir exp2    mkdir exp2
172    mv *tave.0000000010.data exp2    mv *tave.0000000010.data exp2
173    
174  Use the matlab script lookat_exp2.m to compare  Use matlab script lookat_exp2.m to compare
175  the output of exp2 to that of exp1:  the output of exp2 to that of exp1:
176    cd ../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
177    matlab    matlab
178    lookat_exp2    lookat_exp2
179    
180    
181  Instructions for running Experiment 3  Instructions for running Experiment 3
182  =====================================  =====================================
183    
184  This is a test of periodic boundary conditions for LSR  This is a test of periodic boundary conditions for LSR
185  and ADI solvers.  The domain has a flat bottom and  and ADI solvers.  The domain has a flat bottom and
186  is periodic both in the x and the y directions.  is periodic both in the x and the y directions.
187  All forcing files are null or constant  All forcing files are null or constant (u10m = v10m = 5 m/s).
 (u10m = v10m = 5 m/s).  
   
 1-CPU executable from experiment 1 is required.  
188    
189  To run:  To run Experiment 3:
190    cd ../exe    cd ../../../verification/lab_sea/input
191    cp ../verification/lab_sea/input/* .    ln -sf DATA.1hour data
192    ln -sf data.1hour data    ln -sf DATA.SEAICE.testadi data.seaice
193    ln -sf data.seaice.testadi data.seaice    mitgcmuv_1 >&! output.txt
   mitgcmuv1 >&! output.txt  
194    mkdir exp3a    mkdir exp3a
195    mv *tave.0000000001.data exp3a    mv *tave.0000000001.data exp3a
196    ln -sf data.seaice.testlsr data.seaice    ln -sf DATA.SEAICE.testlsr data.seaice
197    mitgcmuv1 >&! output.txt    mitgcmuv_1 >&! output.txt
198    mkdir exp3b    mkdir exp3b
199    mv *tave.0000000001.data exp3b    mv *tave.0000000001.data exp3b
200    
201  Use the matlab script lookat_exp3.m to compare  Use matlab script lookat_exp3.m to look at
202  the output of exp2 to that of exp1:  results from exp3a and exp3b:
203    cd ../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
204    matlab    matlab
205    lookat_exp3    lookat_exp3
206    
207  If the dynamic ice solvers are correct, they should converge to a  Both solvers should and do converge to solutions
208  constant solution.  The tests above show that both the ADI and the LSR  that are constant at each latitude.  But note that
209  solver are unable to handle periodic domains and therefore that they  the two solutions are not exactly the same because
210  cannot be "correctly" parallelized.  the two solvers represent slightly different
211    approximations of the viscous/plastic equations.
212    
213    
214  Instructions for running Experiment 4  Instructions for running Experiment 4
215  =====================================  =====================================
# Line 129  Instructions for running Experiment 4 Line 217  Instructions for running Experiment 4
217  This is a 2-cpu, 10-hour integration used to test  This is a 2-cpu, 10-hour integration used to test
218  tile edges for sea-ice dynamic solvers.  tile edges for sea-ice dynamic solvers.
219    
220  To configure and compile the code:  To run Experiment 4:
221    cd ../bin    cd ../../../verification/lab_sea/input
222    rm -rf *.f    ln -sf DATA.10hours data
223    rm -rf *.o    ln -sf DATA.SEAICE.lsr data.seaice
   ln -sf ../verification/lab_sea/code/SIZE_2x1.h SIZE.h  
   ln -sf ../verification/lab_sea/code/CPP_OPTIONS.h .  
   ln -sf ../verification/lab_sea/code/CPP_EEOPTIONS_MPI.h CPP_EEOPTIONS.h  
   ../tools/genmake -mpi -makefile  
      ( on alhena use: ../tools/genmake -mpi -platform=o2k -makefile )  
   make depend  
   make  
   
 To run:  
   cd ../exe  
   cp ../verification/lab_sea/input/* .  
   ln -sf data.10hours data  
   ln -sf data.seaice.adi data.seaice  
   mv mitgcmuv mitgcmuv_2x1  
224    mpirun -np 2 mitgcmuv_2x1    mpirun -np 2 mitgcmuv_2x1
225    mkdir exp4    mkdir exp4
226    mv *tave.0000000010.data exp4    mv *tave.0000000010.data exp4
227    
228  Use the matlab script lookat_exp4.m to compare  Use the matlab script lookat_exp4.m to compare
229  the 2-cpu output to that of exp1:  the 2-cpu output to that of exp1:
230    cd ../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
231    matlab    matlab
232    lookat_exp4    lookat_exp4
233    
234  The inaccuracy at the tile boundary can be decreased by increasing  The accuracy of the dynamic solvers is increased by
235  NPSEUDO in data.seaice at the expense of computation time.  reducing parameter LSR_ERROR for the LSR solver and
236  Also as sea-ice ages (thickens) the difference at the tiles becomes  by increasing parameter NPSEUDO for the ADI solver.
237  increasingly small.  For solver pkg/seaice/adi.F a value of NPSEUDO=10  The computational cost/accuracy trade-off is quite
238  appears adequate for forward integrations but cannot be used for sea-ice  high for the ADI solver but relatively small for
239  adjoint model.  Work is underway to fix this problem.  the LSR solver, which is the default solver.
240    
241    
242  Instructions for running Experiment 5  Instructions for running Experiment 5
243  =====================================  =====================================
244    
245  This is a 2-cpu, 2-year, test integration.  It illustrates  This is a 2-cpu, 2-year, test integration.  It illustrates
246  convention used for forcing data files by seaice_get_forcing.F.  convention used by seaice_get_forcing.F for multi-year forcing.
247    
248  To run:  To run Experiment 5:
249    cd ../exe    cd ../../../verification/lab_sea/input
250    cp ../verification/lab_sea/input/* .    ln -sf      DATA.2years             data
251    cp eedata_mpi eedata    ln -sf  DATA.SEAICE.lsr      data.seaice
252    ln -sf data.2years data    ln -sf  evap.labsea1979  evap.labsea1980  
253    ln -sf data.seaice.adi data.seaice    ln -sf   flo.labsea1979   flo.labsea1980  
254    ln -sf evap.labsea1979  evap.labsea1980      ln -sf   fsh.labsea1979   fsh.labsea1980  
   ln -sf flo.labsea1979   flo.labsea1980    
   ln -sf fsh.labsea1979   fsh.labsea1980    
255    ln -sf prate.labsea1979 prate.labsea1980    ln -sf prate.labsea1979 prate.labsea1980
256    ln -sf qa.labsea1979    qa.labsea1980        ln -sf    qa.labsea1979    qa.labsea1980    
257    ln -sf tair.labsea1979  tair.labsea1980      ln -sf  tair.labsea1979  tair.labsea1980  
258    ln -sf u10m.labsea79    u10m.labsea80        ln -sf    u10m.labsea79    u10m.labsea80    
259    ln -sf v10m.labsea79    v10m.labsea80        ln -sf    v10m.labsea79    v10m.labsea80    
260    mpirun -np 2 mitgcmuv_2x1    mpirun -np 2 mitgcmuv_2x1
261    
262  Use the matlab script lookat_exp3.m to compare  Use the matlab script lookat_exp5.m to compare
263  the 2-cpu output to SMMR-SSM/I data:  the 2-cpu output to SMMR-SSM/I data:
264    cd ../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
265    matlab    matlab
266    lookat_exp5    lookat_exp5
267    
268  Disclaimer:  The comparison here is just for fun.
269  The comparison here is just for fun, not really supposed  The configuration is too coarse and artificial
270  to look anything like the data.  to reproduce realistic sea-ice conditions.
271  Otherwise it would put a lot of people out of business :-)  
272    
273  Instructions for running Experiment 6  Instructions for running Experiment 6
274  =====================================  =====================================
275    
276  This is a 1-cpu test of sea-ice thermodynamics (no dynamics).  This is a 1-cpu test of sea-ice thermodynamics (no dynamics).
277  The solution is compared to that of experiment 1.  The solution is compared to that of experiment 1.
 1-CPU executable from experiment 1 is required.  
278    
279  To run:  To run Experiment 6:
280    cd ../exe    cd ../../../verification/lab_sea/input
281    cp ../verification/lab_sea/input/* .    ln -sf DATA.10hours data
282    ln -sf data.10hours data    ln -sf DATA.SEAICE.nodynamics data.seaice
283    ln -sf data.seaice.nodynamics data.seaice    mitgcmuv_1 >&! output.txt
   mitgcmuv1 >&! output.txt  
284    mkdir exp6    mkdir exp6
285    mv *tave.0000000010.data exp6    mv *tave.0000000010.data exp6
286    
287  Use the matlab script lookat_exp6.m to compare  Use the matlab script lookat_exp6.m to compare
288  the output of exp2 to that of exp1:  the output of exp6 to that of exp1:
289    cd ../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
290    matlab    matlab
291    lookat_exp6    lookat_exp6
292    
293    
294    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      ln -sf DATA.10hours data
304      ln -sf DATA.SEAICE.nodynamics data.seaice
305      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    
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      ln -sf DATA.SEAICE.exf data.seaice
329      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      ln -sf DATA.SEAICE.exf data.seaice
351      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    
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      ln -sf DATA.SEAICE.exf data.seaice
372      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    
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

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.22