/[MITgcm]/MITgcm/pkg/exf/TODO.txt
ViewVC logotype

Annotation of /MITgcm/pkg/exf/TODO.txt

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (hide annotations) (download)
Tue Feb 18 05:33:54 2003 UTC (21 years, 3 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint50c_post, checkpoint50c_pre, checkpoint48i_post, checkpoint51, checkpoint50, checkpoint50d_post, checkpoint50b_pre, checkpoint51d_post, checkpoint48f_post, checkpoint48h_post, checkpoint51b_pre, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, checkpoint51b_post, checkpoint51c_post, checkpoint50g_post, checkpoint50h_post, checkpoint50e_pre, checkpoint50i_post, checkpoint50e_post, checkpoint50d_pre, checkpoint51e_post, checkpoint49, checkpoint48g_post, checkpoint50b_post, checkpoint51a_post
Changes since 1.2: +16 -13 lines
File MIME type: text/plain
Merging from release1_p12:
o Modifications for using pkg/exf with pkg/seaice
  - improved description of the various forcing configurations
  - added basic radiation bulk formulae to pkg/exf
  - units/sign fix for evap computation in exf_getffields.F
  - updated verification/global_with_exf/results/output.txt
o Added pkg/sbo for computing IERS Special Bureau for the Oceans
  (SBO) core products, including oceanic mass, center-of-mass,
  angular, and bottom pressure (see pkg/sbo/README.sbo).
o Lower bound for viscosity/diffusivity in pkg/kpp/kpp_routines.F
  to avoid negative values in shallow regions.
  - updated verification/natl_box/results/output.txt
  - updated verification/lab_sea/results/output.txt
o MPI gather, scatter: eesupp/src/gather_2d.F and scatter_2d.F
o Added useSingleCpuIO option (see PARAMS.h).
o Updated useSingleCpuIO option in mdsio_writefield.F to
  work with multi-field files, e.g., for single-file pickup.
o pkg/seaice:
  - bug fix in growth.F: QNET for no shortwave case
  - added HeffFile for specifying initial sea-ice thickness
  - changed SEAICE_EXTERNAL_FLUXES wind stress implementation
o Added missing /* */ to CPP comments in pkg/seaice, pkg/exf,
  kpp_transport_t.F, forward_step.F, and the_main_loop.F
o pkg/seaice:
  - adjoint-friendly modifications
  - added a SEAICE_WRITE_PICKUP at end of the_model_main.F

1 dimitri 1.2 c To Do:
2     c ------
3     c
4     c Selection of forcing fields
5     c
6 dimitri 1.3 c 1. Cyclic forcing should be available for each field type
7     c (surface forcing and relaxation to climatology).
8 dimitri 1.2 c
9 dimitri 1.3 c Cleaning package
10 dimitri 1.2 c
11 dimitri 1.3 c 1. Reduce number of subroutines.
12 dimitri 1.2 c
13 dimitri 1.3 c 2. - Separate routine for bulk formulae exf_bulk_formulae
14     c - Atmospheric control to exf_getsurfacefluxes
15     - Calling tree will look like this:
16     c exf_getforcing
17     c |-- exf_getclim
18     c |-- exf_getffields
19     c |-- exf_getsurfacefluxes
20     c |-- exf_bulk_formulae
21     c |-- exf_mapfields
22 dimitri 1.2 c
23     c Many assumptions that are made in the current version should, and
24     c can, be relaxed in later versions:
25     c
26     c - There is an inconsistency in the formulation of forcing variables
27     c defined on southern and western points on the C-grid, since the
28     c the atmospheric stability is calculated on center points of the
29 dimitri 1.3 c C-grid. Also need to make sure that with options EXFwindOnBgrid
30     c and/or SEAICEwindOnCgrid set, wind and wind stress is interpolated
31     c to correct grid location.
32 dimitri 1.2 c
33     c - gridded data sets --> general data set (other grids, inter-
34     c polation in space)
35     c
36     c - equidistancy in time --> general data set (non-equidistant in
37     c time)
38     c
39     c - climatologies --> arbitrary subinterval of a year, not
40     c just monthly values.
41     c
42     c - relaxation --> relaxation could be done to a given
43     c data set over the model's integration
44     c time. This would generalise the clima-
45     c tology block. One could have 'cyclic'
46     c and 'non-cyclic' fields. In the first
47     c case, the cycle length has to be spe-
48     c cified ('monthly','yearly','period') as
49     c well as the start of the cycle ( irec=1
50     c corresponds to a certain calendar date).
51     c The second case can be treated analog-
52     c ously.
53     c
54     c
55     c Notes regarding more complete implementation of relaxation
56     c ==========================================================
57     c
58     c Modifications in subroutine
59     c INITIALISE_FIXED (from c27 on):
60     c -------------------------------
61     c .
62     c .
63     c .
64     c C-- Set coriolis operators
65     c CALL INI_CORI( myThid )
66     c
67     c#ifdef INCLUDE_LAT_CIRC_FFT_FILTER_CODE
68     cC-- Latitude circle filter initialisation
69     c CALL FILTER_LATCIRC_FFT_INIT(myThid)
70     c _BARRIER
71     c#endif
72     c
73     c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
74     c
75     c call exf_Init( mythid )
76     c
77     c #ifdef ALLOW_CLIMTEMP_RELAXATION
78     c c-- Set the relaxation coefficient to the temperature climatology.
79     c call exf_GetTempClimLambda(
80     c I mythid
81     c & )
82     c _BARRIER
83     c #endif
84     c #ifdef ALLOW_CLIMSALT_RELAXATION
85     c c-- Set the relaxation coefficient to the salinity climatology.
86     c call exf_GetSaltClimLambda(
87     c I mythid
88     c & )
89     c _BARRIER
90     c #endif
91     c #ifdef ALLOW_CLIMSST_RELAXATION
92     c c-- Set the relaxation coefficient to the sst climatology.
93     c call exf_GetSSTClimLambda(
94     c I mythid
95     c & )
96     c _BARRIER
97     c #endif
98     c #ifdef ALLOW_CLIMSSS_RELAXATION
99     c c-- Set the relaxation coefficient to the sss climatology.
100     c call exf_GetSSSClimLambda(
101     c I mythid
102     c & )
103     c _BARRIER
104     c #endif
105     c #endif
106     c
107     c c-- Finally, summarise the model cofiguration.
108     c CALL CONFIG_SUMMARY( myThid )
109     c .
110     c .
111     c .
112     c
113     c
114     c external_forcing.F - Add relaxation to climatological fields.
115     c
116     c
117     c Modifications in subroutine
118     c EXTERNAL_FORCING_T (taken from c25):
119     c ------------------------------------
120     c .
121     c .
122     c .
123     c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
124     c #include "exf_clim.h"
125     c #endif
126     c .
127     c .
128     c .
129     c C-- Forcing term
130     c C Add heat in top-layer
131     c IF ( kLev .EQ. 1 ) THEN
132     c DO j=jMin,jMax
133     c DO i=iMin,iMax
134     c gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
135     c & +maskC(i,j)*(
136     c & -lambdaThetaClimRelax*(theta(i,j,kLev,bi,bj)-SST(i,j,bi,bj))
137     c & -Qnet(i,j,bi,bj)*recip_Cp*recip_rhoNil*recip_dRf(kLev) )
138     c
139     c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
140     c #ifdef ALLOW_CLIMSST_RELAXATION
141     c gt(i,j,klev,bi,bj) = gt(i,j,klev,bi,bj) -
142     c & maskc(i,j)*lambda_climsst(i,j,bi,bj)*
143     c & ( theta(i,j,klev,bi,bj) -
144     c & climsst(i,j,bi,bj) )
145     c #endif
146     c #endif
147     c
148     c ENDDO
149     c ENDDO
150     c ENDIF
151     c
152     c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
153     c #ifdef ALLOW_CLIMTEMP_RELAXATION
154     c do j=jmin,jmax
155     c do i=imin,imax
156     c gt(i,j,klev,bi,bj) = gt(i,j,klev,bi,bj) -
157     c & maskc(i,j)*lambda_climtemp(i,j,klev,bi,bj)*
158     c & ( theta(i,j,klev,bi,bj) -
159     c & climtemp(i,j,klev,bi,bj) )
160     c enddo
161     c enddo
162     c #endif
163     c #endif
164     c .
165     c .
166     c .
167     c
168     c
169     c Modifications in subroutine
170     c EXTERNAL_FORCING_S (taken from c25):
171     c ------------------------------------
172     c .
173     c .
174     c .
175     c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
176     c #include "exf_clim.h"
177     c #endif
178     c .
179     c .
180     c .
181     c C-- Forcing term
182     c C Add fresh-water in top-layer
183     c IF ( kLev .EQ. 1 ) THEN
184     c DO j=jMin,jMax
185     c DO i=iMin,iMax
186     c gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
187     c & +maskC(i,j)*(
188     c & -lambdaSaltClimRelax*(salt(i,j,kLev,bi,bj)-SSS(i,j,bi,bj))
189     c #ifdef ALLOW_NATURAL_BCS
190     c & +EmPmR(i,j,bi,bj)*recip_dRf(1)*salt(i,j,kLev,bi,bj)
191     c #else
192     c & +EmPmR(i,j,bi,bj)*recip_dRf(1)*35.
193     c #endif
194     c & )
195     c
196     c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
197     c #ifdef ALLOW_CLIMSSS_RELAXATION
198     c gs(i,j,kLev,bi,bj) = gs(i,j,kLev,bi,bj) -
199     c & maskc(i,j)*lambda_climsss(i,j,bi,bj)*
200     c & ( salt(i,j,kLev,bi,bj) -
201     c & climsss(i,j,bi,bj) )
202     c #endif
203     c #endif
204     c
205     c ENDDO
206     c ENDDO
207     c ENDIF
208     c
209     c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
210     c #ifdef ALLOW_CLIMSALT_RELAXATION
211     c do j=jmin,jmax
212     c do i=imin,imax
213     c gs(i,j,klev,bi,bj) = gs(i,j,klev,bi,bj) -
214     c & maskc(i,j)*lambda_climsalt(i,j,klev,bi,bj)*
215     c & ( salt(i,j,klev,bi,bj) -
216     c & climsalt(i,j,klev,bi,bj) )
217     c enddo
218     c enddo
219     c #endif
220     c #endif
221     c .
222     c .
223     c .

  ViewVC Help
Powered by ViewVC 1.1.22