/[MITgcm]/MITgcm/pkg/ggl90/ggl90_readparms.F
ViewVC logotype

Diff of /MITgcm/pkg/ggl90/ggl90_readparms.F

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

revision 1.1 by mlosch, Thu Sep 16 11:27:18 2004 UTC revision 1.10 by dfer, Fri Jan 30 02:23:56 2009 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4  #include "GGL90_OPTIONS.h"  #include "GGL90_OPTIONS.h"
5    
6        SUBROUTINE GGL90_READPARMS( myThid )        SUBROUTINE GGL90_READPARMS( myThid )
# Line 28  C     errIO       - IO error flag Line 29  C     errIO       - IO error flag
29  C     iUnit       - Work variable for IO unit number  C     iUnit       - Work variable for IO unit number
30    
31        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
32        INTEGER errIO, iUnit        INTEGER errIO, iUnit, iL
33    
34          INTEGER  ILNBLNK
35          EXTERNAL ILNBLNK
36    
37  C--   GGL90 vertical mixing parameters  C--   GGL90 vertical mixing parameters
38        NAMELIST /GGL90_PARM01/        NAMELIST /GGL90_PARM01/
39       &     GGL90dumpFreq, GGL90taveFreq,       &     GGL90dumpFreq, GGL90taveFreq,
40         &     GGL90diffTKEh,
41       &     GGL90mixingMaps, GGL90writeState,       &     GGL90mixingMaps, GGL90writeState,
42       &     GGL90ck, GGL90ceps, GGL90alpha, GGL90m2,       &     GGL90ck, GGL90ceps, GGL90alpha, GGL90m2,
43       &     GGL90TKEmin, GGL90TKEbottom,       &     GGL90TKEmin, GGL90TKEsurfMin, GGL90TKEbottom,
44       &     GGL90mixingLengthMin, GGL90viscMax, GGL90diffMax,       &     GGL90mixingLengthMin, mxlMaxFlag,
45       &     GGL90TKEFile       &     GGL90viscMax, GGL90diffMax, GGL90TKEFile
46        _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
47    
48        WRITE(msgBuf,'(A)') ' GGL90_READPARMS: opening data.ggl90'        WRITE(msgBuf,'(A)') ' GGL90_READPARMS: opening data.ggl90'
# Line 58  C--   set default TKE vertical mixing pa Line 63  C--   set default TKE vertical mixing pa
63        GGL90ck              = 0.1 _d 0        GGL90ck              = 0.1 _d 0
64        GGL90ceps            = 0.7 _d 0        GGL90ceps            = 0.7 _d 0
65        GGL90alpha           = 1.0 _d 0        GGL90alpha           = 1.0 _d 0
66        GGL90m2              = 3.0 _d 0  C     Blanke and Delecluse (1993, JPO) use
67          GGL90m2              = 3.75 _d 0
68        GGL90TKEmin          = 1.0 _d -11        GGL90TKEmin          = 1.0 _d -11
69    C     Blanke and Delecluse (1993, JPO) use
70          GGL90TKEsurfMin      = 1.0 _d -04
71        GGL90TKEbottom       = UNSET_RL        GGL90TKEbottom       = UNSET_RL
72        GGL90viscMax         = 1.0 _d 0        GGL90viscMax         = 1. _d 2
73        GGL90diffMax         = 1.0 _d 1        GGL90diffMax         = 1. _d 2
74          GGL90diffTKEh        = 0.0 _d 0
75        GGL90mixingLengthMin = 1.0 _d -08        GGL90mixingLengthMin = 1.0 _d -08
76          mxlMaxFlag           = 0
77        GGL90TKEFile         = ' '        GGL90TKEFile         = ' '
78    
79  C-----------------------------------------------------------------------  C-----------------------------------------------------------------------
# Line 97  C      CALL MODELDATA_EXAMPLE( myThid ) Line 107  C      CALL MODELDATA_EXAMPLE( myThid )
107        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
108       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
109    
       _END_MASTER(myThid)  
   
 C--   Everyone else must wait for the parameters to be loaded  
       _BARRIER  
   
