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

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

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

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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.4.2

  ViewVC Help
Powered by ViewVC 1.1.22