/[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.7 by dimitri, Fri May 23 20:19:16 2003 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/SIZE.h .    ln -sf ../code/SIZE.h .
   ln -sf ../code/CPP_OPTIONS.h .  
61    ln -sf ../code/CPP_EEOPTIONS.h .    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    ../../../tools/genmake -makefile
65      ==> on alhena use:      ==> on alhena use:
66      ../../../tools/genmake -platform=o2k_noopt -makefile      ../../../tools/genmake -platform=o2k_noopt -makefile
# Line 65  Generating 1-CPU executable: Line 68  Generating 1-CPU executable:
68    make depend    make depend
69    make    make
70    mv mitgcmuv mitgcmuv_1    mv mitgcmuv mitgcmuv_1
71      
72  Generating 2-CPU executable:  Generating 1-CPU executable with SEAICE_EXTERNAL_FORCING:
73    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
74    ln -sf ../code/SIZE_2x1.h SIZE.h    ln -sf ../code/SIZE.h .
75      ln -sf ../code/CPP_EEOPTIONS.h .
76    ln -sf ../code/CPP_OPTIONS.h .    ln -sf ../code/CPP_OPTIONS.h .
77    ln -sf ../code/CPP_EEOPTIONS_MPI.h CPP_EEOPTIONS.h    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    ../../../tools/genmake -mpi -makefile
138      ==> on alhena for comparison purposes use:      ==> on alhena for comparison purposes use:
139        ../../../tools/genmake -mpi -platform=o2k_noopt -makefile        ../../../tools/genmake -mpi -platform=o2k_noopt -makefile
# Line 85  Generating 2-CPU executable: Line 148  Generating 2-CPU executable:
148  Instructions for running Experiment 1  Instructions for running Experiment 1
149  =====================================  =====================================
150    
151  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
152  files are available and that the model compiles and integrates.  It  the files are available and that the sea-ice model compiles and
153  is the default experiment of "verification/testscript lab_sea".  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:  To run Experiment 1:
157    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
158    ln -sf data.10hours data    ln -sf DATA.10hours data
159    ln -sf data.seaice.adi data.seaice    ln -sf DATA.SEAICE.lsr data.seaice
160    mitgcmuv_1 >&! output.txt    mitgcmuv_1 >&! output.txt
161    mkdir exp1    mkdir exp1
162    mv *tave.0000000010.data exp1    mv *tave.0000000010.data exp1
163    
164  Use matlab script lookat_exp1.m to compare the output  Use matlab script lookat_exp1.m to compare the output
165  of exp1 with that from release1_patch5 sea-ice code:  of exp1 with that from release1_p16 sea-ice code:
166    cd ../../../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
167    matlab    matlab
168    lookat_exp1    lookat_exp1
# Line 107  of exp1 with that from release1_patch5 s Line 171  of exp1 with that from release1_patch5 s
171  Instructions for running Experiment 2  Instructions for running Experiment 2
172  =====================================  =====================================
173    
174  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
175  compared to that of experiment 1, which used the ADI solver.  compared to that of experiment 1, which used the LSR solver.
176    
177  To run Experiment 2:  To run Experiment 2:
178    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
179    ln -sf data.10hours data    ln -sf DATA.10hours data
180    ln -sf data.seaice.lsr data.seaice    ln -sf DATA.SEAICE.adi data.seaice
181    mitgcmuv_1 >&! output.txt    mitgcmuv_1 >&! output.txt
182    mkdir exp2    mkdir exp2
183    mv *tave.0000000010.data exp2    mv *tave.0000000010.data exp2
# Line 135  All forcing files are null or constant ( Line 199  All forcing files are null or constant (
199    
200  To run Experiment 3:  To run Experiment 3:
201    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
202    ln -sf data.1hour data    ln -sf DATA.1hour data
203    ln -sf data.seaice.testadi data.seaice    ln -sf DATA.SEAICE.testadi data.seaice
204    mitgcmuv_1 >&! output.txt    mitgcmuv_1 >&! output.txt
205    mkdir exp3a    mkdir exp3a
206    mv *tave.0000000001.data exp3a    mv *tave.0000000001.data exp3a
207    ln -sf data.seaice.testlsr data.seaice    ln -sf DATA.SEAICE.testlsr data.seaice
208    mitgcmuv_1 >&! output.txt    mitgcmuv_1 >&! output.txt
209    mkdir exp3b    mkdir exp3b
210    mv *tave.0000000001.data exp3b    mv *tave.0000000001.data exp3b
211    
212  Use matlab script lookat_exp3.m to compare  Use matlab script lookat_exp3.m to look at
213  the output of exp2 to that of exp1:  results from exp3a and exp3b:
214    cd ../../../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
215    matlab    matlab
216    lookat_exp3    lookat_exp3
217    
218  If the dynamic ice solvers are correct, they should converge to a  Both solvers should and do converge to solutions
219  constant solution.  The tests above show that both the ADI and the LSR  that are constant at each latitude.  But note that
220  solver are unable to handle periodic domains and therefore that they  the two solutions are not exactly the same because
221  cannot be "correctly" parallelized.  the two solvers represent slightly different
222    approximations of the viscous/plastic equations.
223    
224    
225  Instructions for running Experiment 4  Instructions for running Experiment 4
# Line 165  tile edges for sea-ice dynamic solvers. Line 230  tile edges for sea-ice dynamic solvers.
230    
231  To run Experiment 4:  To run Experiment 4:
232    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
233    ln -sf data.10hours data    ln -sf DATA.10hours data
234    ln -sf data.seaice.adi data.seaice    ln -sf DATA.SEAICE.lsr data.seaice
235    mpirun -np 2 mitgcmuv_2x1    mpirun -np 2 mitgcmuv_2x1
236    mkdir exp4    mkdir exp4
237    mv *tave.0000000010.data exp4    mv *tave.0000000010.data exp4
# Line 177  the 2-cpu output to that of exp1: Line 242  the 2-cpu output to that of exp1:
242    matlab    matlab
243    lookat_exp4    lookat_exp4
244    
245  The inaccuracy at the tile boundary can be decreased by increasing  The accuracy of the dynamic solvers is increased by
246  NPSEUDO in data.seaice at the expense of computation time.  reducing parameter LSR_ERROR for the LSR solver and
247  Also as sea-ice ages (thickens) the difference at the tiles becomes  by increasing parameter NPSEUDO for the ADI solver.
248  increasingly small.  For solver pkg/seaice/adi.F a value of NPSEUDO=10  The computational cost/accuracy trade-off is quite
249  appears adequate for forward integrations but cannot be used for sea-ice  high for the ADI solver but relatively small for
250  adjoint model.  Work is underway to fix this problem.  the LSR solver, which is the default solver.
251    
252    
253  Instructions for running Experiment 5  Instructions for running Experiment 5
# Line 193  convention used by seaice_get_forcing.F Line 258  convention used by seaice_get_forcing.F
258    
259  To run Experiment 5:  To run Experiment 5:
260    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
261    ln -sf      data.2years             data    ln -sf      DATA.2years             data
262    ln -sf  data.seaice.adi      data.seaice    ln -sf  DATA.SEAICE.lsr      data.seaice
263    ln -sf  evap.labsea1979  evap.labsea1980      ln -sf  evap.labsea1979  evap.labsea1980  
264    ln -sf   flo.labsea1979   flo.labsea1980      ln -sf   flo.labsea1979   flo.labsea1980  
265    ln -sf   fsh.labsea1979   fsh.labsea1980      ln -sf   fsh.labsea1979   fsh.labsea1980  
# Line 211  the 2-cpu output to SMMR-SSM/I data: Line 276  the 2-cpu output to SMMR-SSM/I data:
276    matlab    matlab
277    lookat_exp5    lookat_exp5
278    
279  Disclaimer:  The comparison here is just for fun.
280  The comparison here is just for fun, not really supposed  The configuration is too coarse and artificial
281  to look anything like the data.  to reproduce realistic sea-ice conditions.
282  Otherwise it would put a lot of people out of business :-)  
283    
284  Instructions for running Experiment 6  Instructions for running Experiment 6
285  =====================================  =====================================
# Line 224  The solution is compared to that of expe Line 289  The solution is compared to that of expe
289    
290  To run Experiment 6:  To run Experiment 6:
291    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
292    ln -sf data.10hours data    ln -sf DATA.10hours data
293    ln -sf data.seaice.nodynamics data.seaice    ln -sf DATA.SEAICE.nodynamics data.seaice
294    mitgcmuv_1 >&! output.txt    mitgcmuv_1 >&! output.txt
295    mkdir exp6    mkdir exp6
296    mv *tave.0000000010.data exp6    mv *tave.0000000010.data exp6
# Line 236  the output of exp6 to that of exp1: Line 301  the output of exp6 to that of exp1:
301    matlab    matlab
302    lookat_exp6    lookat_exp6
303    
304    
305  Instructions for running Experiment 7  Instructions for running Experiment 7
306  =====================================  =====================================
307    
# Line 245  tile edges for sea-ice thermodynamics (n Line 311  tile edges for sea-ice thermodynamics (n
311    
312  To run Experiment 7:  To run Experiment 7:
313    cd ../../../verification/lab_sea/input    cd ../../../verification/lab_sea/input
314    ln -sf data.10hours data    ln -sf DATA.10hours data
315    ln -sf data.seaice.nodynamics data.seaice    ln -sf DATA.SEAICE.nodynamics data.seaice
316    mpirun -np 2 mitgcmuv_2x1    mpirun -np 2 mitgcmuv_2x1
317    mkdir exp7    mkdir exp7
318    mv *tave.0000000010.data exp7    mv *tave.0000000010.data exp7
# Line 256  the output of exp7 to that of exp6: Line 322  the output of exp7 to that of exp6:
322    cd ../verification/lab_sea/matlab    cd ../verification/lab_sea/matlab
323    matlab    matlab
324    lookat_exp7    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.3  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.22