| 1 |
dimitri |
1.1 |
Seaice-only estimation in the Labrador Sea |
| 2 |
|
|
------------------------------------------ |
| 3 |
|
|
|
| 4 |
|
|
Notes: |
| 5 |
|
|
|
| 6 |
|
|
- The offline code is enabled during compilation with: |
| 7 |
|
|
ALLOW_BULK_OFFLINE in EXF_OPTIONS.h |
| 8 |
|
|
|
| 9 |
|
|
- At runtime turn off time-stepping in data PARM01 using: |
| 10 |
|
|
saltStepping = .FALSE., |
| 11 |
|
|
tempStepping = .FALSE., |
| 12 |
|
|
momStepping = .FALSE., |
| 13 |
|
|
|
| 14 |
|
|
- specify SST in data.exf using: |
| 15 |
|
|
climsstfile |
| 16 |
|
|
climsststartdate1 |
| 17 |
|
|
climsststartdate2 |
| 18 |
|
|
climsstperiod |
| 19 |
|
|
|
| 20 |
|
|
- and turn off surface relaxation to avoid biasing output diagnostics: |
| 21 |
|
|
climsstTauRelax = 0.0, |
| 22 |
|
|
|
| 23 |
|
|
============== |
| 24 |
|
|
|
| 25 |
|
|
09-Sep-2005 |
| 26 |
|
|
heimbach@mit.edu, ifenty@mit.edu, menemenlis@jpl.nasa.gov |
| 27 |
|
|
|
| 28 |
|
|
This is a 2x2 degree configuration of a seaice-only model |
| 29 |
|
|
in the Labrador Sea (Nx*Ny*Nz = 20*16*23). |
| 30 |
|
|
The seaice model is forced by monthly-mean atmospheric state. |
| 31 |
|
|
The lower boundary condition is SST, also provided as monthly-mean |
| 32 |
|
|
fields (rather than being computed by an ocean component). |
| 33 |
|
|
In its current form the seaice model is thermodynamic-only, i.e. |
| 34 |
|
|
#undef SEAICE_ALLOW_DYNAMICS |
| 35 |
|
|
The estimation problem consists of a least-squares fit of |
| 36 |
|
|
daily-mean modeled vs. observed seaice fractional area. |
| 37 |
|
|
Observations are from satellite-borne sounding microwave radiometers. |
| 38 |
|
|
|
| 39 |
|
|
The setup consists of 2 parts: |
| 40 |
|
|
1. the forward/adjoint model component which computes the gradient of |
| 41 |
|
|
the model vs. data mistif costfunction w.r.t. to the time-varying |
| 42 |
|
|
atmospheric state. |
| 43 |
|
|
2. the optimization/linesearch routine that uses the gradient information |
| 44 |
|
|
to provide an improved guess of the control vector. |
| 45 |
|
|
|
| 46 |
|
|
Instructions to configure: |
| 47 |
|
|
|
| 48 |
|
|
0. Preparation |
| 49 |
|
|
-------------- |
| 50 |
|
|
# from model base dir., e.g. MITgcm/ |
| 51 |
|
|
set basedir = `pwd` |
| 52 |
|
|
cd ${basedir}/verification/lab_sea/ |
| 53 |
|
|
mkdir exe |
| 54 |
|
|
mkdir exe/optim |
| 55 |
|
|
|
| 56 |
|
|
1. forward/adjoint model component |
| 57 |
|
|
---------------------------------- |
| 58 |
|
|
cd ${basedir}/verification/lab_sea/build/ |
| 59 |
|
|
../../../tools/genmake2 -mods ../code_ad_seaice_only |
| 60 |
|
|
make depend |
| 61 |
|
|
make adall |
| 62 |
|
|
|
| 63 |
|
|
2. optimization/linesearch routines |
| 64 |
|
|
----------------------------------- |
| 65 |
|
|
# This part needs more attention: |
| 66 |
|
|
# Compiler options in the Makefile are hard-coded, |
| 67 |
|
|
# make sure you choose the right ones for your platform |
| 68 |
|
|
# |
| 69 |
|
|
# Assume you are in model base dir., e.g. MITgcm/ |
| 70 |
|
|
# |
| 71 |
|
|
# A: lsopt |
| 72 |
|
|
# -------- |
| 73 |
|
|
cd ${basedir}/lsopt/ |
| 74 |
|
|
# edit Makefile to choose right compiler |
| 75 |
|
|
make |
| 76 |
|
|
# |
| 77 |
|
|
# B: optim |
| 78 |
|
|
# -------- |
| 79 |
|
|
cd ${basedir}/optim/ |
| 80 |
|
|
# Makefile in ${basedir}/optim/ needs 4 adjustments: |
| 81 |
|
|
# 1: -DMAX_INDEPEND=1000000 |
| 82 |
|
|
# make sure this number is >= number of control elements |
| 83 |
|
|
# 2: Make sure you've chosen the right compiler for your platform |
| 84 |
|
|
# 3: Make sure you've chosen the right INCLUDEDIRS for the header files, |
| 85 |
|
|
# in this case it is |
| 86 |
|
|
# -I../verification/lab_sea/build/ |
| 87 |
|
|
# 4: Make sure you've got the right set of BLAS libraries |
| 88 |
|
|
# some are provided in lsopt/ |
| 89 |
|
|
# See the README file in lsopt/ on how to get platform-optimized |
| 90 |
|
|
# BLAS libraries, and how to best install them. |
| 91 |
|
|
# If you're done with all these, just type |
| 92 |
|
|
make |
| 93 |
|
|
# |
| 94 |
|
|
# C: move executable and parameter files to executable directory |
| 95 |
|
|
# ------- |
| 96 |
|
|
cp optim.x ../verification/lab_sea/exe/optim/. |
| 97 |
|
|
cp ../lsopt/data.ecco ../lsopt/data.ctrl ../verification/lab_sea/exe/optim/. |
| 98 |
|
|
|
| 99 |
|
|
3. Run state estimation |
| 100 |
|
|
----------------------- |
| 101 |
|
|
cd ${basedir}/verification/lab_sea/exe/optim |
| 102 |
|
|
ln -s ../data.optim . |
| 103 |
|
|
cd ${basedir}/verification/lab_sea/exe |
| 104 |
|
|
ln -s ../build/mitgcmuv_ad . |
| 105 |
|
|
ln -s ../input_ad_seaice_only/* . |
| 106 |
|
|
ln -s ../input/*.labsea1979 . |
| 107 |
|
|
# |
| 108 |
|
|
./run_estim.csh & |