/[MITgcm]/MITgcm/model/src/config_summary.F
ViewVC logotype

Annotation of /MITgcm/model/src/config_summary.F

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


Revision 1.160 - (hide annotations) (download)
Thu Nov 2 17:57:40 2017 UTC (6 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66o, checkpoint66n, checkpoint66m, HEAD
Changes since 1.159: +23 -1 lines
new options 1) to account for true vertical distance (including hFac)
     in vertical viscous flux and diffusive flux ;
  2) to increase vertical mixing near surface and/or bottom where partial
     cell is too thin ;

1 jmc 1.160 C $Header: /u/gcmpack/MITgcm/model/src/config_summary.F,v 1.159 2017/10/04 20:34:23 jmc Exp $
2 cnh 1.26 C $Name: $
3 cnh 1.1
4 jmc 1.67 #include "PACKAGES_CONFIG.h"
5 cnh 1.18 #include "CPP_OPTIONS.h"
6 jmc 1.133 #ifdef ALLOW_EXCH2
7     # include "W2_OPTIONS.h"
8     #endif /* ALLOW_EXCH2 */
9 jmc 1.142 #ifdef ALLOW_MOM_COMMON
10     # include "MOM_COMMON_OPTIONS.h"
11     #endif
12 cnh 1.1
13 edhill 1.57 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
14 cnh 1.30 CBOP
15     C !ROUTINE: CONFIG_SUMMARY
16 edhill 1.57
17 cnh 1.30 C !INTERFACE:
18 cnh 1.1 SUBROUTINE CONFIG_SUMMARY( myThid )
19 edhill 1.57
20     C !DESCRIPTION:
21     C This routine summarizes the model parameter settings by writing a
22     C tabulated list of the kernel model configuration variables. It
23     C describes all the parameter settings in force and the meaning and
24     C units of those parameters. Individal packages report a similar
25     C table for each package using the same format as employed here. If
26     C parameters are missing or incorrectly described or dimensioned
27     C please contact <MITgcm-support@mitgcm.org>
28 cnh 1.30
29     C !USES:
30 adcroft 1.19 IMPLICIT NONE
31 cnh 1.1 #include "SIZE.h"
32     #include "EEPARAMS.h"
33     #include "PARAMS.h"
34 jmc 1.133 #ifdef ALLOW_EXCH2
35     # include "W2_EXCH2_SIZE.h"
36     # include "W2_EXCH2_TOPOLOGY.h"
37     #endif /* ALLOW_EXCH2 */
38 jmc 1.67 #include "EOS.h"
39     #include "GRID.h"
40 jmc 1.142 #ifdef ALLOW_MOM_COMMON
41     # include "MOM_VISC.h"
42     #endif
43 jmc 1.143 C- need to put SET_GRID in last position for module conversion with OpenAD
44     #include "SET_GRID.h"
45 edhill 1.60 #ifdef ALLOW_MNC
46     #include "MNC_PARAMS.h"
47     #endif
48 cnh 1.1
49 cnh 1.30 C !INPUT/OUTPUT PARAMETERS:
50 edhill 1.57 C myThid :: Number of this instance of CONFIG_SUMMARY
51 cnh 1.1 INTEGER myThid
52 edhill 1.57 CEOP
53 cnh 1.1
54 jmc 1.94 C !FUNCTIONS:
55     INTEGER ILNBLNK
56     EXTERNAL ILNBLNK
57    
58 cnh 1.30 C !LOCAL VARIABLES:
59     C msgBuf :: Temp. for building output string.
60 jmc 1.102 C rUnits :: vertical coordinate units
61 jmc 1.106 C ioUnit :: Temp. for fortran I/O unit
62 jmc 1.122 C i, k :: Loop counters.
63 cnh 1.1 CHARACTER*(MAX_LEN_MBUF) msgBuf
64 jmc 1.102 CHARACTER*2 rUnits
65 jmc 1.125 CHARACTER*10 endList
66 jmc 1.106 INTEGER ioUnit
67 jmc 1.122 INTEGER i, k
68 jmc 1.116 _RL bufRL(Nr+1)
69 jmc 1.117 INTEGER buffI(1)
70 cnh 1.26 INTEGER coordLine
71     INTEGER tileLine
72 jmc 1.133 INTEGER gridNx, gridNy
73 cnh 1.1
74     _BARRIER
75 cnh 1.5 _BEGIN_MASTER(myThid)
76 cnh 1.1
77 jmc 1.106 ioUnit = standardMessageUnit
78 jmc 1.102 rUnits = ' m'
79 jmc 1.125 endList = ' ; '
80 jmc 1.102 IF ( usingPCoords ) rUnits = 'Pa'
81 jmc 1.133 #ifdef ALLOW_EXCH2
82     gridNx = exch2_mydNx(1)
83     gridNy = exch2_mydNy(1)
84     #else /* ALLOW_EXCH2 */
85     gridNx = Nx
86     gridNy = Ny
87     #endif /* ALLOW_EXCH2 */
88 jmc 1.102
89 cnh 1.1 WRITE(msgBuf,'(A)')
90     &'// ======================================================='
91 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
92 cnh 1.1 WRITE(msgBuf,'(A)') '// Model configuration'
93 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
94 cnh 1.1 WRITE(msgBuf,'(A)')
95     &'// ======================================================='
96 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
97 cnh 1.5
98 cnh 1.6 WRITE(msgBuf,'(A)') '// '
99 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
100 jmc 1.92 WRITE(msgBuf,'(A)')
101 cnh 1.17 & '// "Physical" paramters ( PARM01 in namelist ) '
102 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
103 cnh 1.6 WRITE(msgBuf,'(A)') '// '
104 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
105 jmc 1.97 CALL WRITE_0D_C( buoyancyRelation, -1, INDEX_NONE,
106     & 'buoyancyRelation =', ' /* Type of relation to get Buoyancy */')
107 jmc 1.62 CALL WRITE_0D_L( fluidIsAir, INDEX_NONE,
108 jmc 1.124 & 'fluidIsAir =', ' /* fluid major constituent is Air */')
109 jmc 1.62 CALL WRITE_0D_L( fluidIsWater, INDEX_NONE,
110 jmc 1.124 & 'fluidIsWater =', ' /* fluid major constituent is Water */')
111 jmc 1.62 CALL WRITE_0D_L( usingPCoords, INDEX_NONE,
112     & 'usingPCoords =', ' /* use p (or p*) vertical coordinate */')
113     CALL WRITE_0D_L( usingZCoords, INDEX_NONE,
114     & 'usingZCoords =', ' /* use z (or z*) vertical coordinate */')
115 jmc 1.116 CALL WRITE_1D_RL( tRef, Nr, INDEX_K, 'tRef =',
116 jmc 1.124 & ' /* Reference temperature profile ( oC or K ) */')
117 jmc 1.116 CALL WRITE_1D_RL( sRef, Nr, INDEX_K, 'sRef =',
118 jmc 1.124 & ' /* Reference salinity profile ( psu ) */')
119 jmc 1.142 C- Horizontal viscosity parameters:
120     #ifdef ALLOW_MOM_COMMON
121     CALL WRITE_0D_L( useStrainTensionVisc, INDEX_NONE,
122     & 'useStrainTensionVisc=',
123     & ' /* Use StrainTension Form of Viscous Operator */')
124     CALL WRITE_0D_L( useVariableVisc, INDEX_NONE,
125 jmc 1.144 & 'useVariableVisc =', ' /* Use variable horizontal viscosity */')
126 jmc 1.142 CALL WRITE_0D_L( useHarmonicVisc, INDEX_NONE,
127 jmc 1.144 & 'useHarmonicVisc =', ' /* Use harmonic horizontal viscosity */')
128 jmc 1.142 CALL WRITE_0D_L( useBiharmonicVisc, INDEX_NONE,
129 jmc 1.144 & 'useBiharmonicVisc=', ' /* Use biharmonic horiz. viscosity */')
130     CALL WRITE_0D_L( useSmag3D, INDEX_NONE,
131     & 'useSmag3D =', ' /* Use isotropic 3-D Smagorinsky viscosity */')
132     IF ( useSmag3D )
133     & CALL WRITE_0D_RL( smag3D_coeff, INDEX_NONE, 'smag3D_coeff =',
134     & ' /* Smagorinsky 3-D coefficient (Cs^2) (-) */')
135 jmc 1.124 CALL WRITE_0D_RL( viscAh, INDEX_NONE, 'viscAh = ',
136 jmc 1.142 & ' /* Lateral harmonic viscosity ( m^2/s ) */')
137 jmc 1.92 IF ( viscAhD.NE.viscAh )
138 jmc 1.124 & CALL WRITE_0D_RL( viscAhD, INDEX_NONE, 'viscAhD = ',
139 jmc 1.142 & ' /* Lateral harmonic viscosity (Divergence)( m^2/s ) */')
140 jmc 1.92 IF ( viscAhZ.NE.viscAh )
141 jmc 1.124 & CALL WRITE_0D_RL( viscAhZ, INDEX_NONE, 'viscAhZ = ',
142 jmc 1.142 & ' /* Lateral harmonic viscosity (Vorticity) ( m^2/s ) */')
143     IF ( nonHydrostatic )
144     & CALL WRITE_0D_RL( viscAhW, INDEX_NONE, 'viscAhW = ',
145     & ' /* Lateral harmonic viscosity in W eq. ( m^2/s ) */')
146     IF ( useVariableVisc ) THEN
147     CALL WRITE_0D_RL( viscAhMax, INDEX_NONE, 'viscAhMax =',
148     & ' /* Maximum lateral harmonic viscosity ( m^2/s ) */')
149     CALL WRITE_0D_RL( viscAhGrid, INDEX_NONE, 'viscAhGrid =',
150     & ' /* Grid dependent lateral harmonic viscosity ( non-dim. ) */')
151     CALL WRITE_0D_L( useFullLeith, INDEX_NONE, 'useFullLeith =',
152 jmc 1.124 & ' /* Use Full Form of Leith Viscosity on/off flag*/')
153 jmc 1.142 CALL WRITE_0D_L( useAreaViscLength, INDEX_NONE,
154 jmc 1.124 & 'useAreaViscLength =',
155     & ' /* Use area for visc length instead of geom. mean*/')
156 jmc 1.142 CALL WRITE_0D_RL( viscC2leith, INDEX_NONE, 'viscC2leith =',
157 jmc 1.124 & ' /* Leith harmonic visc. factor (on grad(vort),non-dim.) */')
158 jmc 1.142 CALL WRITE_0D_RL( viscC2leithD, INDEX_NONE, 'viscC2leithD =',
159 jmc 1.124 & ' /* Leith harmonic viscosity factor (on grad(div),non-dim.)*/')
160 jmc 1.142 CALL WRITE_0D_RL( viscC2smag, INDEX_NONE, 'viscC2smag =',
161 jmc 1.124 & ' /* Smagorinsky harmonic viscosity factor (non-dim.) */')
162 jmc 1.142 ENDIF
163 jmc 1.124 CALL WRITE_0D_RL( viscA4, INDEX_NONE, 'viscA4 = ',
164     & ' /* Lateral biharmonic viscosity ( m^4/s ) */')
165 jmc 1.92 IF ( viscA4D.NE.viscA4 )
166 jmc 1.124 & CALL WRITE_0D_RL( viscA4D, INDEX_NONE, 'viscA4D = ',
167     & ' /* Lateral biharmonic viscosity (Divergence)( m^4/s ) */')
168 jmc 1.92 IF ( viscA4Z.NE.viscA4 )
169 jmc 1.124 & CALL WRITE_0D_RL( viscA4Z, INDEX_NONE, 'viscA4Z = ',
170     & ' /* Lateral biharmonic viscosity (Vorticity) ( m^4/s ) */')
171 jmc 1.142 IF ( nonHydrostatic )
172     & CALL WRITE_0D_RL( viscA4W, INDEX_NONE, 'viscA4W = ',
173     & ' /* Lateral biharmonic viscosity in W eq. ( m^2/s ) */')
174     IF ( useVariableVisc ) THEN
175     CALL WRITE_0D_RL( viscA4Max, INDEX_NONE, 'viscA4Max =',
176 jmc 1.124 & ' /* Maximum biharmonic viscosity ( m^2/s ) */')
177 jmc 1.142 CALL WRITE_0D_RL( viscA4Grid, INDEX_NONE, 'viscA4Grid =',
178 jmc 1.124 & ' /* Grid dependent biharmonic viscosity ( non-dim. ) */')
179 jmc 1.142 CALL WRITE_0D_RL( viscC4leith, INDEX_NONE,'viscC4leith =',
180 jmc 1.124 & ' /* Leith biharm viscosity factor (on grad(vort), non-dim.)*/')
181 jmc 1.142 CALL WRITE_0D_RL( viscC4leithD, INDEX_NONE,'viscC4leithD =',
182 jmc 1.124 & ' /* Leith biharm viscosity factor (on grad(div), non-dim.) */')
183 jmc 1.142 CALL WRITE_0D_RL( viscC4Smag, INDEX_NONE,'viscC4Smag =',
184 jmc 1.124 & ' /* Smagorinsky biharm viscosity factor (non-dim) */')
185 jmc 1.142 ENDIF
186 heimbach 1.22 CALL WRITE_0D_L( no_slip_sides, INDEX_NONE,
187 adcroft 1.20 & 'no_slip_sides =', ' /* Viscous BCs: No-slip sides */')
188 jmc 1.115 CALL WRITE_0D_RL( sideDragFactor, INDEX_NONE, 'sideDragFactor =',
189 jmc 1.81 & ' /* side-drag scaling factor (non-dim) */')
190 jmc 1.142 C- Vertical viscosity parameters:
191 jmc 1.118 CALL WRITE_1D_RL( viscArNr, Nr, INDEX_K, 'viscArNr =',
192     & ' /* vertical profile of vertical viscosity ('
193     & //rUnits//'^2/s )*/')
194 jmc 1.55 CALL WRITE_0D_L( no_slip_bottom, INDEX_NONE,
195     & 'no_slip_bottom =', ' /* Viscous BCs: No-slip bottom */')
196 jmc 1.148 CALL WRITE_0D_L( bottomVisc_pCell, INDEX_NONE,
197     & 'bottomVisc_pCell =', ' /* Partial-cell in bottom Visc. BC */')
198 jmc 1.115 CALL WRITE_0D_RL( bottomDragLinear, INDEX_NONE,
199 jmc 1.81 & 'bottomDragLinear =',
200 jmc 1.111 & ' /* linear bottom-drag coefficient ( m/s ) */')
201 jmc 1.115 CALL WRITE_0D_RL( bottomDragQuadratic, INDEX_NONE,
202 jmc 1.81 & 'bottomDragQuadratic =',
203 jmc 1.111 & ' /* quadratic bottom-drag coefficient (-) */')
204 jmc 1.148 CALL WRITE_0D_I( selectBotDragQuadr, INDEX_NONE,
205     & 'selectBotDragQuadr =',
206     & ' /* select quadratic bottom drag options */')
207 jmc 1.142 #endif /* ALLOW_MOM_COMMON */
208 jmc 1.115 CALL WRITE_0D_RL( diffKhT, INDEX_NONE,'diffKhT =',
209 cnh 1.5 &' /* Laplacian diffusion of heat laterally ( m^2/s ) */')
210 jmc 1.115 CALL WRITE_0D_RL( diffK4T, INDEX_NONE,'diffK4T =',
211 jmc 1.102 &' /* Biharmonic diffusion of heat laterally ( m^4/s ) */')
212 jmc 1.115 CALL WRITE_0D_RL( diffKhS, INDEX_NONE,'diffKhS =',
213 cnh 1.5 &' /* Laplacian diffusion of salt laterally ( m^2/s ) */')
214 jmc 1.115 CALL WRITE_0D_RL( diffK4S, INDEX_NONE,'diffK4S =',
215 jmc 1.102 &' /* Biharmonic diffusion of salt laterally ( m^4/s ) */')
216 jmc 1.116 CALL WRITE_1D_RL( diffKrNrT, Nr, INDEX_K, 'diffKrNrT =',
217 jmc 1.102 & ' /* vertical profile of vertical diffusion of Temp ('
218     & //rUnits//'^2/s )*/')
219 jmc 1.136 IF ( tempVertDiff4 )
220     & CALL WRITE_1D_RL( diffKr4T, Nr, INDEX_K, 'diffKr4T =',
221     & ' /* profile of vertical biharmonic diffusion of Temp ('
222     & //rUnits//'^4/s )*/')
223 jmc 1.116 CALL WRITE_1D_RL( diffKrNrS, Nr, INDEX_K, 'diffKrNrS =',
224 jmc 1.102 & ' /* vertical profile of vertical diffusion of Salt ('
225     & //rUnits//'^2/s )*/')
226 jmc 1.136 IF ( saltVertDiff4 )
227     & CALL WRITE_1D_RL( diffKr4S, Nr, INDEX_K, 'diffKr4S =',
228     & ' /* profile of vertical biharmonic diffusion of Salt ('
229     & //rUnits//'^4/s )*/')
230 jmc 1.115 CALL WRITE_0D_RL( diffKrBL79surf, INDEX_NONE,'diffKrBL79surf =',
231 jmc 1.102 & ' /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */')
232 jmc 1.115 CALL WRITE_0D_RL( diffKrBL79deep, INDEX_NONE,'diffKrBL79deep =',
233 jmc 1.102 & ' /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */')
234 jmc 1.115 CALL WRITE_0D_RL( diffKrBL79scl, INDEX_NONE,'diffKrBL79scl =',
235 jmc 1.102 & ' /* Depth scale for Bryan and Lewis 1979 ( m ) */')
236 jmc 1.115 CALL WRITE_0D_RL( diffKrBL79Ho, INDEX_NONE,'diffKrBL79Ho =',
237 jmc 1.102 & ' /* Turning depth for Bryan and Lewis 1979 ( m ) */')
238 jmc 1.115 CALL WRITE_0D_RL( ivdc_kappa, INDEX_NONE,'ivdc_kappa =',
239 jmc 1.102 & ' /* Implicit Vertical Diffusivity for Convection ('
240 jmc 1.124 & //rUnits//'^2/s) */')
241 jmc 1.115 CALL WRITE_0D_RL( hMixCriteria, INDEX_NONE,'hMixCriteria=',
242 jmc 1.98 & ' /* Criteria for mixed-layer diagnostic */')
243 jmc 1.124 CALL WRITE_0D_RL( dRhoSmall, INDEX_NONE,'dRhoSmall =',
244 dfer 1.112 & ' /* Parameter for mixed-layer diagnostic */')
245 jmc 1.115 CALL WRITE_0D_RL( hMixSmooth, INDEX_NONE,'hMixSmooth=',
246 dfer 1.113 & ' /* Smoothing parameter for mixed-layer diagnostic */')
247 jmc 1.151 C------------
248 jmc 1.97 CALL WRITE_0D_C( eosType, 0, INDEX_NONE, 'eosType =',
249     & ' /* Type of Equation of State */')
250 jmc 1.134 IF ( eosType .EQ. 'LINEAR' ) THEN
251     CALL WRITE_0D_RL( tAlpha, INDEX_NONE,'tAlpha =',
252     & ' /* Linear EOS thermal expansion coefficient ( 1/oC ) */')
253     CALL WRITE_0D_RL( sBeta, INDEX_NONE,'sBeta =',
254     & ' /* Linear EOS haline contraction coefficient ( 1/psu ) */')
255     CALL WRITE_0D_RL( rhoNil, INDEX_NONE, 'rhoNil =',
256     & ' /* Reference density for Linear EOS ( kg/m^3 ) */')
257     ENDIF
258 jmc 1.149 IF ( eosType .EQ. 'POLY3 ' ) THEN
259 jmc 1.92 WRITE(msgBuf,'(A)')
260 jmc 1.149 & 'Polynomial EQS parameters ( from POLY3.COEFFS ):'
261     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
262 jmc 1.122 DO k = 1, Nr
263 cnh 1.16 WRITE(msgBuf,'(I3,13F8.3)')
264 jmc 1.122 & k,eosRefT(k),eosRefS(k),eosSig0(k), (eosC(i,k),i=1,9)
265 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
266 cnh 1.16 ENDDO
267 jmc 1.149 WRITE(msgBuf,'(A)') ' ;'
268     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
269 cnh 1.16 ENDIF
270 jmc 1.151 IF ( usingZCoords ) THEN
271     WRITE(msgBuf,'(2A)') 'selectP_inEOS_Zc =',
272     & ' /* select pressure to use in EOS (0,1,2,3) */'
273     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
274     buffI(1) = selectP_inEOS_Zc
275     CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
276     & .FALSE., .TRUE., ioUnit )
277     WRITE(msgBuf,'(2A)') ' 0= -g*rhoConst*z ; ',
278     & '1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P'
279     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
280     CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
281     ENDIF
282     C------------
283 jmc 1.147 IF ( fluidIsWater ) THEN
284     CALL WRITE_0D_RL( HeatCapacity_Cp, INDEX_NONE,
285     & 'HeatCapacity_Cp =',
286     & ' /* Specific heat capacity ( J/kg/K ) */')
287     ENDIF
288 jmc 1.134 CALL WRITE_0D_RL( celsius2K, INDEX_NONE, 'celsius2K =',
289     & ' /* 0 degree Celsius converted to Kelvin ( K ) */')
290 jmc 1.62 IF ( fluidIsAir ) THEN
291 jmc 1.147 CALL WRITE_0D_RL( atm_Rd, INDEX_NONE, 'atm_Rd = ',
292 jmc 1.37 & ' /* gas constant for dry air ( J/kg/K ) */')
293 jmc 1.147 CALL WRITE_0D_RL( atm_Cp, INDEX_NONE, 'atm_Cp = ',
294 jmc 1.37 & ' /* specific heat (Cp) of dry air ( J/kg/K ) */')
295 jmc 1.147 CALL WRITE_0D_RL( atm_kappa, INDEX_NONE, 'atm_kappa =',
296     & ' /* kappa (=Rd/Cp ) of dry air */')
297     CALL WRITE_0D_RL( atm_Rq, INDEX_NONE, 'atm_Rq = ',
298 jmc 1.42 & ' /* water vap. specific vol. anomaly relative to dry air */')
299 jmc 1.147 CALL WRITE_0D_RL( atm_Po, INDEX_NONE, 'atm_Po = ',
300 jmc 1.37 & ' /* standard reference pressure ( Pa ) */')
301 jmc 1.147 CALL WRITE_0D_RL( thetaConst, INDEX_NONE, 'thetaConst=',
302     & ' /* constant reference for potential temperature ( K ) */')
303     CALL WRITE_0D_I( integr_GeoPot, INDEX_NONE, 'integr_GeoPot =',
304 jmc 1.37 & ' /* select how the geopotential is integrated */')
305 jmc 1.147 CALL WRITE_0D_I( selectFindRoSurf, INDEX_NONE,
306 jmc 1.37 & 'selectFindRoSurf=',
307     & ' /* select how Surf.Ref. pressure is defined */')
308     ENDIF
309 jmc 1.134 CALL WRITE_0D_RL( rhoConst, INDEX_NONE,'rhoConst =',
310     & ' /* Reference density (Boussinesq) ( kg/m^3 ) */')
311 jmc 1.116 CALL WRITE_1D_RL( rhoFacC, Nr, INDEX_K, 'rhoFacC = ',
312 jmc 1.93 & ' /* normalized Reference density @ cell-Center (-) */')
313 jmc 1.116 CALL WRITE_1D_RL( rhoFacF, Nr+1, INDEX_K, 'rhoFacF = ',
314 jmc 1.93 & ' /* normalized Reference density @ W-Interface (-) */')
315 jmc 1.115 CALL WRITE_0D_RL( rhoConstFresh, INDEX_NONE,'rhoConstFresh =',
316 jmc 1.134 & ' /* Fresh-water reference density ( kg/m^3 ) */')
317 jmc 1.115 CALL WRITE_0D_RL( gravity, INDEX_NONE,'gravity =',
318 cnh 1.6 &' /* Gravitational acceleration ( m/s^2 ) */')
319 jmc 1.115 CALL WRITE_0D_RL( gBaro, INDEX_NONE,'gBaro =',
320 jmc 1.29 &' /* Barotropic gravity ( m/s^2 ) */')
321 jmc 1.151 CALL WRITE_1D_RL( gravFacC, Nr, INDEX_K, 'gravFacC = ',
322     & ' /* gravity factor (vs surf.) @ cell-Center (-) */')
323     CALL WRITE_1D_RL( gravFacF, Nr+1, INDEX_K, 'gravFacF = ',
324     & ' /* gravity factor (vs surf.) @ W-Interface (-) */')
325 jmc 1.115 CALL WRITE_0D_RL(rotationPeriod,INDEX_NONE,'rotationPeriod =',
326 jmc 1.40 &' /* Rotation Period ( s ) */')
327 jmc 1.115 CALL WRITE_0D_RL( omega, INDEX_NONE,'omega =',
328 jmc 1.40 &' /* Angular velocity ( rad/s ) */')
329 jmc 1.115 CALL WRITE_0D_RL( f0, INDEX_NONE,'f0 =',
330 cnh 1.6 &' /* Reference coriolis parameter ( 1/s ) */')
331 jmc 1.115 CALL WRITE_0D_RL( beta, INDEX_NONE,'beta =',
332 cnh 1.6 &' /* Beta ( 1/(m.s) ) */')
333 jmc 1.125 CALL WRITE_0D_RL( fPrime, INDEX_NONE,'fPrime =',
334     &' /* Second coriolis parameter ( 1/s ) */')
335 jmc 1.124 CALL WRITE_0D_L( rigidLid, INDEX_NONE, 'rigidLid =',
336     &' /* Rigid lid on/off flag */')
337 heimbach 1.22 CALL WRITE_0D_L( implicitFreeSurface, INDEX_NONE,
338 cnh 1.8 & 'implicitFreeSurface =',
339     &' /* Implicit free surface on/off flag */')
340 jmc 1.124 CALL WRITE_0D_RL( freeSurfFac, INDEX_NONE,'freeSurfFac =',
341     &' /* Implicit free surface factor */')
342 jmc 1.115 CALL WRITE_0D_RL( implicSurfPress, INDEX_NONE,
343 jmc 1.124 & 'implicSurfPress =',
344     & ' /* Surface Pressure implicit factor (0-1)*/')
345 jmc 1.153 CALL WRITE_0D_RL( implicDiv2DFlow, INDEX_NONE,
346     & 'implicDiv2DFlow =',
347 jmc 1.124 & ' /* Barot. Flow Div. implicit factor (0-1)*/')
348 jmc 1.31 CALL WRITE_0D_L( uniformLin_PhiSurf, INDEX_NONE,
349 jmc 1.124 & 'uniformLin_PhiSurf =',
350     & ' /* use uniform Bo_surf on/off flag*/')
351 jmc 1.135 CALL WRITE_0D_L( uniformFreeSurfLev, INDEX_NONE,
352     & 'uniformFreeSurfLev =',
353     & ' /* free-surface level-index is uniform */')
354 jmc 1.124 CALL WRITE_0D_RL( hFacMin, INDEX_NONE, 'hFacMin = ',
355     & ' /* minimum partial cell factor (hFac) */')
356 jmc 1.146 CALL WRITE_0D_RL( hFacMinDr, INDEX_NONE, 'hFacMinDr =',
357 jmc 1.124 & ' /* minimum partial cell thickness ('//rUnits//') */')
358 jmc 1.135 CALL WRITE_0D_L( exactConserv, INDEX_NONE,
359     & 'exactConserv =',
360     & ' /* Exact Volume Conservation on/off flag*/')
361     CALL WRITE_0D_L( linFSConserveTr, INDEX_NONE,
362     & 'linFSConserveTr =',
363     & ' /* Tracer correction for Lin Free Surface on/off flag*/')
364 jmc 1.125 WRITE(msgBuf,'(2A)') 'nonlinFreeSurf =',
365     & ' /* Non-linear Free Surf. options (-1,0,1,2,3)*/'
366     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
367     buffI(1) = nonlinFreeSurf
368     CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
369     & .FALSE., .TRUE., ioUnit )
370 jmc 1.31 WRITE(msgBuf,'(2A)') ' -1,0= Off ; 1,2,3= On,',
371     & ' 2=+rescale gU,gV, 3=+update cg2d solv.'
372 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
373 jmc 1.125 CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
374 jmc 1.124 CALL WRITE_0D_RL( hFacInf, INDEX_NONE, 'hFacInf = ',
375     & ' /* lower threshold for hFac (nonlinFreeSurf only)*/')
376     CALL WRITE_0D_RL( hFacSup, INDEX_NONE, 'hFacSup = ',
377     & ' /* upper threshold for hFac (nonlinFreeSurf only)*/')
378 jmc 1.38 CALL WRITE_0D_I( select_rStar, INDEX_NONE,
379 jmc 1.124 & 'select_rStar =',
380     & ' /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/')
381 jmc 1.31 CALL WRITE_0D_L( useRealFreshWaterFlux, INDEX_NONE,
382 jmc 1.124 & 'useRealFreshWaterFlux =',
383     & ' /* Real Fresh Water Flux on/off flag*/')
384 jmc 1.115 CALL WRITE_0D_RL( temp_EvPrRn, INDEX_NONE,
385 jmc 1.124 & 'temp_EvPrRn =',
386     & ' /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/')
387 jmc 1.115 CALL WRITE_0D_RL( salt_EvPrRn, INDEX_NONE,
388 jmc 1.124 & 'salt_EvPrRn =',
389     & ' /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/')
390 jmc 1.135 CALL WRITE_0D_I( selectAddFluid, INDEX_NONE,
391     & 'selectAddFluid =',
392     & ' /* option for mass source/sink of fluid (=0: off) */')
393 dimitri 1.123 CALL WRITE_0D_RL( temp_addMass, INDEX_NONE,
394 jmc 1.124 & 'temp_addMass =',
395     & ' /* Temp. of addMass array (UNSET=use local T)(oC)*/')
396 dimitri 1.123 CALL WRITE_0D_RL( salt_addMass, INDEX_NONE,
397 jmc 1.124 & 'salt_addMass =',
398     & ' /* Salin. of addMass array (UNSET=use local S)(psu)*/')
399 jmc 1.110 IF ( .NOT.useRealFreshWaterFlux .OR. selectAddFluid.EQ.-1
400     & .OR. nonlinFreeSurf.LE.0 ) THEN
401 jmc 1.115 CALL WRITE_0D_RL( convertFW2Salt, INDEX_NONE,
402 jmc 1.124 & 'convertFW2Salt =',
403     & ' /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/')
404 jmc 1.31 ENDIF
405    
406 jmc 1.86 CALL WRITE_0D_L( use3Dsolver, INDEX_NONE,
407     & 'use3Dsolver =', ' /* use 3-D pressure solver on/off flag */')
408 jmc 1.46 CALL WRITE_0D_L( nonHydrostatic, INDEX_NONE,
409     & 'nonHydrostatic =', ' /* Non-Hydrostatic on/off flag */')
410 jmc 1.115 CALL WRITE_0D_RL( nh_Am2, INDEX_NONE, 'nh_Am2 =',
411 jmc 1.81 & ' /* Non-Hydrostatic terms scaling factor */')
412 jmc 1.121 CALL WRITE_0D_RL( implicitNHPress, INDEX_NONE,
413     & 'implicitNHPress =',
414     & ' /* Non-Hyd Pressure implicit factor (0-1)*/')
415     CALL WRITE_0D_I( selectNHfreeSurf, INDEX_NONE,
416     & 'selectNHfreeSurf =',
417     & ' /* Non-Hyd (free-)Surface option */')
418 jmc 1.88 CALL WRITE_0D_L( quasiHydrostatic, INDEX_NONE,
419     & 'quasiHydrostatic =', ' /* Quasi-Hydrostatic on/off flag */')
420 jmc 1.131 CALL WRITE_0D_L( calc_wVelocity, INDEX_NONE, 'calc_wVelocity =',
421     & ' /* vertical velocity calculation on/off flag */')
422 heimbach 1.22 CALL WRITE_0D_L( momStepping, INDEX_NONE,
423 cnh 1.10 & 'momStepping =', ' /* Momentum equation on/off flag */')
424 jmc 1.89 CALL WRITE_0D_L( vectorInvariantMomentum, INDEX_NONE,
425     & 'vectorInvariantMomentum=',
426     & ' /* Vector-Invariant Momentum on/off */')
427 heimbach 1.22 CALL WRITE_0D_L( momAdvection, INDEX_NONE,
428 cnh 1.10 & 'momAdvection =', ' /* Momentum advection on/off flag */')
429 heimbach 1.22 CALL WRITE_0D_L( momViscosity, INDEX_NONE,
430 cnh 1.9 & 'momViscosity =', ' /* Momentum viscosity on/off flag */')
431 jmc 1.124 CALL WRITE_0D_L( momImplVertAdv, INDEX_NONE, 'momImplVertAdv=',
432     & ' /* Momentum implicit vert. advection on/off*/')
433 jmc 1.46 CALL WRITE_0D_L( implicitViscosity, INDEX_NONE,
434     & 'implicitViscosity =', ' /* Implicit viscosity on/off flag */')
435 jmc 1.154 C------------
436 jmc 1.153 WRITE(msgBuf,'(2A)')
437     & 'selectImplicitDrag=', ' /* Implicit bot Drag options (0,1,2)*/'
438     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
439     buffI(1) = selectImplicitDrag
440     CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
441     & .FALSE., .TRUE., ioUnit )
442     WRITE(msgBuf,'(2A)') ' 0= Expl. ; 1= Impl. on provis. Vel ;',
443     & ' 2= Fully Impl (with surf.P)'
444     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
445     CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
446 jmc 1.154 C------------
447 jmc 1.88 CALL WRITE_0D_L( metricTerms, INDEX_NONE, 'metricTerms =',
448     & ' /* metric-Terms on/off flag */')
449     CALL WRITE_0D_L( useNHMTerms, INDEX_NONE, 'useNHMTerms =',
450     & ' /* Non-Hydrostatic Metric-Terms on/off */')
451 jmc 1.154 C------------
452 jmc 1.125 WRITE(msgBuf,'(2A)')
453     & 'selectCoriMap =', ' /* Coriolis Map options (0,1,2,3)*/'
454     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
455     buffI(1) = selectCoriMap
456     CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
457     & .FALSE., .TRUE., ioUnit )
458     WRITE(msgBuf,'(2A)') ' 0= f-Plane ; 1= Beta-Plane ;',
459     & ' 2= Spherical ; 3= read from file'
460     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
461     CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
462 jmc 1.154 C------------
463 jmc 1.91 CALL WRITE_0D_L( use3dCoriolis, INDEX_NONE,
464     & 'use3dCoriolis =', ' /* 3-D Coriolis on/off flag */')
465 heimbach 1.22 CALL WRITE_0D_L( useCoriolis, INDEX_NONE,
466 cnh 1.9 & 'useCoriolis =', ' /* Coriolis on/off flag */')
467 jmc 1.46 CALL WRITE_0D_L( useCDscheme, INDEX_NONE,
468     & 'useCDscheme =', ' /* CD scheme on/off flag */')
469 jmc 1.129 CALL WRITE_0D_L( useEnergyConservingCoriolis, INDEX_NONE,
470     & 'useEnergyConservingCoriolis=',
471     & ' /* Flx-Form Coriolis scheme flag */')
472 jmc 1.46 CALL WRITE_0D_L( useJamartWetPoints, INDEX_NONE,
473     & 'useJamartWetPoints=',' /* Coriolis WetPoints method flag */')
474 adcroft 1.51 CALL WRITE_0D_L( useJamartMomAdv, INDEX_NONE,
475 jmc 1.129 & 'useJamartMomAdv=',' /* V.I Non-linear terms Jamart flag */')
476 jmc 1.106 CALL WRITE_0D_L( useAbsVorticity, INDEX_NONE,
477 jmc 1.129 & 'useAbsVorticity=',' /* V.I Works with f+zeta in Coriolis */')
478     WRITE(msgBuf,'(2A)') 'selectVortScheme=',
479     & ' /* V.I Scheme selector for Vorticity-Term */'
480 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
481 jmc 1.117 buffI(1) = selectVortScheme
482     CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
483 jmc 1.106 & .FALSE., .TRUE., ioUnit )
484     WRITE(msgBuf,'(2A)') ' = 0 : enstrophy (Shallow-Water Eq.)',
485     & ' conserving scheme by Sadourny, JAS 75'
486     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
487     WRITE(msgBuf,'(2A)') ' = 1 : same as 0 with modified hFac'
488     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
489     WRITE(msgBuf,'(2A)') ' = 2 : energy conserving scheme',
490     & ' (used by Sadourny in JAS 75 paper)'
491     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
492 jmc 1.109 WRITE(msgBuf,'(2A)') ' = 3 : energy (general)',
493     & ' and enstrophy (2D, nonDiv.) conserving scheme'
494     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
495     WRITE(msgBuf,'(2A)') ' from Sadourny',
496     & ' (Burridge & Haseler, ECMWF Rep.4, 1977)'
497     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
498 jmc 1.106 c WRITE(msgBuf,'(2A)') ' = 4 : energy (general)',
499     c & ' and enstrophy (2D, nonDiv.) conserving scheme'
500     c CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
501     c WRITE(msgBuf,'(2A)') ' from Arakawa & Lamb, 77'
502     c CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
503 jmc 1.125 CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
504 adcroft 1.49 CALL WRITE_0D_L( upwindVorticity, INDEX_NONE,
505 jmc 1.129 & 'upwindVorticity=',' /* V.I Upwind bias vorticity flag */')
506 adcroft 1.49 CALL WRITE_0D_L( highOrderVorticity, INDEX_NONE,
507 jmc 1.129 & 'highOrderVorticity=',' /* V.I High order vort. advect. flag */')
508 jmc 1.74 CALL WRITE_0D_L( upwindShear, INDEX_NONE,
509 jmc 1.129 & 'upwindShear=',' /* V.I Upwind vertical Shear advection flag */')
510 jmc 1.80 CALL WRITE_0D_I( selectKEscheme, INDEX_NONE,
511 jmc 1.129 & 'selectKEscheme=',' /* V.I Kinetic Energy scheme selector */')
512 heimbach 1.22 CALL WRITE_0D_L( momForcing, INDEX_NONE,
513 cnh 1.9 & 'momForcing =', ' /* Momentum forcing on/off flag */')
514 jmc 1.159 IF ( momForcing )
515     & CALL WRITE_0D_L( momTidalForcing, INDEX_NONE,
516     & 'momTidalForcing =',' /* Momentum Tidal forcing on/off flag */')
517 heimbach 1.22 CALL WRITE_0D_L( momPressureForcing, INDEX_NONE,
518 jmc 1.92 & 'momPressureForcing =',
519 cnh 1.17 & ' /* Momentum pressure term on/off flag */')
520 jmc 1.85 CALL WRITE_0D_L( implicitIntGravWave, INDEX_NONE,
521     & 'implicitIntGravWave=',
522     & ' /* Implicit Internal Gravity Wave flag */')
523 jmc 1.46 CALL WRITE_0D_L( staggerTimeStep, INDEX_NONE,
524 jmc 1.132 & 'staggerTimeStep = ',
525     & ' /* Stagger time stepping on/off flag */')
526     CALL WRITE_0D_L( doResetHFactors, INDEX_NONE,
527     & 'doResetHFactors =',
528     & ' /* reset thickness factors @ each time-step */')
529 jmc 1.92 CALL WRITE_0D_L( multiDimAdvection, INDEX_NONE,
530 jmc 1.46 & 'multiDimAdvection =',
531 jmc 1.132 & ' /* enable/disable Multi-Dim Advection */')
532 jmc 1.92 CALL WRITE_0D_L( useMultiDimAdvec, INDEX_NONE,
533 jmc 1.53 & 'useMultiDimAdvec =',
534     &' /* Multi-Dim Advection is/is-not used */')
535 jmc 1.46 CALL WRITE_0D_L( implicitDiffusion, INDEX_NONE,
536 jmc 1.124 & 'implicitDiffusion =',' /* Implicit Diffusion on/off flag */')
537 heimbach 1.22 CALL WRITE_0D_L( tempStepping, INDEX_NONE,
538 cnh 1.10 & 'tempStepping =', ' /* Temperature equation on/off flag */')
539 jmc 1.33 CALL WRITE_0D_L( tempAdvection, INDEX_NONE,
540 jmc 1.138 & 'tempAdvection =', ' /* Temperature advection on/off flag */')
541 jmc 1.46 CALL WRITE_0D_L( tempImplVertAdv,INDEX_NONE,'tempImplVertAdv =',
542 jmc 1.124 & ' /* Temp. implicit vert. advection on/off */')
543 jmc 1.33 CALL WRITE_0D_L( tempForcing, INDEX_NONE,
544     & 'tempForcing =', ' /* Temperature forcing on/off flag */')
545 jmc 1.139 #ifdef ALLOW_FRICTION_HEATING
546     CALL WRITE_0D_L( addFrictionHeating, INDEX_NONE,
547     & 'addFrictionHeating=',' /* account for frictional heating */')
548     #endif
549 jmc 1.138 #ifdef ALLOW_BALANCE_FLUXES
550     CALL WRITE_0D_L( balanceQnet, INDEX_NONE, 'balanceQnet =',
551     & ' /* balance net heat-flux on/off flag */')
552     #endif
553     CALL WRITE_0D_L( doThetaClimRelax, INDEX_NONE,
554     & 'doThetaClimRelax =', ' /* apply SST relaxation on/off flag */')
555     #ifdef ALLOW_BALANCE_RELAX
556     CALL WRITE_0D_L( balanceThetaClimRelax, INDEX_NONE,
557     & 'balanceThetaClimRelax=',
558     & ' /* balance SST relaxation on/off flag */')
559     #endif
560 jmc 1.107 CALL WRITE_0D_L( tempIsActiveTr, INDEX_NONE, 'tempIsActiveTr =',
561     & ' /* Temp. is a dynamically Active Tracer */')
562 jmc 1.33 CALL WRITE_0D_L( saltStepping, INDEX_NONE,
563     & 'saltStepping =', ' /* Salinity equation on/off flag */')
564     CALL WRITE_0D_L( saltAdvection, INDEX_NONE,
565 jmc 1.138 & 'saltAdvection =', ' /* Salinity advection on/off flag */')
566 jmc 1.46 CALL WRITE_0D_L( saltImplVertAdv,INDEX_NONE,'saltImplVertAdv =',
567 jmc 1.124 & ' /* Sali. implicit vert. advection on/off */')
568 jmc 1.33 CALL WRITE_0D_L( saltForcing, INDEX_NONE,
569     & 'saltForcing =', ' /* Salinity forcing on/off flag */')
570 jmc 1.138 #ifdef ALLOW_BALANCE_FLUXES
571     CALL WRITE_0D_L( balanceQnet, INDEX_NONE, 'balanceEmPmR =',
572     & ' /* balance net fresh-water flux on/off flag */')
573     #endif
574     CALL WRITE_0D_L( doSaltClimRelax, INDEX_NONE,
575     & 'doSaltClimRelax =', ' /* apply SSS relaxation on/off flag */')
576     #ifdef ALLOW_BALANCE_RELAX
577     CALL WRITE_0D_L( balanceSaltClimRelax, INDEX_NONE,
578     & 'balanceSaltClimRelax=',
579     & ' /* balance SSS relaxation on/off flag */')
580     #endif
581 jmc 1.107 CALL WRITE_0D_L( saltIsActiveTr, INDEX_NONE, 'saltIsActiveTr =',
582     & ' /* Salt is a dynamically Active Tracer */')
583 jmc 1.84 CALL WRITE_0D_I( readBinaryPrec, INDEX_NONE, ' readBinaryPrec =',
584     & ' /* Precision used for reading binary files */')
585     CALL WRITE_0D_I(writeBinaryPrec, INDEX_NONE, 'writeBinaryPrec =',
586     & ' /* Precision used for writing binary files */')
587 jmc 1.155 C---
588     c CALL WRITE_0D_I(rwSuffixType, INDEX_NONE, 'rwSuffixType =',
589     c & ' /* Select format of mds file suffix */')
590     WRITE(msgBuf,'(2A)') ' rwSuffixType = ',
591     & ' /* select format of mds file suffix */'
592     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
593     buffI(1) = rwSuffixType
594     CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
595     & .FALSE., .TRUE., ioUnit )
596     WRITE(msgBuf,'(2A)') ' = 0 : myIter (I10.10) ;',
597     & ' = 1 : 100*myTime (100th sec) ;'
598     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
599     WRITE(msgBuf,'(2A)') ' = 2 : myTime (seconds);',
600     & ' = 3 : myTime/360 (10th of hr);'
601     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
602     WRITE(msgBuf,'(2A)') ' = 4 : myTime/3600 (hours)'
603     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
604     CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
605     C---
606 jmc 1.84 CALL WRITE_0D_L( globalFiles, INDEX_NONE,
607     & ' globalFiles =',' /* write "global" (=not per tile) files */')
608     CALL WRITE_0D_L( useSingleCpuIO, INDEX_NONE,
609     & ' useSingleCpuIO =', ' /* only master MPI process does I/O */')
610 dimitri 1.145 CALL WRITE_0D_L( useSingleCpuInput, INDEX_NONE,
611     & ' useSingleCpuInput =', ' /* only master process reads input */')
612 jmc 1.130 WRITE(msgBuf,'(2A)') '/* debLev[*] :',
613     & ' level of debug & auxiliary message printing */'
614     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
615     WRITE(msgBuf,'(A,I3,A)') 'debLevZero =', debLevZero,
616     & ' ; /* level of disabled aux. msg printing */'
617     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
618     WRITE(msgBuf,'(A,I3,A)') ' debLevA =', debLevA,
619     & ' ; /* level of minimum aux. msg printing */'
620     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
621     WRITE(msgBuf,'(A,I3,A)') ' debLevB =', debLevB,
622     & ' ; /* level of low aux. print (report read-file opening)*/'
623     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
624     WRITE(msgBuf,'(A,I3,A)') ' debLevC =', debLevC,
625     & ' ; /* level of moderate debug prt (most pkgs debug msg) */'
626     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
627     WRITE(msgBuf,'(A,I3,A)') ' debLevD =', debLevD,
628     & ' ; /* level of enhanced debug prt (add DEBUG_STATS prt) */'
629     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
630     WRITE(msgBuf,'(A,I3,A)') ' debLevE =', debLevE,
631     & ' ; /* level of extensive debug printing */'
632     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
633 jmc 1.76 CALL WRITE_0D_I( debugLevel, INDEX_NONE,
634 jmc 1.130 & 'debugLevel =', ' /* select debug printing level */')
635 jmc 1.157 CALL WRITE_0D_I( plotLevel, INDEX_NONE,
636     & ' plotLevel =', ' /* select PLOT_FIELD printing level */')
637 jmc 1.124
638 cnh 1.6 WRITE(msgBuf,'(A)') '// '
639 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
640 jmc 1.92 WRITE(msgBuf,'(A)')
641 cnh 1.17 & '// Elliptic solver(s) paramters ( PARM02 in namelist ) '
642 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
643 cnh 1.6 WRITE(msgBuf,'(A)') '// '
644 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
645 heimbach 1.22 CALL WRITE_0D_I( cg2dMaxIters, INDEX_NONE,'cg2dMaxIters =',
646 cnh 1.6 &' /* Upper limit on 2d con. grad iterations */')
647 heimbach 1.22 CALL WRITE_0D_I( cg2dChkResFreq, INDEX_NONE,'cg2dChkResFreq =',
648 cnh 1.6 &' /* 2d con. grad convergence test frequency */')
649 jmc 1.140 CALL WRITE_0D_I( cg2dUseMinResSol, INDEX_NONE,
650     & 'cg2dUseMinResSol=',
651     & ' /* use cg2d last-iter(=0) / min-resid.(=1) solution */')
652 jmc 1.115 CALL WRITE_0D_RL( cg2dTargetResidual, INDEX_NONE,
653 cnh 1.17 & 'cg2dTargetResidual =',
654 cnh 1.6 &' /* 2d con. grad target residual */')
655 jmc 1.115 CALL WRITE_0D_RL( cg2dTargetResWunit, INDEX_NONE,
656 jmc 1.54 & 'cg2dTargetResWunit =',
657     &' /* CG2d target residual [W units] */')
658     CALL WRITE_0D_I( cg2dPreCondFreq, INDEX_NONE,'cg2dPreCondFreq =',
659     &' /* Freq. for updating cg2d preconditioner */')
660 mlosch 1.120 CALL WRITE_0D_L( useSRCGSolver, INDEX_NONE,
661     & 'useSRCGSolver =', ' /* use single reduction CG solver(s) */')
662 jmc 1.130 CALL WRITE_0D_I( printResidualFreq, INDEX_NONE,
663     & 'printResidualFreq =', ' /* Freq. for printing CG residual */')
664 cnh 1.6
665     WRITE(msgBuf,'(A)') '// '
666 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
667 jmc 1.92 WRITE(msgBuf,'(A)')
668 cnh 1.17 & '// Time stepping paramters ( PARM03 in namelist ) '
669 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
670 cnh 1.6 WRITE(msgBuf,'(A)') '// '
671 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
672 jmc 1.138 CALL WRITE_0D_RL( deltaTMom, INDEX_NONE,'deltaTMom =',
673 cnh 1.6 &' /* Momentum equation timestep ( s ) */')
674 jmc 1.138 CALL WRITE_0D_RL( deltaTFreeSurf,INDEX_NONE,'deltaTFreeSurf =',
675 jmc 1.116 & ' /* FreeSurface equation timestep ( s ) */')
676     CALL WRITE_1D_RL( dTtracerLev, Nr, INDEX_K, 'dTtracerLev =',
677     & ' /* Tracer equation timestep ( s ) */')
678 jmc 1.115 CALL WRITE_0D_RL( deltaTClock, INDEX_NONE,'deltaTClock =',
679 cnh 1.12 &' /* Model clock timestep ( s ) */')
680 jmc 1.115 CALL WRITE_0D_RL( cAdjFreq, INDEX_NONE,'cAdjFreq =',
681 cnh 1.9 &' /* Convective adjustment interval ( s ) */')
682 jmc 1.87 CALL WRITE_0D_I( momForcingOutAB, INDEX_NONE, 'momForcingOutAB =',
683     & ' /* =1: take Momentum Forcing out of Adams-Bash. stepping */')
684     CALL WRITE_0D_I( tracForcingOutAB, INDEX_NONE,
685     & 'tracForcingOutAB =',
686     & ' /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */')
687 jmc 1.88 CALL WRITE_0D_L( momDissip_In_AB,INDEX_NONE,'momDissip_In_AB =',
688     & ' /* put Dissipation Tendency in Adams-Bash. stepping */')
689 jmc 1.82 CALL WRITE_0D_L( doAB_onGtGs, INDEX_NONE, 'doAB_onGtGs =',
690     & ' /* apply AB on Tendencies (rather than on T,S)*/')
691 jmc 1.115 CALL WRITE_0D_RL( abEps, INDEX_NONE,'abEps =',
692 jmc 1.73 &' /* Adams-Bashforth-2 stabilizing weight */')
693     #ifdef ALLOW_ADAMSBASHFORTH_3
694 jmc 1.115 CALL WRITE_0D_RL( alph_AB, INDEX_NONE,'alph_AB =',
695 jmc 1.73 &' /* Adams-Bashforth-3 primary factor */')
696 jmc 1.115 CALL WRITE_0D_RL( beta_AB, INDEX_NONE,'beta_AB =',
697 jmc 1.73 &' /* Adams-Bashforth-3 secondary factor */')
698     CALL WRITE_0D_L( startFromPickupAB2, INDEX_NONE,
699     & 'startFromPickupAB2=',' /* start from AB-2 pickup */')
700     #endif
701 jmc 1.150 CALL WRITE_0D_L( applyExchUV_early, INDEX_NONE,
702     & 'applyExchUV_early =',
703     & ' /* Apply EXCH to U,V earlier in time-step */')
704 jmc 1.41 IF (useCDscheme) THEN
705 jmc 1.115 CALL WRITE_0D_RL( tauCD, INDEX_NONE,'tauCD =',
706 cnh 1.6 &' /* CD coupling time-scale ( s ) */')
707 jmc 1.115 CALL WRITE_0D_RL( rCD, INDEX_NONE,'rCD =',
708 cnh 1.6 &' /* Normalised CD coupling parameter */')
709 jmc 1.119 CALL WRITE_0D_RL( epsAB_CD, INDEX_NONE,'epsAB_CD =',
710     & ' /* AB-2 stabilizing weight for CD-scheme*/')
711 jmc 1.41 ENDIF
712 jmc 1.122 i = ILNBLNK(pickupSuff)
713     IF ( i.GT.0 ) THEN
714 jmc 1.100 CALL WRITE_0D_C( pickupSuff, 0, INDEX_NONE,
715     & 'pickupSuff =', ' /* Suffix of pickup-file to restart from */')
716     ENDIF
717     CALL WRITE_0D_L( pickupStrictlyMatch, INDEX_NONE,
718     & 'pickupStrictlyMatch=',
719     & ' /* stop if pickup do not strictly match */')
720 jmc 1.126 CALL WRITE_0D_I( nIter0, INDEX_NONE, 'nIter0 =',
721     &' /* Run starting timestep number */')
722 jmc 1.100 CALL WRITE_0D_I( nTimeSteps, INDEX_NONE,'nTimeSteps =',
723 jmc 1.126 & ' /* Number of timesteps */')
724     CALL WRITE_0D_I( nEndIter, INDEX_NONE, 'nEndIter =',
725     &' /* Run ending timestep number */')
726 jmc 1.115 CALL WRITE_0D_RL( baseTime, INDEX_NONE,'baseTime =',
727 jmc 1.126 &' /* Model base time ( s ) */')
728 jmc 1.115 CALL WRITE_0D_RL( startTime, INDEX_NONE,'startTime =',
729 jmc 1.126 & ' /* Run start time ( s ) */')
730     CALL WRITE_0D_RL( endTime, INDEX_NONE,'endTime =',
731     &' /* Integration ending time ( s ) */')
732 jmc 1.115 CALL WRITE_0D_RL( pChkPtFreq, INDEX_NONE,'pChkPtFreq =',
733 jmc 1.126 & ' /* Permanent restart/pickup file interval ( s ) */')
734     CALL WRITE_0D_RL( chkPtFreq, INDEX_NONE,'chkPtFreq =',
735     & ' /* Rolling restart/pickup file interval ( s ) */')
736 edhill 1.57 CALL WRITE_0D_L(pickup_write_mdsio,INDEX_NONE,
737     & 'pickup_write_mdsio =', ' /* Model IO flag. */')
738     CALL WRITE_0D_L(pickup_read_mdsio,INDEX_NONE,
739     & 'pickup_read_mdsio =', ' /* Model IO flag. */')
740     #ifdef ALLOW_MNC
741     CALL WRITE_0D_L(pickup_write_mnc,INDEX_NONE,
742     & 'pickup_write_mnc =', ' /* Model IO flag. */')
743     CALL WRITE_0D_L(pickup_read_mnc,INDEX_NONE,
744     & 'pickup_read_mnc =', ' /* Model IO flag. */')
745     #endif
746 jmc 1.156 c CALL WRITE_0D_L(pickup_write_immed,INDEX_NONE,
747     c & 'pickup_write_immed =',' /* Model IO flag. */')
748 mlosch 1.104 CALL WRITE_0D_L(writePickupAtEnd,INDEX_NONE,
749     & 'writePickupAtEnd =',' /* Model IO flag. */')
750 jmc 1.115 CALL WRITE_0D_RL( dumpFreq, INDEX_NONE,'dumpFreq =',
751 cnh 1.6 &' /* Model state write out interval ( s ). */')
752 jmc 1.77 CALL WRITE_0D_L(dumpInitAndLast,INDEX_NONE,'dumpInitAndLast=',
753     & ' /* write out Initial & Last iter. model state */')
754 edhill 1.57 CALL WRITE_0D_L(snapshot_mdsio,INDEX_NONE,
755     & 'snapshot_mdsio =', ' /* Model IO flag. */')
756     #ifdef ALLOW_MNC
757     CALL WRITE_0D_L(snapshot_mnc,INDEX_NONE,
758     & 'snapshot_mnc =', ' /* Model IO flag. */')
759     #endif
760 jmc 1.115 CALL WRITE_0D_RL( monitorFreq, INDEX_NONE,'monitorFreq =',
761 edhill 1.56 &' /* Monitor output interval ( s ). */')
762 jmc 1.101 CALL WRITE_0D_I( monitorSelect, INDEX_NONE, 'monitorSelect =',
763     & ' /* select group of variables to monitor */')
764 edhill 1.58 CALL WRITE_0D_L(monitor_stdio,INDEX_NONE,
765     & 'monitor_stdio =', ' /* Model IO flag. */')
766 edhill 1.57 #ifdef ALLOW_MNC
767     CALL WRITE_0D_L(monitor_mnc,INDEX_NONE,
768     & 'monitor_mnc =', ' /* Model IO flag. */')
769     #endif
770 jmc 1.115 CALL WRITE_0D_RL( externForcingPeriod, INDEX_NONE,
771 jmc 1.43 & 'externForcingPeriod =', ' /* forcing period (s) */')
772 jmc 1.115 CALL WRITE_0D_RL( externForcingCycle, INDEX_NONE,
773 jmc 1.43 & 'externForcingCycle =', ' /* period of the cyle (s). */')
774 jmc 1.115 CALL WRITE_0D_RL( tauThetaClimRelax, INDEX_NONE,
775 jmc 1.43 & 'tauThetaClimRelax =', ' /* relaxation time scale (s) */')
776 jmc 1.115 CALL WRITE_0D_RL( tauSaltClimRelax, INDEX_NONE,
777 jmc 1.43 & 'tauSaltClimRelax =', ' /* relaxation time scale (s) */')
778 jmc 1.115 CALL WRITE_0D_RL( latBandClimRelax, INDEX_NONE,
779 jmc 1.43 & 'latBandClimRelax =', ' /* max. Lat. where relaxation */')
780 jmc 1.124
781 cnh 1.6 WRITE(msgBuf,'(A)') '// '
782 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
783 jmc 1.92 WRITE(msgBuf,'(A)')
784 cnh 1.17 & '// Gridding paramters ( PARM04 in namelist ) '
785 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
786 cnh 1.6 WRITE(msgBuf,'(A)') '// '
787 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
788 heimbach 1.22 CALL WRITE_0D_L( usingCartesianGrid, INDEX_NONE,
789 cnh 1.17 & 'usingCartesianGrid =',
790 jmc 1.93 & ' /* Cartesian coordinates flag ( True/False ) */')
791     CALL WRITE_0D_L( usingCylindricalGrid, INDEX_NONE,
792     & 'usingCylindricalGrid =',
793     & ' /* Cylindrical coordinates flag ( True/False ) */')
794 heimbach 1.22 CALL WRITE_0D_L( usingSphericalPolarGrid, INDEX_NONE,
795 cnh 1.17 & 'usingSphericalPolarGrid =',
796 jmc 1.93 & ' /* Spherical coordinates flag ( True/False ) */')
797     CALL WRITE_0D_L( usingCurvilinearGrid, INDEX_NONE,
798     & 'usingCurvilinearGrid =',
799     & ' /* Curvilinear coordinates flag ( True/False ) */')
800 jmc 1.158 CALL WRITE_0D_L( useMin4hFacEdges, INDEX_NONE,
801     & 'useMin4hFacEdges =',
802     & ' /* set hFacW,S as minimum of adjacent hFacC factor */')
803 jmc 1.160 CALL WRITE_0D_L( interViscAr_pCell, INDEX_NONE,
804     & 'interViscAr_pCell =',
805     & ' /* account for partial-cell in interior vert. viscosity */')
806     CALL WRITE_0D_L( interDiffKr_pCell, INDEX_NONE,
807     & 'interDiffKr_pCell =',
808     & ' /* account for partial-cell in interior vert. diffusion */')
809     CALL WRITE_0D_I( pCellMix_select, INDEX_NONE,
810     & 'pCellMix_select =',
811     & ' /* option to enhance mixing near surface & bottom */')
812     IF ( pCellMix_select.NE.0 ) THEN
813     CALL WRITE_0D_RL( pCellMix_maxFac, INDEX_NONE,
814     & 'pCellMix_maxFac =', ' /* maximum enhanced mixing factor */')
815     CALL WRITE_0D_RL( pCellMix_delR, INDEX_NONE, 'pCellMix_delR =',
816     & ' /* thickness criteria for too thin partial-cell ( '
817     & //rUnits//' ) */')
818     CALL WRITE_1D_RL( pCellMix_viscAr, Nr, INDEX_K,
819     & 'pCellMix_viscAr = ',
820     & ' /* vertical viscosity for too thin partial-cell */')
821     CALL WRITE_1D_RL( pCellMix_diffKr, Nr, INDEX_K,
822     & 'pCellMix_diffKr = ',
823     & ' /* vertical diffusivity for too thin partial-cell */')
824     ENDIF
825 jmc 1.124 CALL WRITE_0D_I( selectSigmaCoord, INDEX_NONE,
826     & 'selectSigmaCoord =',
827     & ' /* Hybrid-Sigma Vert. Coordinate option */')
828     CALL WRITE_0D_RL( rSigmaBnd, INDEX_NONE, 'rSigmaBnd =',
829 jmc 1.152 & ' /* r/sigma transition ( units of r == '//rUnits//' ) */')
830 jmc 1.115 CALL WRITE_0D_RL( rkSign, INDEX_NONE,'rkSign =',
831 jmc 1.75 &' /* index orientation relative to vertical coordinate */')
832 jmc 1.115 CALL WRITE_0D_RL( gravitySign, INDEX_NONE,'gravitySign =',
833 jmc 1.93 & ' /* gravity orientation relative to vertical coordinate */')
834 jmc 1.152 CALL WRITE_0D_RL( seaLev_Z, INDEX_NONE, 'seaLev_Z =',
835     & ' /* reference height of sea-level [m] */')
836 jmc 1.99 IF ( usingZCoords ) THEN
837 jmc 1.152 CALL WRITE_0D_RL( top_Pres, INDEX_NONE, 'top_Pres =',
838     & ' /* reference pressure at the top [Pa] */')
839 jmc 1.115 CALL WRITE_0D_RL( mass2rUnit, INDEX_NONE,'mass2rUnit =',
840 jmc 1.152 & ' /* convert mass per unit area [kg/m2] to r-units [m] */')
841 jmc 1.115 CALL WRITE_0D_RL( rUnit2mass, INDEX_NONE,'rUnit2mass =',
842 jmc 1.152 & ' /* convert r-units [m] to mass per unit area [kg/m2] */')
843 jmc 1.99 ENDIF
844     IF ( usingPCoords ) THEN
845 jmc 1.152 CALL WRITE_0D_RL( top_Pres, INDEX_NONE, 'top_Pres =',
846     & ' /* pressure at the top (r-axis origin) [Pa] */')
847 jmc 1.115 CALL WRITE_0D_RL( mass2rUnit, INDEX_NONE,'mass2rUnit =',
848 jmc 1.152 & ' /* convert mass per unit area [kg/m2] to r-units [Pa] */')
849 jmc 1.115 CALL WRITE_0D_RL( rUnit2mass, INDEX_NONE,'rUnit2mass =',
850 jmc 1.152 & ' /* convert r-units [Pa] to mass per unit area [kg/m2] */')
851 jmc 1.99 ENDIF
852 jmc 1.141 CALL WRITE_COPY1D_RS( bufRL, drC,Nr+1,INDEX_K, 'drC = ',
853 jmc 1.32 &' /* C spacing ( units of r ) */')
854 jmc 1.116 CALL WRITE_COPY1D_RS( bufRL, drF, Nr, INDEX_K, 'drF = ',
855 cnh 1.15 &' /* W spacing ( units of r ) */')
856 jmc 1.124 IF ( selectSigmaCoord.NE.0 ) THEN
857     CALL WRITE_COPY1D_RS( bufRL,dAHybSigF,Nr,INDEX_K,'dAHybSigF =',
858     & ' /* vertical increment of Hybrid-sigma Coeff. (-) */')
859     CALL WRITE_COPY1D_RS( bufRL,dBHybSigF,Nr,INDEX_K,'dBHybSigF =',
860     & ' /* vertical increment of Hybrid-sigma Coeff. (-) */')
861     ENDIF
862 jmc 1.137 IF ( usingCurvilinearGrid ) THEN
863     CALL WRITE_0D_RL( radius_fromHorizGrid, INDEX_NONE,
864     & 'radius_fromHorizGrid = ',
865     & '/* sphere Radius of input horiz. grid */')
866     ELSE
867 jmc 1.133 CALL WRITE_1D_RL( delX, gridNx, INDEX_I, 'delX = ',
868 jmc 1.116 & ' /* U spacing ( m - cartesian, degrees - spherical ) */')
869 jmc 1.133 CALL WRITE_1D_RL( delY, gridNy, INDEX_J, 'delY = ',
870 jmc 1.116 & ' /* V spacing ( m - cartesian, degrees - spherical ) */')
871 jmc 1.137 CALL WRITE_0D_RL( xgOrigin, INDEX_NONE,'xgOrigin = ',
872     & '/* X-axis origin of West edge (cartesian: m, lat-lon: deg) */')
873     CALL WRITE_0D_RL( ygOrigin, INDEX_NONE,'ygOrigin = ',
874     & '/* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */')
875 jmc 1.116 ENDIF
876 jmc 1.115 CALL WRITE_0D_RL( rSphere, INDEX_NONE,'rSphere = ',
877 jmc 1.93 & ' /* Radius ( ignored - cartesian, m - spherical ) */')
878     CALL WRITE_0D_L(deepAtmosphere,INDEX_NONE, 'deepAtmosphere =',
879     & ' /* Deep/Shallow Atmosphere flag (True/False) */')
880 jmc 1.115 coordLine = 1
881     tileLine = 1
882     CALL WRITE_XY_XLINE_RS( xC, coordLine, tileLine, 'xC',
883     I ': P-point X coord ( deg. or m if cartesian)')
884     CALL WRITE_XY_YLINE_RS( yC, coordLine, tileLine, 'yC',
885     I ': P-point Y coord ( deg. or m if cartesian)')
886 jmc 1.116 CALL WRITE_COPY1D_RS( bufRL, rC, Nr, INDEX_K, 'rcoord =',
887     & ' /* P-point R coordinate ( units of r ) */')
888     CALL WRITE_COPY1D_RS( bufRL, rF,Nr+1,INDEX_K, 'rF = ',
889 jmc 1.32 &' /* W-Interf. R coordinate ( units of r ) */')
890 jmc 1.124 IF ( selectSigmaCoord.NE.0 ) THEN
891     CALL WRITE_COPY1D_RS(bufRL,aHybSigmF,Nr+1,INDEX_K,'aHybSigmF =',
892     & ' /* Hybrid-sigma vert. Coord coeff. @ W-Interface (-) */')
893     CALL WRITE_COPY1D_RS(bufRL,bHybSigmF,Nr+1,INDEX_K,'bHybSigmF =',
894     & ' /* Hybrid-sigma vert. Coord coeff. @ W-Interface (-) */')
895     ENDIF
896 jmc 1.116 CALL WRITE_1D_RL( deepFacC, Nr, INDEX_K, 'deepFacC = ',
897 jmc 1.93 & ' /* deep-model grid factor @ cell-Center (-) */')
898 jmc 1.116 CALL WRITE_1D_RL( deepFacF, Nr+1, INDEX_K, 'deepFacF = ',
899 jmc 1.93 & ' /* deep-model grid factor @ W-Interface (-) */')
900 jmc 1.116 CALL WRITE_1D_RL(rVel2wUnit,Nr+1, INDEX_K,'rVel2wUnit =',
901 jmc 1.96 & ' /* convert units: rVel -> wSpeed (=1 if z-coord)*/')
902 jmc 1.116 CALL WRITE_1D_RL(wUnit2rVel,Nr+1, INDEX_K,'wUnit2rVel =',
903 jmc 1.96 & ' /* convert units: wSpeed -> rVel (=1 if z-coord)*/')
904 jmc 1.116 CALL WRITE_1D_RL( dBdrRef, Nr, INDEX_K, 'dBdrRef =',
905 jmc 1.128 & ' /* Vertical grad. of reference buoyancy [(m/s/r)^2] */')
906 mlosch 1.103 CALL WRITE_0D_L( rotateGrid, INDEX_NONE,
907     & 'rotateGrid =',' /* use rotated grid ( True/False ) */')
908 jmc 1.115 CALL WRITE_0D_RL( phiEuler, INDEX_NONE,'phiEuler =',
909 mlosch 1.103 &' /* Euler angle, rotation about original z-coordinate [rad] */')
910 jmc 1.115 CALL WRITE_0D_RL( thetaEuler, INDEX_NONE,'thetaEuler =',
911 mlosch 1.103 & ' /* Euler angle, rotation about new x-coordinate [rad] */')
912 jmc 1.115 CALL WRITE_0D_RL( psiEuler, INDEX_NONE,'psiEuler =',
913 mlosch 1.103 & ' /* Euler angle, rotation about new z-coordinate [rad] */')
914 cnh 1.6
915 cnh 1.26 C Grid along selected grid lines
916     coordLine = 1
917     tileLine = 1
918 jmc 1.92 CALL WRITE_XY_XLINE_RS( dxF, coordLine, tileLine, 'dxF',
919     I '( units: m )' )
920     CALL WRITE_XY_YLINE_RS( dxF, coordLine, tileLine, 'dxF',
921     I '( units: m )' )
922     CALL WRITE_XY_XLINE_RS( dyF, coordLine, tileLine, 'dyF',
923     I '( units: m )' )
924     CALL WRITE_XY_YLINE_RS( dyF, coordLine, tileLine, 'dyF',
925     I '( units: m )' )
926     CALL WRITE_XY_XLINE_RS( dxG, coordLine, tileLine, 'dxG',
927     I '( units: m )' )
928     CALL WRITE_XY_YLINE_RS( dxG, coordLine, tileLine, 'dxG',
929     I '( units: m )' )
930     CALL WRITE_XY_XLINE_RS( dyG, coordLine, tileLine, 'dyG',
931     I '( units: m )' )
932     CALL WRITE_XY_YLINE_RS( dyG, coordLine, tileLine, 'dyG',
933     I '( units: m )' )
934     CALL WRITE_XY_XLINE_RS( dxC, coordLine, tileLine, 'dxC',
935     I '( units: m )' )
936     CALL WRITE_XY_YLINE_RS( dxC, coordLine, tileLine, 'dxC',
937     I '( units: m )' )
938     CALL WRITE_XY_XLINE_RS( dyC, coordLine, tileLine, 'dyC',
939     I '( units: m )' )
940     CALL WRITE_XY_YLINE_RS( dyC, coordLine, tileLine, 'dyC',
941     I '( units: m )' )
942     CALL WRITE_XY_XLINE_RS( dxV, coordLine, tileLine, 'dxV',
943     I '( units: m )' )
944     CALL WRITE_XY_YLINE_RS( dxV, coordLine, tileLine, 'dxV',
945     I '( units: m )' )
946     CALL WRITE_XY_XLINE_RS( dyU, coordLine, tileLine, 'dyU',
947     I '( units: m )' )
948     CALL WRITE_XY_YLINE_RS( dyU, coordLine, tileLine, 'dyU',
949     I '( units: m )' )
950     CALL WRITE_XY_XLINE_RS( rA , coordLine, tileLine, 'rA ',
951     I '( units: m^2 )' )
952     CALL WRITE_XY_YLINE_RS( rA , coordLine, tileLine, 'rA ',
953     I '( units: m^2 )' )
954     CALL WRITE_XY_XLINE_RS( rAw, coordLine, tileLine, 'rAw',
955     I '( units: m^2 )' )
956     CALL WRITE_XY_YLINE_RS( rAw, coordLine, tileLine, 'rAw',
957     I '( units: m^2 )' )
958     CALL WRITE_XY_XLINE_RS( rAs, coordLine, tileLine, 'rAs',
959     I '( units: m^2 )' )
960     CALL WRITE_XY_YLINE_RS( rAs, coordLine, tileLine, 'rAs',
961     I '( units: m^2 )' )
962    
963 jmc 1.115 CALL WRITE_0D_RL( globalArea, INDEX_NONE, 'globalArea =',
964 jmc 1.92 & ' /* Integrated horizontal Area (m^2) */')
965 jmc 1.137 IF ( useCubedSphereExchange ) THEN
966     CALL WRITE_0D_L( hasWetCSCorners,INDEX_NONE,'hasWetCSCorners =',
967     & ' /* Domain contains CS corners (True/False) */')
968     ENDIF
969 cnh 1.5
970 jmc 1.122 i = ILNBLNK(the_run_name)
971     IF ( i.GT.0 ) THEN
972     CALL WRITE_0D_C( the_run_name, i, INDEX_NONE,
973 jmc 1.97 & 'the_run_name = ', '/* Name of this simulation */' )
974 jmc 1.94 ENDIF
975    
976 jmc 1.83 WRITE(msgBuf,'(A)')
977     &'// ======================================================='
978 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
979 jmc 1.83 WRITE(msgBuf,'(A)') '// End of Model config. summary'
980 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
981 jmc 1.83 WRITE(msgBuf,'(A)')
982     &'// ======================================================='
983 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
984 cnh 1.1 WRITE(msgBuf,'(A)') ' '
985 jmc 1.106 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
986 cnh 1.5
987 cnh 1.1 _END_MASTER(myThid)
988     _BARRIER
989    
990     RETURN
991     END

  ViewVC Help
Powered by ViewVC 1.1.22