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