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

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

  ViewVC Help
Powered by ViewVC 1.1.22