/[MITgcm]/MITgcm/verification/lab_sea/README
ViewVC logotype

Annotation of /MITgcm/verification/lab_sea/README

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1.2.3 - (hide annotations) (download)
Fri Dec 27 08:01:56 2002 UTC (21 years, 3 months ago) by dimitri
Branch: release1
CVS Tags: release1_p10
Changes since 1.1.2.2: +105 -27 lines
o modifications for using pkg/exf with pkg/seaice
  - pkg/seaice CPP options SEAICE_EXTERNAL_FORCING
    and SEAICE_EXTERNAL_FLUXES
  - pkg/exf CPP options EXF_READ_EVAP and
    EXF_NO_BULK_COMPUTATIONS
  - usage examples are Experiments 8 and 9 in
    verification/lab_sea/README
  - verification/lab_sea default experiment now uses
    pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf

1 heimbach 1.1.2.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 dimitri 1.1.2.2 A brief description of the sea-ice model is in "seaice.ps".
7 heimbach 1.1.2.1
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 dimitri 1.1.2.2 Using testscript to test sea-ice code
34 heimbach 1.1.2.1 =====================================
35    
36 dimitri 1.1.2.2 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 dimitri 1.1.2.3 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 dimitri 1.1.2.2
50 dimitri 1.1.2.3 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 dimitri 1.1.2.2
52    
53     Instructions for generating 1-CPU and 2-CPU executables
54     =======================================================
55    
56     Generating 1-CPU executable:
57 dimitri 1.1.2.3 cd verification/lab_sea/input
58 dimitri 1.1.2.2 ln -sf ../code/SIZE.h .
59     ln -sf ../code/CPP_EEOPTIONS.h .
60 dimitri 1.1.2.3 ln -sf ../code/CPP_OPTIONS.NOEXF.h CPP_OPTIONS.h
61     rm -f SEAICE_OPTIONS.h
62 dimitri 1.1.2.2 ../../../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 dimitri 1.1.2.3
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 dimitri 1.1.2.2
100     Generating 2-CPU executable:
101     cd ../../../verification/lab_sea/input
102 dimitri 1.1.2.3 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 dimitri 1.1.2.2 ../../../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 heimbach 1.1.2.1 make depend
113     make
114 dimitri 1.1.2.2 mv mitgcmuv mitgcmuv_2x1
115    
116    
117     Instructions for running Experiment 1
118     =====================================
119 heimbach 1.1.2.1
120 dimitri 1.1.2.2 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 dimitri 1.1.2.3 ln -sf DATA.10hours data
127     ln -sf DATA.SEAICE.adi data.seaice
128 dimitri 1.1.2.2 mitgcmuv_1 >&! output.txt
129 heimbach 1.1.2.1 mkdir exp1
130     mv *tave.0000000010.data exp1
131    
132 dimitri 1.1.2.2 Use matlab script lookat_exp1.m to compare the output
133 dimitri 1.1.2.3 of exp1 with that from release1_p10 sea-ice code:
134 dimitri 1.1.2.2 cd ../../../verification/lab_sea/matlab
135 heimbach 1.1.2.1 matlab
136     lookat_exp1
137    
138 dimitri 1.1.2.2
139 heimbach 1.1.2.1 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 dimitri 1.1.2.2 To run Experiment 2:
146     cd ../../../verification/lab_sea/input
147 dimitri 1.1.2.3 ln -sf DATA.10hours data
148     ln -sf DATA.SEAICE.lsr data.seaice
149 dimitri 1.1.2.2 mitgcmuv_1 >&! output.txt
150 heimbach 1.1.2.1 mkdir exp2
151     mv *tave.0000000010.data exp2
152    
153 dimitri 1.1.2.2 Use matlab script lookat_exp2.m to compare
154 heimbach 1.1.2.1 the output of exp2 to that of exp1:
155 dimitri 1.1.2.2 cd ../../../verification/lab_sea/matlab
156 heimbach 1.1.2.1 matlab
157     lookat_exp2
158    
159 dimitri 1.1.2.2
160 heimbach 1.1.2.1 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 dimitri 1.1.2.2 All forcing files are null or constant (u10m = v10m = 5 m/s).
167 heimbach 1.1.2.1
168 dimitri 1.1.2.2 To run Experiment 3:
169     cd ../../../verification/lab_sea/input
170 dimitri 1.1.2.3 ln -sf DATA.1hour data
171     ln -sf DATA.SEAICE.testadi data.seaice
172 dimitri 1.1.2.2 mitgcmuv_1 >&! output.txt
173 heimbach 1.1.2.1 mkdir exp3a
174     mv *tave.0000000001.data exp3a
175 dimitri 1.1.2.3 ln -sf DATA.SEAICE.testlsr data.seaice
176 dimitri 1.1.2.2 mitgcmuv_1 >&! output.txt
177 heimbach 1.1.2.1 mkdir exp3b
178     mv *tave.0000000001.data exp3b
179    
180 dimitri 1.1.2.2 Use matlab script lookat_exp3.m to compare
181 heimbach 1.1.2.1 the output of exp2 to that of exp1:
182 dimitri 1.1.2.2 cd ../../../verification/lab_sea/matlab
183 heimbach 1.1.2.1 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 dimitri 1.1.2.2
192 heimbach 1.1.2.1 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 dimitri 1.1.2.2 To run Experiment 4:
199     cd ../../../verification/lab_sea/input
200 dimitri 1.1.2.3 ln -sf DATA.10hours data
201     ln -sf DATA.SEAICE.adi data.seaice
202 heimbach 1.1.2.1 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 dimitri 1.1.2.2 cd ../../../verification/lab_sea/matlab
209 heimbach 1.1.2.1 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 dimitri 1.1.2.2 convention used by seaice_get_forcing.F for multi-year forcing.
225 heimbach 1.1.2.1
226 dimitri 1.1.2.2 To run Experiment 5:
227     cd ../../../verification/lab_sea/input
228 dimitri 1.1.2.3 ln -sf DATA.2years data
229     ln -sf DATA.SEAICE.adi data.seaice
230 dimitri 1.1.2.2 ln -sf evap.labsea1979 evap.labsea1980
231     ln -sf flo.labsea1979 flo.labsea1980
232     ln -sf fsh.labsea1979 fsh.labsea1980
233 heimbach 1.1.2.1 ln -sf prate.labsea1979 prate.labsea1980
234 dimitri 1.1.2.2 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 heimbach 1.1.2.1 mpirun -np 2 mitgcmuv_2x1
239    
240 dimitri 1.1.2.2 Use the matlab script lookat_exp5.m to compare
241 heimbach 1.1.2.1 the 2-cpu output to SMMR-SSM/I data:
242 dimitri 1.1.2.2 cd ../../../verification/lab_sea/matlab
243 heimbach 1.1.2.1 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 dimitri 1.1.2.2 To run Experiment 6:
258     cd ../../../verification/lab_sea/input
259 dimitri 1.1.2.3 ln -sf DATA.10hours data
260     ln -sf DATA.SEAICE.nodynamics data.seaice
261 dimitri 1.1.2.2 mitgcmuv_1 >&! output.txt
262 heimbach 1.1.2.1 mkdir exp6
263     mv *tave.0000000010.data exp6
264    
265     Use the matlab script lookat_exp6.m to compare
266 dimitri 1.1.2.2 the output of exp6 to that of exp1:
267 heimbach 1.1.2.1 cd ../verification/lab_sea/matlab
268     matlab
269     lookat_exp6
270 dimitri 1.1.2.2
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 dimitri 1.1.2.3 ln -sf DATA.10hours data
281     ln -sf DATA.SEAICE.nodynamics data.seaice
282 dimitri 1.1.2.2 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 dimitri 1.1.2.3
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

  ViewVC Help
Powered by ViewVC 1.1.22