/[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.5 - (hide annotations) (download)
Tue Feb 18 05:33:56 2003 UTC (21 years, 2 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint48i_post, checkpoint50, checkpoint50b_pre, checkpoint48f_post, checkpoint48h_post, checkpoint50a_post, checkpoint49, checkpoint48g_post, checkpoint50b_post
Changes since 1.4: +38 -2 lines
Merging from release1_p12:
o Modifications for using pkg/exf with pkg/seaice
  - improved description of the various forcing configurations
  - added basic radiation bulk formulae to pkg/exf
  - units/sign fix for evap computation in exf_getffields.F
  - updated verification/global_with_exf/results/output.txt
o Added pkg/sbo for computing IERS Special Bureau for the Oceans
  (SBO) core products, including oceanic mass, center-of-mass,
  angular, and bottom pressure (see pkg/sbo/README.sbo).
o Lower bound for viscosity/diffusivity in pkg/kpp/kpp_routines.F
  to avoid negative values in shallow regions.
  - updated verification/natl_box/results/output.txt
  - updated verification/lab_sea/results/output.txt
o MPI gather, scatter: eesupp/src/gather_2d.F and scatter_2d.F
o Added useSingleCpuIO option (see PARAMS.h).
o Updated useSingleCpuIO option in mdsio_writefield.F to
  work with multi-field files, e.g., for single-file pickup.
o pkg/seaice:
  - bug fix in growth.F: QNET for no shortwave case
  - added HeffFile for specifying initial sea-ice thickness
  - changed SEAICE_EXTERNAL_FLUXES wind stress implementation
o Added missing /* */ to CPP comments in pkg/seaice, pkg/exf,
  kpp_transport_t.F, forward_step.F, and the_main_loop.F
o pkg/seaice:
  - adjoint-friendly modifications
  - added a SEAICE_WRITE_PICKUP at end of the_model_main.F

1 heimbach 1.2 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.3 A brief description of the sea-ice model is in "seaice.ps".
7 heimbach 1.2
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 dimitri 1.4 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 dimitri 1.5 lwdownFile = 'flo.labsea1979' # downward longwave radiation
28     swdownFile = 'fsh.labsea1979' # downward shortwave radiation
29 dimitri 1.4 precipFile = 'prate.labsea1979' # precipitation
30 heimbach 1.2 evapFile = 'evap.labsea1979' # evaporation
31    
32    
33 dimitri 1.3 Using testscript to test sea-ice code
34     =====================================
35    
36     Running the testscript experiment:
37     cd verification
38     ./testscript -force lab_sea
39 dimitri 1.4 The default experiment is Experiment 8, below.
40     It uses pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf.
41 dimitri 1.3
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 dimitri 1.4 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 dimitri 1.3
52 dimitri 1.4 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 dimitri 1.3
54    
55     Instructions for generating 1-CPU and 2-CPU executables
56     =======================================================
57    
58     Generating 1-CPU executable:
59 dimitri 1.4 cd verification/lab_sea/input
60 dimitri 1.3 ln -sf ../code/SIZE.h .
61 dimitri 1.4 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 dimitri 1.3 ln -sf ../code/CPP_OPTIONS.h .
77 dimitri 1.4 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 dimitri 1.5 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 dimitri 1.4 Generating 1-CPU executable with SEAICE_EXTERNAL_FLUXES:
103     cd ../../../verification/lab_sea/input
104     ln -sf ../code/SIZE.h .
105 dimitri 1.3 ln -sf ../code/CPP_EEOPTIONS.h .
106 dimitri 1.4 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 dimitri 1.3 ../../../tools/genmake -makefile
110     ==> on alhena use:
111     ../../../tools/genmake -platform=o2k_noopt -makefile
112     make clean
113     make depend
114     make
115 dimitri 1.4 mv mitgcmuv mitgcmuv_exf_fluxes
116 dimitri 1.3
117     Generating 2-CPU executable:
118     cd ../../../verification/lab_sea/input
119 dimitri 1.4 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 dimitri 1.3 ../../../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
130     make
131     mv mitgcmuv mitgcmuv_2x1
132    
133    
134 heimbach 1.2 Instructions for running Experiment 1
135     =====================================
136    
137 dimitri 1.4 This is a 1-cpu, 10-hour integration used to make sure that all
138     the files are available and that the sea-ice model compiles and
139     runs. The reading of atmospheric forcing files and the computation
140     of open-water bulk fluxes are carried out within pkg/seaice.
141 heimbach 1.2
142 dimitri 1.3 To run Experiment 1:
143     cd ../../../verification/lab_sea/input
144 dimitri 1.4 ln -sf DATA.10hours data
145     ln -sf DATA.SEAICE.adi data.seaice
146 dimitri 1.3 mitgcmuv_1 >&! output.txt
147 heimbach 1.2 mkdir exp1
148     mv *tave.0000000010.data exp1
149    
150 dimitri 1.3 Use matlab script lookat_exp1.m to compare the output
151 dimitri 1.4 of exp1 with that from release1_p10 sea-ice code:
152 dimitri 1.3 cd ../../../verification/lab_sea/matlab
153 heimbach 1.2 matlab
154     lookat_exp1
155    
156 dimitri 1.3
157 heimbach 1.2 Instructions for running Experiment 2
158     =====================================
159    
160     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.
162    
163 dimitri 1.3 To run Experiment 2:
164     cd ../../../verification/lab_sea/input
165 dimitri 1.4 ln -sf DATA.10hours data
166     ln -sf DATA.SEAICE.lsr data.seaice
167 dimitri 1.3 mitgcmuv_1 >&! output.txt
168 heimbach 1.2 mkdir exp2
169     mv *tave.0000000010.data exp2
170    
171 dimitri 1.3 Use matlab script lookat_exp2.m to compare
172 heimbach 1.2 the output of exp2 to that of exp1:
173 dimitri 1.3 cd ../../../verification/lab_sea/matlab
174 heimbach 1.2 matlab
175     lookat_exp2
176    
177 dimitri 1.3
178 heimbach 1.2 Instructions for running Experiment 3
179     =====================================
180    
181     This is a test of periodic boundary conditions for LSR
182     and ADI solvers. The domain has a flat bottom and
183     is periodic both in the x and the y directions.
184 dimitri 1.3 All forcing files are null or constant (u10m = v10m = 5 m/s).
185 heimbach 1.2
186 dimitri 1.3 To run Experiment 3:
187     cd ../../../verification/lab_sea/input
188 dimitri 1.4 ln -sf DATA.1hour data
189     ln -sf DATA.SEAICE.testadi data.seaice
190 dimitri 1.3 mitgcmuv_1 >&! output.txt
191 heimbach 1.2 mkdir exp3a
192     mv *tave.0000000001.data exp3a
193 dimitri 1.4 ln -sf DATA.SEAICE.testlsr data.seaice
194 dimitri 1.3 mitgcmuv_1 >&! output.txt
195 heimbach 1.2 mkdir exp3b
196     mv *tave.0000000001.data exp3b
197    
198 dimitri 1.3 Use matlab script lookat_exp3.m to compare
199 heimbach 1.2 the output of exp2 to that of exp1:
200 dimitri 1.3 cd ../../../verification/lab_sea/matlab
201 heimbach 1.2 matlab
202     lookat_exp3
203    
204     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
206     solver are unable to handle periodic domains and therefore that they
207     cannot be "correctly" parallelized.
208    
209 dimitri 1.3
210 heimbach 1.2 Instructions for running Experiment 4
211     =====================================
212    
213     This is a 2-cpu, 10-hour integration used to test
214     tile edges for sea-ice dynamic solvers.
215    
216 dimitri 1.3 To run Experiment 4:
217     cd ../../../verification/lab_sea/input
218 dimitri 1.4 ln -sf DATA.10hours data
219     ln -sf DATA.SEAICE.adi data.seaice
220 heimbach 1.2 mpirun -np 2 mitgcmuv_2x1
221     mkdir exp4
222     mv *tave.0000000010.data exp4
223    
224     Use the matlab script lookat_exp4.m to compare
225     the 2-cpu output to that of exp1:
226 dimitri 1.3 cd ../../../verification/lab_sea/matlab
227 heimbach 1.2 matlab
228     lookat_exp4
229    
230     The inaccuracy at the tile boundary can be decreased by increasing
231     NPSEUDO in data.seaice at the expense of computation time.
232     Also as sea-ice ages (thickens) the difference at the tiles becomes
233     increasingly small. For solver pkg/seaice/adi.F a value of NPSEUDO=10
234     appears adequate for forward integrations but cannot be used for sea-ice
235     adjoint model. Work is underway to fix this problem.
236    
237    
238     Instructions for running Experiment 5
239     =====================================
240    
241     This is a 2-cpu, 2-year, test integration. It illustrates
242 dimitri 1.3 convention used by seaice_get_forcing.F for multi-year forcing.
243 heimbach 1.2
244 dimitri 1.3 To run Experiment 5:
245     cd ../../../verification/lab_sea/input
246 dimitri 1.4 ln -sf DATA.2years data
247     ln -sf DATA.SEAICE.adi data.seaice
248 dimitri 1.3 ln -sf evap.labsea1979 evap.labsea1980
249     ln -sf flo.labsea1979 flo.labsea1980
250     ln -sf fsh.labsea1979 fsh.labsea1980
251 heimbach 1.2 ln -sf prate.labsea1979 prate.labsea1980
252 dimitri 1.3 ln -sf qa.labsea1979 qa.labsea1980
253     ln -sf tair.labsea1979 tair.labsea1980
254     ln -sf u10m.labsea79 u10m.labsea80
255     ln -sf v10m.labsea79 v10m.labsea80
256 heimbach 1.2 mpirun -np 2 mitgcmuv_2x1
257    
258 dimitri 1.3 Use the matlab script lookat_exp5.m to compare
259 heimbach 1.2 the 2-cpu output to SMMR-SSM/I data:
260 dimitri 1.3 cd ../../../verification/lab_sea/matlab
261 heimbach 1.2 matlab
262     lookat_exp5
263    
264     Disclaimer:
265     The comparison here is just for fun, not really supposed
266     to look anything like the data.
267     Otherwise it would put a lot of people out of business :-)
268    
269     Instructions for running Experiment 6
270     =====================================
271    
272     This is a 1-cpu test of sea-ice thermodynamics (no dynamics).
273     The solution is compared to that of experiment 1.
274    
275 dimitri 1.3 To run Experiment 6:
276     cd ../../../verification/lab_sea/input
277 dimitri 1.4 ln -sf DATA.10hours data
278     ln -sf DATA.SEAICE.nodynamics data.seaice
279 dimitri 1.3 mitgcmuv_1 >&! output.txt
280 heimbach 1.2 mkdir exp6
281     mv *tave.0000000010.data exp6
282    
283     Use the matlab script lookat_exp6.m to compare
284 dimitri 1.3 the output of exp6 to that of exp1:
285 heimbach 1.2 cd ../verification/lab_sea/matlab
286     matlab
287     lookat_exp6
288 dimitri 1.3
289     Instructions for running Experiment 7
290     =====================================
291    
292     This is a 2-cpu, 10-hour integration used to test
293     tile edges for sea-ice thermodynamics (no dynamics).
294     2-CPU executable from experiment 4 is required.
295    
296     To run Experiment 7:
297     cd ../../../verification/lab_sea/input
298 dimitri 1.4 ln -sf DATA.10hours data
299     ln -sf DATA.SEAICE.nodynamics data.seaice
300 dimitri 1.3 mpirun -np 2 mitgcmuv_2x1
301     mkdir exp7
302     mv *tave.0000000010.data exp7
303    
304     Use the matlab script lookat_exp7.m to compare
305     the output of exp7 to that of exp6:
306     cd ../verification/lab_sea/matlab
307     matlab
308     lookat_exp7
309 dimitri 1.4
310    
311     Instructions for running Experiment 8
312     =====================================
313    
314     This is the default experiment which is executed by
315     verification/testscript. It is a 1-cpu, 10-hour integration
316     used to test CPP option SEAICE_EXTERNAL_FORCING. Atmospheric
317     state is read-in using pkg/exf, rather than pkg/seaice routines.
318     This experiment uses pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf.
319    
320     To run Experiment 8:
321     cd ../../../verification/lab_sea/input
322     ln -sf DATA.10hours_exf data
323     ln -sf DATA.SEAICE.adi_exf data.seaice
324     mitgcmuv_exf_forcing >&! output.txt
325     mkdir exp8
326     mv *tave.0000000010.data exp8
327    
328     Use matlab script lookat_exp8.m to compare
329     the output of exp8 to that of exp1:
330     cd ../../../verification/lab_sea/matlab
331     matlab
332     lookat_exp8
333    
334    
335     Instructions for running Experiment 9
336     =====================================
337    
338     This is a 1-cpu, 10-hour integration used to test CPP option
339     SEAICE_EXTERNAL_FLUXES. Both the atmospheric state and the
340     open-water surface fluxes are provided by pkg/exf.
341    
342     To run Experiment 9:
343     cd ../../../verification/lab_sea/input
344     ln -sf DATA.10hours_exf data
345     ln -sf DATA.SEAICE.adi_exf data.seaice
346     mitgcmuv_exf_fluxes >&! output.txt
347     mkdir exp9
348     mv *tave.0000000010.data exp9
349    
350     Use matlab script lookat_exp9.m to compare
351     the output of exp9 to that of exp8:
352     cd ../../../verification/lab_sea/matlab
353     matlab
354     lookat_exp9
355 dimitri 1.5
356    
357     Instructions for running Experiment 10
358     ======================================
359    
360     This is a 1-cpu, 10-hour integration similar to exp8, but
361     with bulk formula computation of evaporation fields.
362    
363     To run Experiment 10:
364     cd ../../../verification/lab_sea/input
365     ln -sf DATA.10hours_exf data
366     ln -sf DATA.SEAICE.adi_exf data.seaice
367     mitgcmuv_compute_evap >&! output.txt
368     mkdir exp10
369     mv *tave.0000000010.data exp10
370    
371     Use matlab script lookat_exp10.m to compare
372     the output of exp10 to that of exp8:
373     cd ../../../verification/lab_sea/matlab
374     matlab
375     lookat_exp10

  ViewVC Help
Powered by ViewVC 1.1.22