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

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

  ViewVC Help
Powered by ViewVC 1.1.22