110  C Now set-up any remaining parameters that result from the input parameters  C Now set-up any remaining parameters that result from the input parameters
111        IF ( GGL90TKEbottom .EQ. UNSET_RL ) THEN        IF ( GGL90TKEbottom .EQ. UNSET_RL ) THEN
112         GGL90TKEbottom = GGL90TKEmin         GGL90TKEbottom = GGL90TKEmin
# Line 135  C Now set-up any remaining parameters th Line 140  C Now set-up any remaining parameters th
140         STOP 'ABNORMAL END: S/R GGL90_READPARMS'         STOP 'ABNORMAL END: S/R GGL90_READPARMS'
141        ENDIF        ENDIF
142    
143    C--   print TKE vertical mixing parameters to stdout for better debugging
144          WRITE(msgBuf,'(A)')
145         &'// ======================================================='
146          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
147         &                    SQUEEZE_RIGHT , 1)
148          WRITE(msgBuf,'(A)') '// GGL90 configuration'
149          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
150         &                    SQUEEZE_RIGHT , 1)
151          WRITE(msgBuf,'(A)')
152         &'// ======================================================='
153          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
154         &  SQUEEZE_RIGHT , 1)
155    
156          CALL WRITE_0D_R8( GGL90dumpFreq, INDEX_NONE,'GGL90dumpFreq =',
157         &'   /* GGL90 state write out interval ( s ). */')
158          CALL WRITE_0D_R8( GGL90taveFreq, INDEX_NONE,'GGL90taveFreq =',
159         &'   /* GGL90 averaging interval ( s ). */')
160          CALL WRITE_0D_L(GGL90mixingMaps,INDEX_NONE,
161         &     'GGL90mixingMAPS =', '   /* GGL90 IO flag. */')
162          CALL WRITE_0D_L(GGL90writeState,INDEX_NONE,
163         &     'GGL90writeState =', '   /* GGL90 IO flag. */')
164          CALL WRITE_0D_R8( GGL90ck, INDEX_NONE,'GGL90ck =',
165         &'   /* GGL90 viscosity parameter. */')
166          CALL WRITE_0D_R8( GGL90ceps, INDEX_NONE,'GGL90ceps =',
167         &'   /* GGL90 dissipation parameter. */')
168          CALL WRITE_0D_R8( GGL90alpha, INDEX_NONE,'GGL90alpha =',
169         &'   /* GGL90 TKE diffusivity parameter. */')
170          CALL WRITE_0D_R8( GGL90m2, INDEX_NONE,'GGL90m2 =',
171         &'   /* GGL90 wind stress to vertical stress ratio. */')
172          CALL WRITE_0D_R8( GGL90TKEmin, INDEX_NONE,'GGL90TKEmin =',
173         &'   /* GGL90 minimum kinetic energy ( m^2/s^2 ). */')
174          CALL WRITE_0D_R8( GGL90TKEsurfMin, INDEX_NONE,
175         &     'GGL90TKEsurfMin =',
176         &'   /* GGL90 minimum surface kinetic energy ( m^2/s^2 ). */')
177          CALL WRITE_0D_R8( GGL90TKEbottom, INDEX_NONE,
178         &     'GGL90TKEbottom =',
179         &     '   /* GGL90 bottom kinetic energy ( m^2/s^2 ). */')
180          CALL WRITE_0D_R8( GGL90viscMax, INDEX_NONE,'GGL90viscMax =',
181         &     '   /* GGL90 upper limit for viscosity ( m^2/s ). */')
182          CALL WRITE_0D_R8( GGL90diffMax, INDEX_NONE,'GGL90diffMax =',
183         &     '   /* GGL90 upper limit for diffusivity ( m^2/s ). */')
184          CALL WRITE_0D_R8( GGL90diffTKEh, INDEX_NONE,'GGL90diffTKEh =',
185         &     '   /* GGL90 horizontal diffusivity for TKE ( m^2/s ). */')
186          CALL WRITE_0D_R8( GGL90mixingLengthMin, INDEX_NONE,
187         &     'GGL90mixingLengthMin =',
188         &     '   /* GGL90 minimum mixing length ( m ). */')
189          CALL WRITE_0D_I(mxlMaxFlag, INDEX_NONE, 'mxlMaxFlag =',
190         &     '   /* Flag for limiting mixing-length method */')
191          iL = MAX_LEN_MBUF - 22
192          iL = MIN( iL, MAX(ILNBLNK(GGL90TKEFile),1) )
193          WRITE(msgBuf,'(A,A)')'GGL90: GGL90TKEFile = ',GGL90TKEFile(1:iL)
194          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
195         &                    SQUEEZE_RIGHT , 1)
196    
197          WRITE(msgBuf,'(A)')
198         &'// ======================================================='
199          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
200         &                    SQUEEZE_RIGHT , 1)
201          WRITE(msgBuf,'(A)') '// End of GGL90 config. summary'
202          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
203         &                    SQUEEZE_RIGHT , 1)
204          WRITE(msgBuf,'(A)')
205         &'// ======================================================='
206          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
207         &  SQUEEZE_RIGHT , 1)
208          WRITE(msgBuf,'(A)') ' '
209          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
210         &  SQUEEZE_RIGHT , 1)
211    
212          _END_MASTER(myThid)
213    
214    C--   Everyone else must wait for the parameters to be loaded
215          _BARRIER
216    
217  #endif /* ALLOW_GGL90 */  #endif /* ALLOW_GGL90 */
218    
219        return        return

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

  ViewVC Help
Powered by ViewVC 1.1.22