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 & |