/[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.6 by dimitri, Wed Apr 30 07:04:08 2003 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 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  To configure and compile the code:  Generating 1-CPU executable with SEAICE_EXTERNAL_FLUXES:
103    cd MITgcmUV    cd ../../../verification/lab_sea/input
104    mkdir bin exe    ln -sf ../code/SIZE.h .
105    cd bin    ln -sf ../code/CPP_EEOPTIONS.h .
106    ln -sf ../verification/lab_sea/code/SIZE.h .    ln -sf ../code/CPP_OPTIONS.h .
107    ln -sf ../verification/lab_sea/code/CPP_OPTIONS.h .    ln -sf ../code/ECCO_CPPOPTIONS.BULK.h ECCO_CPPOPTIONS.h
108    ln -sf ../verification/lab_sea/code/CPP_EEOPTIONS.h .    ln -sf ../code/SEAICE_OPTIONS.EXF_FLUXES.h SEAICE_OPTIONS.h
109    ../tools/genmake -makefile    ../../../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 2-CPU executable:
118      cd ../../../verification/lab_sea/input
119      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      ../../../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    make depend    make depend
130    make    make
131      mv mitgcmuv mitgcmuv_2x1
132    
133    
134    Instructions for running Experiment 1
135    =====================================
136    
137  To run:  This is a 1-cpu, 10-hour integration used to make sure that all
138    cd ../exe  the files are available and that the sea-ice model compiles and
139    cp ../verification/lab_sea/input/* .  runs.  The reading of atmospheric forcing files and the computation
140    ln -sf data.10hours data  of open-water bulk fluxes are carried out within pkg/seaice.
141    ln -sf data.seaice.adi data.seaice  
142    mv mitgcmuv mitgcmuv1  To run Experiment 1:
143    mitgcmuv1 >&! output.txt    cd ../../../verification/lab_sea/input
144      ln -sf DATA.10hours data
145      ln -sf DATA.SEAICE.adi data.seaice
146      mitgcmuv_1 >&! output.txt
147    mkdir exp1    mkdir exp1
148    mv *tave.0000000010.data exp1    mv *tave.0000000010.data exp1
149    
150  There is comparison output in:  Use matlab script lookat_exp1.m to compare the output
151    diff output.txt ../verification/lab_sea/results/output.txt | more  of exp1 with that from release1_p10 sea-ice code:
152      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  
153    matlab    matlab
154    lookat_exp1    lookat_exp1
155    
156    
157  Instructions for running Experiment 2  Instructions for running Experiment 2
158  =====================================  =====================================
159    
160  This is a 1-cpu test of the LSR solver.  The solution is  This is a 1-cpu test of the LSR solver.  The solution is
161  compared to that of experiment 1, which used the ADI solver.  compared to that of experiment 1, which used the ADI solver.
 1-CPU executable from experiment 1 is required.  
162    
163  To run:  To run Experiment 2:
164    cd ../exe    cd ../../../verification/lab_sea/input
165    cp ../verification/lab_sea/input/* .    ln -sf DATA.10hours data
166    ln -sf data.10hours data    ln -sf DATA.SEAICE.lsr data.seaice
167    ln -sf data.seaice.lsr data.seaice    mitgcmuv_1 >&! output.txt
   mitgcmuv1 >&! output.txt  
168    mkdir exp2    mkdir exp2
169    mv *tave.0000000010.data exp2    mv *tave.0000000010.data exp2
170    
171  Use the matlab script lookat_exp2.m to compare  Use matlab script lookat_exp2.m to compare
172  the output of exp2 to that of exp1:  the output of exp2 to that of exp1:
173    cd ../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
174    matlab    matlab
175    lookat_exp2    lookat_exp2
176    
177    
178  Instructions for running Experiment 3  Instructions for running Experiment 3
179  =====================================  =====================================
180    
181  This is a test of periodic boundary conditions for LSR  This is a test of periodic boundary conditions for LSR
182  and ADI solvers.  The domain has a flat bottom and  and ADI solvers.  The domain has a flat bottom and
183  is periodic both in the x and the y directions.  is periodic both in the x and the y directions.
184  All forcing files are null or constant  All forcing files are null or constant (u10m = v10m = 5 m/s).
 (u10m = v10m = 5 m/s).  
185    
186  1-CPU executable from experiment 1 is required.  To run Experiment 3:
187      cd ../../../verification/lab_sea/input
188  To run:    ln -sf DATA.1hour data
189    cd ../exe    ln -sf DATA.SEAICE.testadi data.seaice
190    cp ../verification/lab_sea/input/* .    mitgcmuv_1 >&! output.txt
   ln -sf data.1hour data  
   ln -sf data.seaice.testadi data.seaice  
   mitgcmuv1 >&! output.txt  
191    mkdir exp3a    mkdir exp3a
192    mv *tave.0000000001.data exp3a    mv *tave.0000000001.data exp3a
193    ln -sf data.seaice.testlsr data.seaice    ln -sf DATA.SEAICE.testlsr data.seaice
194    mitgcmuv1 >&! output.txt    mitgcmuv_1 >&! output.txt
195    mkdir exp3b    mkdir exp3b
196    mv *tave.0000000001.data exp3b    mv *tave.0000000001.data exp3b
197    
198  Use the matlab script lookat_exp3.m to compare  Use matlab script lookat_exp3.m to look at
199  the output of exp2 to that of exp1:  results from exp3a and exp3b:
200    cd ../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
201    matlab    matlab
202    lookat_exp3    lookat_exp3
203    
204  If the dynamic ice solvers are correct, they should converge to a  If the dynamic ice solvers are correct, they should converge to a
205  constant solution.  The tests above show that both the ADI and the LSR  solution that is constant at each latitude.
206  solver are unable to handle periodic domains and therefore that they  
 cannot be "correctly" parallelized.  
207    
208  Instructions for running Experiment 4  Instructions for running Experiment 4
209  =====================================  =====================================
# Line 129  Instructions for running Experiment 4 Line 211  Instructions for running Experiment 4
211  This is a 2-cpu, 10-hour integration used to test  This is a 2-cpu, 10-hour integration used to test
212  tile edges for sea-ice dynamic solvers.  tile edges for sea-ice dynamic solvers.
213    
214  To configure and compile the code:  To run Experiment 4:
215    cd ../bin    cd ../../../verification/lab_sea/input
216    rm -rf *.f    ln -sf DATA.10hours data
217    rm -rf *.o    ln -sf DATA.SEAICE.adi 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  
218    mpirun -np 2 mitgcmuv_2x1    mpirun -np 2 mitgcmuv_2x1
219    mkdir exp4    mkdir exp4
220    mv *tave.0000000010.data exp4    mv *tave.0000000010.data exp4
221    
222  Use the matlab script lookat_exp4.m to compare  Use the matlab script lookat_exp4.m to compare
223  the 2-cpu output to that of exp1:  the 2-cpu output to that of exp1:
224    cd ../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
225    matlab    matlab
226    lookat_exp4    lookat_exp4
227    
# Line 162  NPSEUDO in data.seaice at the expense of Line 230  NPSEUDO in data.seaice at the expense of
230  Also as sea-ice ages (thickens) the difference at the tiles becomes  Also as sea-ice ages (thickens) the difference at the tiles becomes
231  increasingly small.  For solver pkg/seaice/adi.F a value of NPSEUDO=10  increasingly small.  For solver pkg/seaice/adi.F a value of NPSEUDO=10
232  appears adequate for forward integrations but cannot be used for sea-ice  appears adequate for forward integrations but cannot be used for sea-ice
233  adjoint model.  Work is underway to fix this problem.  adjoint model.  With NPSEUDO=300 or greater, the tile disappears, but the
234    computational cost is very large (11 times that of teh forward model).
235    
236    
237  Instructions for running Experiment 5  Instructions for running Experiment 5
238  =====================================  =====================================
239    
240  This is a 2-cpu, 2-year, test integration.  It illustrates  This is a 2-cpu, 2-year, test integration.  It illustrates
241  convention used for forcing data files by seaice_get_forcing.F.  convention used by seaice_get_forcing.F for multi-year forcing.
242    
243  To run:  To run Experiment 5:
244    cd ../exe    cd ../../../verification/lab_sea/input
245    cp ../verification/lab_sea/input/* .    ln -sf      DATA.2years             data
246    cp eedata_mpi eedata    ln -sf  DATA.SEAICE.adi      data.seaice
247    ln -sf data.2years data    ln -sf  evap.labsea1979  evap.labsea1980  
248    ln -sf data.seaice.adi data.seaice    ln -sf   flo.labsea1979   flo.labsea1980  
249    ln -sf evap.labsea1979  evap.labsea1980      ln -sf   fsh.labsea1979   fsh.labsea1980  
   ln -sf flo.labsea1979   flo.labsea1980    
   ln -sf fsh.labsea1979   fsh.labsea1980    
250    ln -sf prate.labsea1979 prate.labsea1980    ln -sf prate.labsea1979 prate.labsea1980
251    ln -sf qa.labsea1979    qa.labsea1980        ln -sf    qa.labsea1979    qa.labsea1980    
252    ln -sf tair.labsea1979  tair.labsea1980      ln -sf  tair.labsea1979  tair.labsea1980  
253    ln -sf u10m.labsea79    u10m.labsea80        ln -sf    u10m.labsea79    u10m.labsea80    
254    ln -sf v10m.labsea79    v10m.labsea80        ln -sf    v10m.labsea79    v10m.labsea80    
255    mpirun -np 2 mitgcmuv_2x1    mpirun -np 2 mitgcmuv_2x1
256    
257  Use the matlab script lookat_exp3.m to compare  Use the matlab script lookat_exp5.m to compare
258  the 2-cpu output to SMMR-SSM/I data:  the 2-cpu output to SMMR-SSM/I data:
259    cd ../verification/lab_sea/matlab    cd ../../../verification/lab_sea/matlab
260    matlab    matlab
261    lookat_exp5    lookat_exp5
262    
# Line 203  Instructions for running Experiment 6 Line 270  Instructions for running Experiment 6
270    
271  This is a 1-cpu test of sea-ice thermodynamics (no dynamics).  This is a 1-cpu test of sea-ice thermodynamics (no dynamics).
272  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.  
273    
274  To run:  To run Experiment 6:
275    cd ../exe    cd ../../../verification/lab_sea/input
276    cp ../verification/lab_sea/input/* .    ln -sf DATA.10hours data
277    ln -sf data.10hours data    ln -sf DATA.SEAICE.nodynamics data.seaice
278    ln -sf data.seaice.nodynamics data.seaice    mitgcmuv_1 >&! output.txt
   mitgcmuv1 >&! output.txt  
279    mkdir exp6    mkdir exp6
280    mv *tave.0000000010.data exp6    mv *tave.0000000010.data exp6
281    
282  Use the matlab script lookat_exp6.m to compare  Use the matlab script lookat_exp6.m to compare
283  the output of exp2 to that of exp1:  the output of exp6 to that of exp1:
284    cd ../verification/lab_sea/matlab    cd ../verification/lab_sea/matlab
285    matlab    matlab
286    lookat_exp6    lookat_exp6
287    
288    Instructions for running Experiment 7
289    =====================================
290    
291    This is a 2-cpu, 10-hour integration used to test
292    tile edges for sea-ice thermodynamics (no dynamics).
293    2-CPU executable from experiment 4 is required.
294    
295    To run Experiment 7:
296      cd ../../../verification/lab_sea/input
297      ln -sf DATA.10hours data
298      ln -sf DATA.SEAICE.nodynamics data.seaice
299      mpirun -np 2 mitgcmuv_2x1
300      mkdir exp7
301      mv *tave.0000000010.data exp7
302    
303    Use the matlab script lookat_exp7.m to compare
304    the output of exp7 to that of exp6:
305      cd ../verification/lab_sea/matlab
306      matlab
307      lookat_exp7
308    
309    
310    Instructions for running Experiment 8
311    =====================================
312    
313    This is the default experiment which is executed by
314    verification/testscript.  It is a 1-cpu, 10-hour integration
315    used to test CPP option SEAICE_EXTERNAL_FORCING.  Atmospheric
316    state is read-in using pkg/exf, rather than pkg/seaice routines.
317    This experiment uses pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf.
318    
319    To run Experiment 8:
320      cd ../../../verification/lab_sea/input
321      ln -sf DATA.10hours_exf data
322      ln -sf DATA.SEAICE.adi_exf data.seaice
323      mitgcmuv_exf_forcing >&! output.txt
324      mkdir exp8
325      mv *tave.0000000010.data exp8
326    
327    Use matlab script lookat_exp8.m to compare
328    the output of exp8 to that of exp1:
329      cd ../../../verification/lab_sea/matlab
330      matlab
331      lookat_exp8
332    
333    
334    Instructions for running Experiment 9
335    =====================================
336    
337    This is a 1-cpu, 10-hour integration used to test CPP option
338    SEAICE_EXTERNAL_FLUXES.  Both the atmospheric state and the
339    open-water surface fluxes are provided by pkg/exf.
340    
341    To run Experiment 9:
342      cd ../../../verification/lab_sea/input
343      ln -sf DATA.10hours_exf data
344      ln -sf DATA.SEAICE.adi_exf data.seaice
345      mitgcmuv_exf_fluxes >&! output.txt
346      mkdir exp9
347      mv *tave.0000000010.data exp9
348    
349    Use matlab script lookat_exp9.m to compare
350    the output of exp9 to that of exp8:
351      cd ../../../verification/lab_sea/matlab
352      matlab
353      lookat_exp9
354    
355    
356    Instructions for running Experiment 10
357    ======================================
358    
359    This is a 1-cpu, 10-hour integration similar to exp8, but
360    with bulk formula computation of evaporation fields.
361    
362    To run Experiment 10:
363      cd ../../../verification/lab_sea/input
364      ln -sf DATA.10hours_exf data
365      ln -sf DATA.SEAICE.adi_exf data.seaice
366      mitgcmuv_compute_evap >&! output.txt
367      mkdir exp10
368      mv *tave.0000000010.data exp10
369    
370    Use matlab script lookat_exp10.m to compare
371    the output of exp10 to that of exp8:
372      cd ../../../verification/lab_sea/matlab
373      matlab
374      lookat_exp10

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

  ViewVC Help
Powered by ViewVC 1.1.22