/[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.3 by dimitri, Fri Dec 27 08:01:56 2002 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      gairxFile      = 'u10m.labsea79'    # 10-m zonal wind
24      gairyFile      = 'v10m.labsea79'    # 10-m meridional wind
25      tairFile       = 'tair.labsea1979'  # 2-m air temperature
26      qaFile         = 'qa.labsea1979'    # 2-m specific humidity
27      floFile        = 'flo.labsea1979'   # longwave radiation
28      fshFile        = 'fsh.labsea1979'   # shortwave radiation
29      rainFile       = '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    
40    Note that fairly large differences in accuracy occur across different
41    platforms.  For example, testscript comparisons between g77 (Linux)
42    and f77 (SGI) generated output gives:
43    
44                    T           S           U           V
45    C D M    c        m  s        m  s        m  s        m  s
46    n p a R  g  m  m  e  .  m  m  e  .  m  m  e  .  m  m  e  .
47    f n k u  2  i  a  a  d  i  a  a  d  i  a  a  d  i  a  a  d
48    g d e n  d  n  x  n  .  n  x  n  .  n  x  n  .  n  x  n  .
49    
50    Y Y Y Y  8 10  9 11 10  9 11 13 10  9  8  8  9  8  9  8  9 FAIL  lab_sea
51    
52    
53    Instructions for generating 1-CPU and 2-CPU executables
54    =======================================================
55    
56    Generating 1-CPU executable:
57      cd verification/lab_sea/input
58      ln -sf ../code/SIZE.h .
59      ln -sf ../code/CPP_EEOPTIONS.h .
60      ln -sf ../code/CPP_OPTIONS.NOEXF.h CPP_OPTIONS.h
61      rm -f SEAICE_OPTIONS.h
62      ../../../tools/genmake -makefile
63        ==> on alhena use:
64        ../../../tools/genmake -platform=o2k_noopt -makefile
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/SIZE.h .
73      ln -sf ../code/CPP_EEOPTIONS.h .
74      ln -sf ../code/CPP_OPTIONS.h .
75      ln -sf ../code/ECCO_CPPOPTIONS.h .
76      ln -sf ../code/SEAICE_OPTIONS.h .
77      ../../../tools/genmake -makefile
78        ==> on alhena use:
79        ../../../tools/genmake -platform=o2k_noopt -makefile
80      make clean
81      make depend
82      make
83      mv mitgcmuv mitgcmuv_exf_forcing
84    
85    Generating 1-CPU executable with SEAICE_EXTERNAL_FLUXES:
86      cd ../../../verification/lab_sea/input
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.EXF_FLUXES.h SEAICE_OPTIONS.h
92      ../../../tools/genmake -makefile
93        ==> on alhena use:
94        ../../../tools/genmake -platform=o2k_noopt -makefile
95      make clean
96      make depend
97      make
98      mv mitgcmuv mitgcmuv_exf_fluxes
99      
100    Generating 2-CPU executable:
101      cd ../../../verification/lab_sea/input
102      ln -sf ../code/SIZE.2x1.h SIZE.h
103      ln -sf ../code/CPP_EEOPTIONS.MPI.h CPP_EEOPTIONS.h
104      ln -sf ../code/CPP_OPTIONS.NOEXF.h CPP_OPTIONS.h
105      rm -f SEAICE_OPTIONS.h
106      ../../../tools/genmake -mpi -makefile
107        ==> on alhena for comparison purposes use:
108          ../../../tools/genmake -mpi -platform=o2k_noopt -makefile
109        ==> on alhena for fast execution use:
110          ../../../tools/genmake -mpi -platform=o2k -makefile
111      make clean
112      make depend
113      make
114      mv mitgcmuv mitgcmuv_2x1
115    
116    
117    Instructions for running Experiment 1
118    =====================================
119    
120    This is a 1-cpu, 10-hour integration used to make sure that all the
121    files are available and that the model compiles and integrates.  It
122    is the default experiment of "verification/testscript lab_sea".
123    
124    To run Experiment 1:
125      cd ../../../verification/lab_sea/input
126      ln -sf DATA.10hours data
127      ln -sf DATA.SEAICE.adi data.seaice
128      mitgcmuv_1 >&! output.txt
129      mkdir exp1
130      mv *tave.0000000010.data exp1
131    
132    Use matlab script lookat_exp1.m to compare the output
133    of exp1 with that from release1_p10 sea-ice code:
134      cd ../../../verification/lab_sea/matlab
135      matlab
136      lookat_exp1
137    
138    
139    Instructions for running Experiment 2
140    =====================================
141    
142    This is a 1-cpu test of the LSR solver.  The solution is
143    compared to that of experiment 1, which used the ADI solver.
144    
145    To run Experiment 2:
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 exp2
151      mv *tave.0000000010.data exp2
152    
153    Use matlab script lookat_exp2.m to compare
154    the output of exp2 to that of exp1:
155      cd ../../../verification/lab_sea/matlab
156      matlab
157      lookat_exp2
158    
159    
160    Instructions for running Experiment 3
161    =====================================
162    
163    This is a test of periodic boundary conditions for LSR
164    and ADI solvers.  The domain has a flat bottom and
165    is periodic both in the x and the y directions.
166    All forcing files are null or constant (u10m = v10m = 5 m/s).
167    
168    To run Experiment 3:
169      cd ../../../verification/lab_sea/input
170      ln -sf DATA.1hour data
171      ln -sf DATA.SEAICE.testadi data.seaice
172      mitgcmuv_1 >&! output.txt
173      mkdir exp3a
174      mv *tave.0000000001.data exp3a
175      ln -sf DATA.SEAICE.testlsr data.seaice
176      mitgcmuv_1 >&! output.txt
177      mkdir exp3b
178      mv *tave.0000000001.data exp3b
179    
180    Use matlab script lookat_exp3.m to compare
181    the output of exp2 to that of exp1:
182      cd ../../../verification/lab_sea/matlab
183      matlab
184      lookat_exp3
185    
186    If the dynamic ice solvers are correct, they should converge to a
187    constant solution.  The tests above show that both the ADI and the LSR
188    solver are unable to handle periodic domains and therefore that they
189    cannot be "correctly" parallelized.
190    
191    
192    Instructions for running Experiment 4
193    =====================================
194    
195    This is a 2-cpu, 10-hour integration used to test
196    tile edges for sea-ice dynamic solvers.
197    
198    To run Experiment 4:
199      cd ../../../verification/lab_sea/input
200      ln -sf DATA.10hours data
201      ln -sf DATA.SEAICE.adi data.seaice
202      mpirun -np 2 mitgcmuv_2x1
203      mkdir exp4
204      mv *tave.0000000010.data exp4
205    
206    Use the matlab script lookat_exp4.m to compare
207    the 2-cpu output to that of exp1:
208      cd ../../../verification/lab_sea/matlab
209      matlab
210      lookat_exp4
211    
212    The inaccuracy at the tile boundary can be decreased by increasing
213    NPSEUDO in data.seaice at the expense of computation time.
214    Also as sea-ice ages (thickens) the difference at the tiles becomes
215    increasingly small.  For solver pkg/seaice/adi.F a value of NPSEUDO=10
216    appears adequate for forward integrations but cannot be used for sea-ice
217    adjoint model.  Work is underway to fix this problem.
218    
219    
220    Instructions for running Experiment 5
221    =====================================
222    
223    This is a 2-cpu, 2-year, test integration.  It illustrates
224    convention used by seaice_get_forcing.F for multi-year forcing.
225    
226    To run Experiment 5:
227      cd ../../../verification/lab_sea/input
228      ln -sf      DATA.2years             data
229      ln -sf  DATA.SEAICE.adi      data.seaice
230      ln -sf  evap.labsea1979  evap.labsea1980  
231      ln -sf   flo.labsea1979   flo.labsea1980  
232      ln -sf   fsh.labsea1979   fsh.labsea1980  
233      ln -sf prate.labsea1979 prate.labsea1980
234      ln -sf    qa.labsea1979    qa.labsea1980    
235      ln -sf  tair.labsea1979  tair.labsea1980  
236      ln -sf    u10m.labsea79    u10m.labsea80    
237      ln -sf    v10m.labsea79    v10m.labsea80    
238      mpirun -np 2 mitgcmuv_2x1
239    
240    Use the matlab script lookat_exp5.m to compare
241    the 2-cpu output to SMMR-SSM/I data:
242      cd ../../../verification/lab_sea/matlab
243      matlab
244      lookat_exp5
245    
246    Disclaimer:
247    The comparison here is just for fun, not really supposed
248    to look anything like the data.
249    Otherwise it would put a lot of people out of business :-)
250    
251    Instructions for running Experiment 6
252    =====================================
253    
254    This is a 1-cpu test of sea-ice thermodynamics (no dynamics).
255    The solution is compared to that of experiment 1.
256    
257    To run Experiment 6:
258      cd ../../../verification/lab_sea/input
259      ln -sf DATA.10hours data
260      ln -sf DATA.SEAICE.nodynamics data.seaice
261      mitgcmuv_1 >&! output.txt
262      mkdir exp6
263      mv *tave.0000000010.data exp6
264    
265    Use the matlab script lookat_exp6.m to compare
266    the output of exp6 to that of exp1:
267      cd ../verification/lab_sea/matlab
268      matlab
269      lookat_exp6
270    
271    Instructions for running Experiment 7
272    =====================================
273    
274    This is a 2-cpu, 10-hour integration used to test
275    tile edges for sea-ice thermodynamics (no dynamics).
276    2-CPU executable from experiment 4 is required.
277    
278    To run Experiment 7:
279      cd ../../../verification/lab_sea/input
280      ln -sf DATA.10hours data
281      ln -sf DATA.SEAICE.nodynamics data.seaice
282      mpirun -np 2 mitgcmuv_2x1
283      mkdir exp7
284      mv *tave.0000000010.data exp7
285    
286    Use the matlab script lookat_exp7.m to compare
287    the output of exp7 to that of exp6:
288      cd ../verification/lab_sea/matlab
289      matlab
290      lookat_exp7
291    
292    
293    Instructions for running Experiment 8
294    =====================================
295    
296    This is the default experiment which is executed by
297    verification/testscript.  It is a 1-cpu, 10-hour integration
298    used to test CPP option SEAICE_EXTERNAL_FORCING.  Atmospheric
299    state is read-in using pkg/exf, rather than pkg/seaice routines.
300    This experiment uses pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf.
301    
302    To run Experiment 8:
303      cd ../../../verification/lab_sea/input
304      ln -sf DATA.10hours_exf data
305      ln -sf DATA.SEAICE.adi_exf data.seaice
306      mitgcmuv_exf_forcing >&! output.txt
307      mkdir exp8
308      mv *tave.0000000010.data exp8
309    
310    Use matlab script lookat_exp8.m to compare
311    the output of exp8 to that of exp1:
312      cd ../../../verification/lab_sea/matlab
313      matlab
314      lookat_exp8
315    
316    
317    Instructions for running Experiment 9
318    =====================================
319    
320    This is a 1-cpu, 10-hour integration used to test CPP option
321    SEAICE_EXTERNAL_FLUXES.  Atmospheric state and open-water surface
322    fluxes are computed by pkg/exf, rather than pkg/seaice routines.
323    
324    To run Experiment 9:
325      cd ../../../verification/lab_sea/input
326      ln -sf DATA.10hours_exf data
327      ln -sf DATA.SEAICE.adi_exf data.seaice
328      mitgcmuv_exf_fluxes >&! output.txt
329      mkdir exp9
330      mv *tave.0000000010.data exp9
331    
332    Use matlab script lookat_exp9.m to compare
333    the output of exp9 to that of exp8:
334      cd ../../../verification/lab_sea/matlab
335      matlab
336      lookat_exp9

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

  ViewVC Help
Powered by ViewVC 1.1.22