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

Diff of /MITgcm/verification/offline_exf_seaice/README

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

revision 1.1 by dimitri, Wed Feb 15 04:39:26 2012 UTC revision 1.2 by jmc, Sat Mar 30 15:07:23 2013 UTC
# Line 1  Line 1 
1  Seaice-only estimation in the Labrador Sea  Seaice-only verification experiment in idealized periodic channel
2  ------------------------------------------  -----------------------------------------------------------------
   
 Notes:  
   
 - The offline code is enabled during compilation with:  
   ALLOW_BULK_OFFLINE in EXF_OPTIONS.h  
   
 - At runtime turn off time-stepping in data PARM01 using:  
   saltStepping = .FALSE.,  
   tempStepping = .FALSE.,  
   momStepping  = .FALSE.,  
   
 - specify SST in data.exf using:  
   climsstfile  
   climsststartdate1  
   climsststartdate2  
   climsstperiod  
   
 - and turn off surface relaxation to avoid biasing output diagnostics:  
   climsstTauRelax = 0.0,  
   
 ==============  
   
 09-Sep-2005  
 heimbach@mit.edu, ifenty@mit.edu, menemenlis@jpl.nasa.gov  
   
 This is a 2x2 degree configuration of a seaice-only model  
 in the Labrador Sea (Nx*Ny*Nz = 20*16*23).  
 The seaice model is forced by monthly-mean atmospheric state.  
 The lower boundary condition is SST, also provided as monthly-mean  
 fields (rather than being computed by an ocean component).  
 In its current form the seaice model is thermodynamic-only, i.e.  
 #undef SEAICE_ALLOW_DYNAMICS  
 The estimation problem consists of a least-squares fit of  
 daily-mean modeled vs. observed seaice fractional area.  
 Observations are from satellite-borne sounding microwave radiometers.  
   
 The setup consists of 2 parts:  
 1. the forward/adjoint model component which computes the gradient of  
    the model vs. data mistif costfunction w.r.t. to the time-varying  
    atmospheric state.  
 2. the optimization/linesearch routine that uses the gradient information  
    to provide an improved guess of the control vector.  
   
 Instructions to configure:  
   
 0. Preparation  
 --------------  
 # from model base dir., e.g. MITgcm/  
 set basedir = `pwd`  
 cd ${basedir}/verification/lab_sea/  
 mkdir exe  
 mkdir exe/optim  
   
 1. forward/adjoint model component  
 ----------------------------------  
 cd ${basedir}/verification/lab_sea/build/  
 ../../../tools/genmake2 -mods ../code_ad_seaice_only  
 make depend  
 make adall  
   
 2. optimization/linesearch routines  
 -----------------------------------  
 # This part needs more attention:  
 # Compiler options in the Makefile are hard-coded,  
 # make sure you choose the right ones for your platform  
 #  
 # Assume you are in model base dir., e.g. MITgcm/  
 #  
 # A: lsopt  
 # --------  
 cd ${basedir}/lsopt/  
 # edit Makefile to choose right compiler  
 make  
 #  
 # B: optim  
 # --------  
 cd ${basedir}/optim/  
 # Makefile in ${basedir}/optim/ needs 4 adjustments:  
 # 1: -DMAX_INDEPEND=1000000  
 #    make sure this number is >= number of control elements  
 # 2: Make sure you've chosen the right compiler for your platform  
 # 3: Make sure you've chosen the right INCLUDEDIRS for the header files,  
 #    in this case it is  
 #    -I../verification/lab_sea/build/  
 # 4: Make sure you've got the right set of BLAS libraries  
 #    some are provided in lsopt/  
 #    See the README file in lsopt/ on how to get platform-optimized  
 #    BLAS libraries, and how to best install them.  
 # If you're done with all these, just type  
 make  
 #  
 # C: move executable and parameter files to executable directory  
 # -------  
 cp optim.x ../verification/lab_sea/exe/optim/.  
 cp ../lsopt/data.ecco ../lsopt/data.ctrl ../verification/lab_sea/exe/optim/.  
   
 3. Run state estimation  
 -----------------------  
 cd ${basedir}/verification/lab_sea/exe/optim  
 ln -s ../data.optim .  
 cd ${basedir}/verification/lab_sea/exe  
 ln -s ../build/mitgcmuv_ad .  
 ln -s ../input_ad_seaice_only/* .  
 ln -s ../input/*.labsea1979 .  
 #  
 ./run_estim.csh &  
3    
4    1) main forward experiment (code, input)
5    
6      Re-entrant zonally periodic channel (80x42 grid points) with just level (Nr=1)
7       uniform resolution (5.km, 10m), solid Southern boundary with triangular shape
8       coastline ("bathy_3c.bin")
9    
10      Use seaice (dynamics & thermodynamics from pkg/thsice) with EXF (see data.pkg)
11       with initial ice thickness of 0.2 m (but no snow)
12       (thSIceThick_InitFile='const+20.bin', in "input/data.ice")
13      Initial seaice concentration is 100 % everywhere
14       (thSIceFract_InitFile='const100.bin', in "input/data.ice")
15      and seaice is initially at rest.
16    
17      At runtime turn off time-stepping in 'data', PARM01, using:
18        momStepping  = .FALSE.,
19        saltStepping = .FALSE.,
20        tempAdvection=.FALSE.,
21      And just keep surface temp relaxation (tauRelax = 1 month) toward fixed SST:
22       in data.exf :
23      > climsstperiod      = 0.0,
24      > climsstTauRelax    = 2592000.,
25      >  climsstfile       = 'tocn.bin',
26    
27     Forcing:
28      None of the forcing vary with time; Most of the input files have been
29       generated using matlab script "input/gendata.m".
30      SST relaxation field is uniform in X, parabolic function of Y with
31       maximum close to Southern boundary.
32    
33      Atmospheric air temp is uniform in Y, and only vary with X (~sin(2.pi.x/Lx))
34       with an amplitude of 4.K ('tair_4x.bin');
35      Uses constant Relative Humidity (70%, file 'qa70_4x.bin')
36      constant and uniform downward shortwave (100.W/m2, 'dsw_100.bin'),
37                           downward longwave (250.W/m^2, 'dlw_250.bin'),
38                           zonal wind (10.m/s, 'windx.bin'),
39      no meridional wind, no precip.
40    
41      Ocean surface currents comes from a 3 levels ocean-only run (without seaice)
42       using the same wind forcing (uVel_3c0.bin, vVel_3c0.bin) (matlab script:
43      "input/getdata.m")
44    
45      Two matlab scripts ("input/grph_res.m" and "input/grph_diag.m")
46       are provided to make some basic plots (snap-shot and time-averaged
47       diagnostics).
48    
49    2) other (secondary) experiments (using the same executable)
50    
51     a) seaice-dynamics only with LSR solver (input.dyn_lsr/)
52      use same forcing as main forward experiment,
53      ( link input files from "input.dyn_lsr/" dir 1rst, then from "input/" dir )
54      but does not use at all pkg/thsice (advect pkg/seaice properties using
55       pkg/seaice advection S/R.); turn off seaice thermodynamics
56      (usePW79thermodynamics=.FALSE., in input.dyn_lsr/data.seaice).
57    
58     b) seaice-dynamics only with JNFK solver (input.dyn_jfnk/)
59      use same forcing as main forward experiment,
60      ( link input files from "input.dyn_jfnk/" dir 1rst, then from "input/" dir )
61      turn off seaice thermodynamics (thSIce_skipThermo=.TRUE., in file
62       "input.dyn_jfnk/data.ice") and advect pkg/thsice properties using
63       pkg/thsice advection S/R.
64    
65     c) seaice-thermodynamics only from pkg/seaice (input.thermo/)
66      use same forcing as main forward experiment,
67      ( link input files from "input.thermo/" dir 1rst, then from "input/" dir )
68      Except a different bathymetry (no triangular shape coast line in the South,
69       just a simple channel of constant width, with constant and uniform
70       zonal current of 0.2 m/s):
71       in "input.thermo/data":
72        bathyFile = 'channel.bin',
73        uVelInitFile    = 'const+20.bin',
74        vVelInitFile    = 'const_00.bin',
75      And use different initial seaice concentration from the main forward experiment:
76       (in "input.thermo/data.seaice", AreaFile = 'ice0_area.bin',
77                                   and HeffFile = 'ice0_heff.bin',)
78       100 % everywhere except in the 1rst and last 2 rows: 0., 10.% in the South
79       and 1.%, 0. in the North:
80      Turn off seaice dynamics (SEAICEuseDYNAMICS =.FALSE., in
81       "input.thermo/data.seaice") which implies no advection (zero ice velocity).
82    
83     d) seaice-thermodynamics only from pkg/thsice (input.thsice/)
84      use same forcing as main forward experiment,
85      ( link input files from "input.thsice/" dir 1rst, then from "input/" dir )
86      Except for bathymetry and initial seaice concentration which are identical
87       to the one used in input.thermo/ :
88       (thSIceFract_InitFile='ice0_area.bin', in "input.thsice/data.ice")
89      No seaice dynamics and no seaice advection, so that none of pkg/seaice S/R
90       are used (useSEAICE = .TRUE., commented out in "input.thsice/data.pkg"),
91    
92    3) main adjoint experiment (code_ad, input_ad)
93      Use similar forward set-up as "input.thermo/".
94       (to be completed ...)

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

  ViewVC Help
Powered by ViewVC 1.1.22