Seaice-only estimation in the Labrador Sea ------------------------------------------ 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 &