--- MITgcm/verification/lab_sea/README 2002/11/12 20:54:28 1.2 +++ MITgcm/verification/lab_sea/README 2002/12/05 08:43:03 1.3 @@ -3,7 +3,7 @@ This example sets up a small (20x16x23) Labrador Sea experiment coupled to a dynamic thermodynamic sea-ice model. -A brief description of the sea-ice model is in "doc/seaice.ps". +A brief description of the sea-ice model is in "seaice.ps". The domain of integration spans 280E to 320E and 46N to 78N. Horizontal grid spacing is 2 degrees. @@ -30,91 +30,124 @@ evapFile = 'evap.labsea1979' # evaporation -Instructions for running Experiment 1 +Using testscript to test sea-ice code ===================================== -This is a 1-cpu, 10-hour integration used to make sure that all the -files are available and that the model compiles and integrates. - -To configure and compile the code: - cd MITgcmUV - mkdir bin exe - cd bin - ln -sf ../verification/lab_sea/code/SIZE.h . - ln -sf ../verification/lab_sea/code/CPP_OPTIONS.h . - ln -sf ../verification/lab_sea/code/CPP_EEOPTIONS.h . - ../tools/genmake -makefile +Running the testscript experiment: + cd verification + ./testscript -force lab_sea + +Note that fairly large differences in accuracy occur across different +platforms. For example, testscript comparisons between g77 (Linux) +and f77 (SGI) generated output gives: + + T S U V + C D M c m s m s m s m s + n p a R g m m e . m m e . m m e . m m e . + f n k u 2 i a a d i a a d i a a d i a a d + g d e n d n x n . n x n . n x n . n x n . + + Y Y Y Y 5 5 7 7 7 8 10 9 6 6 6 6 7 5 7 5 7 FAIL lab_sea + + +Instructions for generating 1-CPU and 2-CPU executables +======================================================= + +Generating 1-CPU executable: + cd ../verification/lab_sea/input + ln -sf ../code/SIZE.h . + ln -sf ../code/CPP_OPTIONS.h . + ln -sf ../code/CPP_EEOPTIONS.h . + ../../../tools/genmake -makefile + ==> on alhena use: + ../../../tools/genmake -platform=o2k_noopt -makefile + make clean + make depend + make + mv mitgcmuv mitgcmuv_1 + +Generating 2-CPU executable: + cd ../../../verification/lab_sea/input + ln -sf ../code/SIZE_2x1.h SIZE.h + ln -sf ../code/CPP_OPTIONS.h . + ln -sf ../code/CPP_EEOPTIONS_MPI.h CPP_EEOPTIONS.h + ../../../tools/genmake -mpi -makefile + ==> on alhena for comparison purposes use: + ../../../tools/genmake -mpi -platform=o2k_noopt -makefile + ==> on alhena for fast execution use: + ../../../tools/genmake -mpi -platform=o2k -makefile + make clean make depend make + mv mitgcmuv mitgcmuv_2x1 + + +Instructions for running Experiment 1 +===================================== -To run: - cd ../exe - cp ../verification/lab_sea/input/* . +This is a 1-cpu, 10-hour integration used to make sure that all the +files are available and that the model compiles and integrates. It +is the default experiment of "verification/testscript lab_sea". + +To run Experiment 1: + cd ../../../verification/lab_sea/input ln -sf data.10hours data ln -sf data.seaice.adi data.seaice - mv mitgcmuv mitgcmuv1 - mitgcmuv1 >&! output.txt + mitgcmuv_1 >&! output.txt mkdir exp1 mv *tave.0000000010.data exp1 -There is comparison output in: - diff output.txt ../verification/lab_sea/results/output.txt | more - -Use the matlab script lookat_exp1.m to compare the output -of exp1 with that from release1_beta1 sea-ice code: - cd ../verification/lab_sea/matlab +Use matlab script lookat_exp1.m to compare the output +of exp1 with that from release1_patch5 sea-ice code: + cd ../../../verification/lab_sea/matlab matlab lookat_exp1 + Instructions for running Experiment 2 ===================================== This is a 1-cpu test of the LSR solver. The solution is compared to that of experiment 1, which used the ADI solver. -1-CPU executable from experiment 1 is required. -To run: - cd ../exe - cp ../verification/lab_sea/input/* . +To run Experiment 2: + cd ../../../verification/lab_sea/input ln -sf data.10hours data ln -sf data.seaice.lsr data.seaice - mitgcmuv1 >&! output.txt + mitgcmuv_1 >&! output.txt mkdir exp2 mv *tave.0000000010.data exp2 -Use the matlab script lookat_exp2.m to compare +Use matlab script lookat_exp2.m to compare the output of exp2 to that of exp1: - cd ../verification/lab_sea/matlab + cd ../../../verification/lab_sea/matlab matlab lookat_exp2 + Instructions for running Experiment 3 ===================================== This is a test of periodic boundary conditions for LSR and ADI solvers. The domain has a flat bottom and is periodic both in the x and the y directions. -All forcing files are null or constant -(u10m = v10m = 5 m/s). - -1-CPU executable from experiment 1 is required. +All forcing files are null or constant (u10m = v10m = 5 m/s). -To run: - cd ../exe - cp ../verification/lab_sea/input/* . +To run Experiment 3: + cd ../../../verification/lab_sea/input ln -sf data.1hour data ln -sf data.seaice.testadi data.seaice - mitgcmuv1 >&! output.txt + mitgcmuv_1 >&! output.txt mkdir exp3a mv *tave.0000000001.data exp3a ln -sf data.seaice.testlsr data.seaice - mitgcmuv1 >&! output.txt + mitgcmuv_1 >&! output.txt mkdir exp3b mv *tave.0000000001.data exp3b -Use the matlab script lookat_exp3.m to compare +Use matlab script lookat_exp3.m to compare the output of exp2 to that of exp1: - cd ../verification/lab_sea/matlab + cd ../../../verification/lab_sea/matlab matlab lookat_exp3 @@ -123,37 +156,24 @@ solver are unable to handle periodic domains and therefore that they cannot be "correctly" parallelized. + Instructions for running Experiment 4 ===================================== This is a 2-cpu, 10-hour integration used to test tile edges for sea-ice dynamic solvers. -To configure and compile the code: - cd ../bin - rm -rf *.f - rm -rf *.o - ln -sf ../verification/lab_sea/code/SIZE_2x1.h SIZE.h - ln -sf ../verification/lab_sea/code/CPP_OPTIONS.h . - ln -sf ../verification/lab_sea/code/CPP_EEOPTIONS_MPI.h CPP_EEOPTIONS.h - ../tools/genmake -mpi -makefile - ( on alhena use: ../tools/genmake -mpi -platform=o2k -makefile ) - make depend - make - -To run: - cd ../exe - cp ../verification/lab_sea/input/* . +To run Experiment 4: + cd ../../../verification/lab_sea/input ln -sf data.10hours data ln -sf data.seaice.adi data.seaice - mv mitgcmuv mitgcmuv_2x1 mpirun -np 2 mitgcmuv_2x1 mkdir exp4 mv *tave.0000000010.data exp4 Use the matlab script lookat_exp4.m to compare the 2-cpu output to that of exp1: - cd ../verification/lab_sea/matlab + cd ../../../verification/lab_sea/matlab matlab lookat_exp4 @@ -169,27 +189,25 @@ ===================================== This is a 2-cpu, 2-year, test integration. It illustrates -convention used for forcing data files by seaice_get_forcing.F. +convention used by seaice_get_forcing.F for multi-year forcing. -To run: - cd ../exe - cp ../verification/lab_sea/input/* . - cp eedata_mpi eedata - ln -sf data.2years data - ln -sf data.seaice.adi data.seaice - ln -sf evap.labsea1979 evap.labsea1980 - ln -sf flo.labsea1979 flo.labsea1980 - ln -sf fsh.labsea1979 fsh.labsea1980 +To run Experiment 5: + cd ../../../verification/lab_sea/input + ln -sf data.2years data + ln -sf data.seaice.adi data.seaice + ln -sf evap.labsea1979 evap.labsea1980 + ln -sf flo.labsea1979 flo.labsea1980 + ln -sf fsh.labsea1979 fsh.labsea1980 ln -sf prate.labsea1979 prate.labsea1980 - ln -sf qa.labsea1979 qa.labsea1980 - ln -sf tair.labsea1979 tair.labsea1980 - ln -sf u10m.labsea79 u10m.labsea80 - ln -sf v10m.labsea79 v10m.labsea80 + ln -sf qa.labsea1979 qa.labsea1980 + ln -sf tair.labsea1979 tair.labsea1980 + ln -sf u10m.labsea79 u10m.labsea80 + ln -sf v10m.labsea79 v10m.labsea80 mpirun -np 2 mitgcmuv_2x1 -Use the matlab script lookat_exp3.m to compare +Use the matlab script lookat_exp5.m to compare the 2-cpu output to SMMR-SSM/I data: - cd ../verification/lab_sea/matlab + cd ../../../verification/lab_sea/matlab matlab lookat_exp5 @@ -203,19 +221,38 @@ This is a 1-cpu test of sea-ice thermodynamics (no dynamics). The solution is compared to that of experiment 1. -1-CPU executable from experiment 1 is required. -To run: - cd ../exe - cp ../verification/lab_sea/input/* . +To run Experiment 6: + cd ../../../verification/lab_sea/input ln -sf data.10hours data ln -sf data.seaice.nodynamics data.seaice - mitgcmuv1 >&! output.txt + mitgcmuv_1 >&! output.txt mkdir exp6 mv *tave.0000000010.data exp6 Use the matlab script lookat_exp6.m to compare -the output of exp2 to that of exp1: +the output of exp6 to that of exp1: cd ../verification/lab_sea/matlab matlab lookat_exp6 + +Instructions for running Experiment 7 +===================================== + +This is a 2-cpu, 10-hour integration used to test +tile edges for sea-ice thermodynamics (no dynamics). +2-CPU executable from experiment 4 is required. + +To run Experiment 7: + cd ../../../verification/lab_sea/input + ln -sf data.10hours data + ln -sf data.seaice.nodynamics data.seaice + mpirun -np 2 mitgcmuv_2x1 + mkdir exp7 + mv *tave.0000000010.data exp7 + +Use the matlab script lookat_exp7.m to compare +the output of exp7 to that of exp6: + cd ../verification/lab_sea/matlab + matlab + lookat_exp7