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