/[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.3 by dimitri, Thu Dec 5 08:43:03 2002 UTC revision 1.9 by dimitri, Thu Jan 15 03:38:22 2004 UTC
# 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    
# Line 36  Using testscript to test sea-ice code Line 36  Using testscript to test sea-ice code
36  Running the testscript experiment:  Running the testscript experiment:
37    cd verification    cd verification
38    ./testscript -force lab_sea    ./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  Note that fairly large differences in accuracy occur across different
43  platforms.  For example, testscript comparisons between g77 (Linux)  platforms.  For example, testscript comparisons between g77 (Linux)
44  and f77 (SGI) generated output gives:  and f77 (SGI) generated output gives:
45    
46     T           S           U           V                  T           S           U           V
47    C D M    c        m  s        m  s        m  s        m  s  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  .  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  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  .  g d e n  d  n  x  n  .  n  x  n  .  n  x  n  .  n  x  n  .
51    
52    Y Y Y Y  5  5  7  7  7  8 10  9  6  6  6  6  7  5  7  5  7 FAIL  lab_sea  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  Instructions for generating 1-CPU and 2-CPU executables
56  =======================================================  =======================================================
57    
58  Generating 1-CPU executable:  Generating 1-CPU executable:
59    cd ../verification/lab_sea/input    cd verification/lab_sea/input
60      ln -sf ../code/packages.conf .
61    ln -sf ../code/SIZE.h .    ln -sf ../code/SIZE.h .
   ln -sf ../code/CPP_OPTIONS.h .  
62    ln -sf ../code/CPP_EEOPTIONS.h .    ln -sf ../code/CPP_EEOPTIONS.h .
63    ../../../tools/genmake -makefile    rm -f SEAICE_OPTIONS.h
64      ==> on alhena use:    ../../../tools/genmake2
     ../../../tools/genmake -platform=o2k_noopt -makefile  
65    make clean    make clean
66    make depend    make depend
67    make    make
68    mv mitgcmuv mitgcmuv_1    mv mitgcmuv mitgcmuv_1
69      
70  Generating 2-CPU executable:  Generating 1-CPU executable with SEAICE_EXTERNAL_FORCING:
71    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
72    ln -sf ../code/SIZE_2x1.h SIZE.h    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 .    ln -sf ../code/CPP_OPTIONS.h .
76    ln -sf ../code/CPP_EEOPTIONS_MPI.h CPP_EEOPTIONS.h    ln -sf ../code/ECCO_CPPOPTIONS.h .
77    ../../../tools/genmake -mpi -makefile    ln -sf ../code/SEAICE_OPTIONS.h .
78      ==> on alhena for comparison purposes use:    ../../../tools/genmake2
79        ../../../tools/genmake -mpi -platform=o2k_noopt -makefile    make clean
80      ==> on alhena for fast execution use:    make depend
81        ../../../tools/genmake -mpi -platform=o2k -makefile    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    Generating 1-CPU executable with SEAICE_MULTILEVEL:
113      cd ../../../verification/lab_sea/input
114      ln -sf ../code/packages.conf .
115      ln -sf ../code/SIZE.h .
116      ln -sf ../code/CPP_EEOPTIONS.h .
117      ln -sf ../code/SEAICE_OPTIONS.MULTILEVEL.h SEAICE_OPTIONS.h
118      ../../../tools/genmake2
119      make clean
120      make depend
121      make
122      mv mitgcmuv mitgcmuv_multilevel
123    
124    Generating 2-CPU executable:
125      cd ../../../verification/lab_sea/input
126      ln -sf ../code/packages.conf .
127      ln -sf ../code/SIZE.2x1.h SIZE.h
128      ln -sf ../code/CPP_EEOPTIONS.h_mpi CPP_EEOPTIONS.h
129      rm -f SEAICE_OPTIONS.h
130      ../../../tools/genmake2 -mpi
131    make clean    make clean
132    make depend    make depend
133    make    make
# Line 85  Generating 2-CPU executable: Line 137  Generating 2-CPU executable:
137  Instructions for running Experiment 1  Instructions for running Experiment 1
138  =====================================  =====================================
139    
140  This is a 1-cpu, 10-hour integration used to make sure that all the  This is a 1-cpu, 10-hour integration used to make sure that all
141  files are available and that the model compiles and integrates.  It  the files are available and that the sea-ice model compiles and
142  is the default experiment of "verification/testscript lab_sea".  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:  To run Experiment 1:
146    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
147    ln -sf data.10hours data    ln -sf DATA.10hours data
148    ln -sf data.seaice.adi data.seaice    ln -sf DATA.SEAICE.lsr data.seaice
149    mitgcmuv_1 >&! output.txt    mitgcmuv_1 >&! output.txt
150    mkdir exp1    mkdir exp1
151    mv *tave.0000000010.data exp1    mv *tave.0000000010.data exp1
152    
153  Use matlab script lookat_exp1.m to compare the output  Use matlab script lookat_exp1.m to compare the output
154  of exp1 with that from release1_patch5 sea-ice code:  of exp1 with that from checkpoint51f sea-ice code:
155    cd ../../../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
156    matlab    matlab
157    lookat_exp1    lookat_exp1
# Line 107  of exp1 with that from release1_patch5 s Line 160  of exp1 with that from release1_patch5 s
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    
166  To run Experiment 2:  To run Experiment 2:
167    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
168    ln -sf data.10hours data    ln -sf DATA.10hours data
169    ln -sf data.seaice.lsr data.seaice    ln -sf DATA.SEAICE.adi data.seaice
170    mitgcmuv_1 >&! output.txt    mitgcmuv_1 >&! output.txt
171    mkdir exp2    mkdir exp2
172    mv *tave.0000000010.data exp2    mv *tave.0000000010.data exp2
# Line 135  All forcing files are null or constant ( Line 188  All forcing files are null or constant (
188    
189  To run Experiment 3:  To run Experiment 3:
190    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
191    ln -sf data.1hour data    ln -sf DATA.1hour data
192    ln -sf data.seaice.testadi data.seaice    ln -sf DATA.SEAICE.testadi data.seaice
193    mitgcmuv_1 >&! output.txt    mitgcmuv_1 >&! 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    mitgcmuv_1 >&! 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 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
# Line 165  tile edges for sea-ice dynamic solvers. Line 219  tile edges for sea-ice dynamic solvers.
219    
220  To run Experiment 4:  To run Experiment 4:
221    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
222    ln -sf data.10hours data    ln -sf DATA.10hours data
223    ln -sf data.seaice.adi data.seaice    ln -sf DATA.SEAICE.lsr data.seaice
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
# Line 177  the 2-cpu output to that of exp1: Line 231  the 2-cpu output to that of exp1:
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
# Line 193  convention used by seaice_get_forcing.F Line 247  convention used by seaice_get_forcing.F
247    
248  To run Experiment 5:  To run Experiment 5:
249    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
250    ln -sf      data.2years             data    ln -sf      DATA.2years             data
251    ln -sf  data.seaice.adi      data.seaice    ln -sf  DATA.SEAICE.lsr      data.seaice
252    ln -sf  evap.labsea1979  evap.labsea1980      ln -sf  evap.labsea1979  evap.labsea1980  
253    ln -sf   flo.labsea1979   flo.labsea1980      ln -sf   flo.labsea1979   flo.labsea1980  
254    ln -sf   fsh.labsea1979   fsh.labsea1980      ln -sf   fsh.labsea1979   fsh.labsea1980  
# Line 211  the 2-cpu output to SMMR-SSM/I data: Line 265  the 2-cpu output to SMMR-SSM/I data:
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  =====================================  =====================================
# Line 224  The solution is compared to that of expe Line 278  The solution is compared to that of expe
278    
279  To run Experiment 6:  To run Experiment 6:
280    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
281    ln -sf data.10hours data    ln -sf DATA.10hours data
282    ln -sf data.seaice.nodynamics data.seaice    ln -sf DATA.SEAICE.nodynamics data.seaice
283    mitgcmuv_1 >&! output.txt    mitgcmuv_1 >&! 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 exp6 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  Instructions for running Experiment 7
295  =====================================  =====================================
296    
# Line 245  tile edges for sea-ice thermodynamics (n Line 300  tile edges for sea-ice thermodynamics (n
300    
301  To run Experiment 7:  To run Experiment 7:
302    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
303    ln -sf data.10hours data    ln -sf DATA.10hours data
304    ln -sf data.seaice.nodynamics data.seaice    ln -sf DATA.SEAICE.nodynamics data.seaice
305    mpirun -np 2 mitgcmuv_2x1    mpirun -np 2 mitgcmuv_2x1
306    mkdir exp7    mkdir exp7
307    mv *tave.0000000010.data exp7    mv *tave.0000000010.data exp7
# Line 256  the output of exp7 to that of exp6: Line 311  the output of exp7 to that of exp6:
311    cd ../verification/lab_sea/matlab    cd ../verification/lab_sea/matlab
312    matlab    matlab
313    lookat_exp7    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.3  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22