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

Contents of /MITgcm/verification/lab_sea/README

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


Revision 1.1.2.6 - (show annotations) (download)
Sun Jan 12 08:20:10 2003 UTC (21 years, 3 months ago) by dimitri
Branch: release1
Changes since 1.1.2.5: +2 -2 lines
  - improved description of the various forcing configurations
  - added basic radiation bulk formulae to pkg/exf

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 lwdownFile = 'flo.labsea1979' # downward longwave radiation
28 swdownFile = 'fsh.labsea1979' # downward 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

  ViewVC Help
Powered by ViewVC 1.1.22