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

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

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


Revision 1.25 - (show annotations) (download)
Sun Feb 4 14:38:46 2001 UTC (23 years, 4 months ago) by cnh
Branch: MAIN
Changes since 1.24: +2 -1 lines
Made sure each .F and .h file had
the CVS keywords Header and Name at its start.
Most had header but very few currently have Name, so
lots of changes!

1 C $Header: /u/gcmpack/models/MITgcmUV/model/src/config_summary.F,v 1.24 2001/02/02 21:04:47 adcroft Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CStartOfInterface
7 SUBROUTINE CONFIG_SUMMARY( myThid )
8 C /==========================================================
9 C | SUBROUTINE CONFIG_SUMMARY |
10 C | o Summarize model prognostic variables. |
11 C |==========================================================|
12 C | This routine writes a tabulated summary of the model |
13 C | configuration. |
14 C | Note |
15 C | 1. Under multi-process parallelism the summary |
16 C | is only given for the per-process data. |
17 C | 2. Under multi-threading the summary is produced by |
18 C | the master thread. This threads reads data managed by|
19 C | other threads. |
20 C \==========================================================/
21 IMPLICIT NONE
22
23 C === Global variables ===
24 #include "SIZE.h"
25 #include "EEPARAMS.h"
26 #include "PARAMS.h"
27 #include "GRID.h"
28 #include "DYNVARS.h"
29
30 C == Routine arguments ==
31 C myThid - Number of this instance of CONFIG_SUMMARY
32 INTEGER myThid
33 CEndOfInterface
34
35 C == Local variables ==
36 CHARACTER*(MAX_LEN_MBUF) msgBuf
37 INTEGER I,J,K
38 INTEGER bi, bj
39 _RL xcoord(Nx)
40 _RL ycoord(Ny)
41 _RL rcoord(Nr)
42
43
44 _BARRIER
45 _BEGIN_MASTER(myThid)
46
47 WRITE(msgBuf,'(A)')
48 &'// ======================================================='
49 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
50 & SQUEEZE_RIGHT , 1)
51 WRITE(msgBuf,'(A)') '// Model configuration'
52 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
53 & SQUEEZE_RIGHT , 1)
54 WRITE(msgBuf,'(A)')
55 &'// ======================================================='
56 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
57 & SQUEEZE_RIGHT , 1)
58
59 WRITE(msgBuf,'(A)') '// '
60 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
61 & SQUEEZE_RIGHT , 1)
62 WRITE(msgBuf,'(A)')
63 & '// "Physical" paramters ( PARM01 in namelist ) '
64 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
65 & SQUEEZE_RIGHT , 1)
66 WRITE(msgBuf,'(A)') '// '
67 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
68 & SQUEEZE_RIGHT , 1)
69 CALL WRITE_1D_R8( tRef, Nr, INDEX_K,'tRef =',
70 &' /* Reference temperature profile ( oC or oK ) */')
71 CALL WRITE_1D_R8( sRef, Nr, INDEX_K,'sRef =',
72 &' /* Reference salinity profile ( ppt ) */')
73 CALL WRITE_0D_R8( viscAh, INDEX_NONE,'viscAh =',
74 &' /* Lateral eddy viscosity ( m^2/s ) */')
75 CALL WRITE_0D_R8( viscA4, INDEX_NONE,'viscAh =',
76 &' /* Lateral biharmonic viscosity ( m^4/s ) */')
77 CALL WRITE_0D_L( no_slip_sides, INDEX_NONE,
78 & 'no_slip_sides =', ' /* Viscous BCs: No-slip sides */')
79 IF ( viscAz .NE. UNSET_RL ) THEN
80 CALL WRITE_0D_R8( viscAz, INDEX_NONE,'viscAz =',
81 & ' /* Vertical eddy viscosity ( m^2/s ) */')
82 ENDIF
83 IF ( viscAp .NE. UNSET_RL ) THEN
84 CALL WRITE_0D_R8( viscAp, INDEX_NONE,'viscAp =',
85 & ' /* Vertical eddy viscosity ( Pa^2/s ) */')
86 ENDIF
87 CALL WRITE_0D_R8( viscAr, INDEX_NONE,'viscAr =',
88 &' /* Vertical eddy viscosity ( units of r^2/s ) */')
89 CALL WRITE_0D_R8( diffKhT, INDEX_NONE,'diffKhT =',
90 &' /* Laplacian diffusion of heat laterally ( m^2/s ) */')
91 CALL WRITE_0D_R8( diffK4T, INDEX_NONE,'diffK4T =',
92 &' /* Bihaarmonic diffusion of heat laterally ( m^4/s ) */')
93 CALL WRITE_0D_R8( diffKzT, INDEX_NONE,'diffKzT =',
94 &' /* Laplacian diffusion of heat vertically ( m^2/s ) */')
95 CALL WRITE_0D_R8( diffKrT, INDEX_NONE,'diffKrT =',
96 &' /* Laplacian diffusion of heat vertically ( m^2/s ) */')
97 CALL WRITE_0D_R8( diffKhS, INDEX_NONE,'diffKhS =',
98 &' /* Laplacian diffusion of salt laterally ( m^2/s ) */')
99 CALL WRITE_0D_R8( diffK4S, INDEX_NONE,'diffK4S =',
100 &' /* Bihaarmonic diffusion of salt laterally ( m^4/s ) */')
101 CALL WRITE_0D_R8( diffKzS, INDEX_NONE,'diffKzS =',
102 &' /* Laplacian diffusion of salt vertically ( m^2/s ) */')
103 CALL WRITE_0D_R8( diffKrS, INDEX_NONE,'diffKrS =',
104 &' /* Laplacian diffusion of salt vertically ( m^2/s ) */')
105 CALL WRITE_0D_R8( tAlpha, INDEX_NONE,'tAlpha =',
106 &' /* Linear EOS thermal expansion coefficient ( 1/degree ) */')
107 CALL WRITE_0D_R8( sBeta, INDEX_NONE,'sBeta =',
108 &' /* Linear EOS haline contraction coefficient ( 1/ppt ) */')
109 IF ( eosType .EQ. 'POLY3' ) THEN
110 WRITE(msgBuf,'(A)')
111 & '// Polynomial EQS parameters ( from POLY3.COEFFS ) '
112 DO K = 1, Nr
113 WRITE(msgBuf,'(I3,13F8.3)')
114 & K,eosRefT(K),eosRefS(K),eosSig0(K), (eosC(I,K),I=1,9)
115 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
116 & SQUEEZE_RIGHT , 1)
117 ENDDO
118 ENDIF
119 CALL WRITE_0D_R8( rhonil, INDEX_NONE,'rhonil =',
120 &' /* Reference density ( kg/m^3 ) */')
121 CALL WRITE_0D_R8( rhoConst, INDEX_NONE,'rhoConst =',
122 &' /* Reference density ( kg/m^3 ) */')
123 CALL WRITE_0D_R8( gravity, INDEX_NONE,'gravity =',
124 &' /* Gravitational acceleration ( m/s^2 ) */')
125 CALL WRITE_0D_R8( gBaro, INDEX_NONE,'gBaro =',
126 &' /* Barotropic gravity ( m/s^2 ) */')
127 CALL WRITE_0D_R8( f0, INDEX_NONE,'f0 =',
128 &' /* Reference coriolis parameter ( 1/s ) */')
129 CALL WRITE_0D_R8( beta, INDEX_NONE,'beta =',
130 &' /* Beta ( 1/(m.s) ) */')
131 CALL WRITE_0D_R8( freeSurfFac, INDEX_NONE,'freeSurfFac =',
132 &' /* Implcit free surface factor */')
133 CALL WRITE_0D_L( implicitFreeSurface, INDEX_NONE,
134 & 'implicitFreeSurface =',
135 &' /* Implicit free surface on/off flag */')
136 CALL WRITE_0D_L( rigidLid, INDEX_NONE,
137 & 'rigidLid =',
138 &' /* Rigid lid on/off flag */')
139 CALL WRITE_0D_L( momStepping, INDEX_NONE,
140 & 'momStepping =', ' /* Momentum equation on/off flag */')
141 CALL WRITE_0D_L( momAdvection, INDEX_NONE,
142 & 'momAdvection =', ' /* Momentum advection on/off flag */')
143 CALL WRITE_0D_L( momViscosity, INDEX_NONE,
144 & 'momViscosity =', ' /* Momentum viscosity on/off flag */')
145 CALL WRITE_0D_L( useCoriolis, INDEX_NONE,
146 & 'useCoriolis =', ' /* Coriolis on/off flag */')
147 CALL WRITE_0D_L( momForcing, INDEX_NONE,
148 & 'momForcing =', ' /* Momentum forcing on/off flag */')
149 CALL WRITE_0D_L( momPressureForcing, INDEX_NONE,
150 & 'momPressureForcing =',
151 & ' /* Momentum pressure term on/off flag */')
152 CALL WRITE_0D_L( tempStepping, INDEX_NONE,
153 & 'tempStepping =', ' /* Temperature equation on/off flag */')
154 CALL WRITE_0D_L( nonHydrostatic, INDEX_NONE,
155 & 'nonHydrostatic =', ' /* Non-Hydrostatic on/off flag */')
156 WRITE(msgBuf,'(A)') '// '
157 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
158 & SQUEEZE_RIGHT , 1)
159
160 WRITE(msgBuf,'(A)')
161 & '// Elliptic solver(s) paramters ( PARM02 in namelist ) '
162 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
163 & SQUEEZE_RIGHT , 1)
164 WRITE(msgBuf,'(A)') '// '
165 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
166 & SQUEEZE_RIGHT , 1)
167 CALL WRITE_0D_I( cg2dMaxIters, INDEX_NONE,'cg2dMaxIters =',
168 &' /* Upper limit on 2d con. grad iterations */')
169 CALL WRITE_0D_I( cg2dChkResFreq, INDEX_NONE,'cg2dChkResFreq =',
170 &' /* 2d con. grad convergence test frequency */')
171 CALL WRITE_0D_R8( cg2dTargetResidual, INDEX_NONE,
172 & 'cg2dTargetResidual =',
173 &' /* 2d con. grad target residual */')
174
175 WRITE(msgBuf,'(A)') '// '
176 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
177 & SQUEEZE_RIGHT , 1)
178 WRITE(msgBuf,'(A)')
179 & '// Time stepping paramters ( PARM03 in namelist ) '
180 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
181 & SQUEEZE_RIGHT , 1)
182 WRITE(msgBuf,'(A)') '// '
183 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
184 & SQUEEZE_RIGHT , 1)
185 CALL WRITE_0D_I( nIter0, INDEX_NONE,'nIter0 =',
186 &' /* Base timestep number */')
187 CALL WRITE_0D_I( nTimeSteps, INDEX_NONE,'nTimeSteps =',
188 &' /* Number of timesteps */')
189 CALL WRITE_0D_R8( deltaTmom, INDEX_NONE,'deltatTmom =',
190 &' /* Momentum equation timestep ( s ) */')
191 CALL WRITE_0D_R8( deltaTtracer, INDEX_NONE,'deltatTtracer =',
192 &' /* Tracer equation timestep ( s ) */')
193 CALL WRITE_0D_R8( deltaTClock, INDEX_NONE,'deltatTClock =',
194 &' /* Model clock timestep ( s ) */')
195 CALL WRITE_0D_R8( cAdjFreq, INDEX_NONE,'cAdjFreq =',
196 &' /* Convective adjustment interval ( s ) */')
197 CALL WRITE_0D_R8( abeps, INDEX_NONE,'abeps =',
198 &' /* Adams-Bashforth stabilizing weight */')
199 CALL WRITE_0D_R8( tauCD, INDEX_NONE,'tauCD =',
200 &' /* CD coupling time-scale ( s ) */')
201 CALL WRITE_0D_R8( rCD, INDEX_NONE,'rCD =',
202 &' /* Normalised CD coupling parameter */')
203 CALL WRITE_0D_R8( startTime, INDEX_NONE,'startTime =',
204 &' /* Run start time ( s ). */')
205 CALL WRITE_0D_R8( endTime, INDEX_NONE,'endTime =',
206 &' /* Integration ending time ( s ). */')
207 CALL WRITE_0D_R8( pChkPtFreq, INDEX_NONE,'pChkPtFreq =',
208 &' /* Permanent restart/checkpoint file interval ( s ). */')
209 CALL WRITE_0D_R8( chkPtFreq, INDEX_NONE,'chkPtFreq =',
210 &' /* Rolling restart/checkpoint file interval ( s ). */')
211 CALL WRITE_0D_R8( dumpFreq, INDEX_NONE,'dumpFreq =',
212 &' /* Model state write out interval ( s ). */')
213
214 WRITE(msgBuf,'(A)') '// '
215 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
216 & SQUEEZE_RIGHT , 1)
217 WRITE(msgBuf,'(A)')
218 & '// Gridding paramters ( PARM04 in namelist ) '
219 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
220 & SQUEEZE_RIGHT , 1)
221 WRITE(msgBuf,'(A)') '// '
222 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
223 & SQUEEZE_RIGHT , 1)
224 CALL WRITE_0D_L( usingCartesianGrid, INDEX_NONE,
225 & 'usingCartesianGrid =',
226 &' /* Cartesian coordinates flag ( True / False ) */')
227 CALL WRITE_0D_L( usingSphericalPolarGrid, INDEX_NONE,
228 & 'usingSphericalPolarGrid =',
229 &' /* Spherical coordinates flag ( True / False ) */')
230 CALL WRITE_0D_L( groundAtK1, INDEX_NONE, 'groundAtK1 =',
231 &' /* Lower Boundary (ground) at the surface(k=1) ( T / F ) */')
232 CALL WRITE_1D_R8( Ro_SeaLevel,1, INDEX_NONE,'Ro_SeaLevel =',
233 &' /* r(1) ( units of r ) */')
234 CALL WRITE_1D_R8( rkFac,1, INDEX_NONE,'rkFac =',
235 &' /* minus Vertical index orientation */')
236 CALL WRITE_1D_R8( horiVertRatio,1, INDEX_NONE,'horiVertRatio =',
237 &' /* Ratio on units : Horiz - Vertical */')
238 CALL WRITE_1D_R8( delZ,Nr, INDEX_K,'delZ = ',
239 &' /* W spacing ( m ) */')
240 CALL WRITE_1D_R8( delP,Nr, INDEX_K,'delP = ',
241 &' /* W spacing ( Pa ) */')
242 CALL WRITE_1D_R8( delR,Nr, INDEX_K,'delR = ',
243 &' /* W spacing ( units of r ) */')
244 CALL WRITE_1D_R8( delX, Nx, INDEX_I,'delX = ',
245 &' /* U spacing ( m - cartesian, degrees - spherical ) */')
246 CALL WRITE_1D_R8( delY, Ny, INDEX_J,'delY = ',
247 &' /* V spacing ( m - cartesian, degrees - spherical ) */')
248 CALL WRITE_0D_R8( phiMin, INDEX_NONE,'phiMin = ',
249 &' /* South edge (ignored - cartesian, degrees - spherical ) */')
250 CALL WRITE_0D_R8( thetaMin, INDEX_NONE,'thetaMin = ',
251 &' /* West edge ( ignored - cartesian, degrees - spherical ) */')
252 CALL WRITE_0D_R8( rSphere, INDEX_NONE,'rSphere = ',
253 &' /* Radius ( ignored - cartesian, m - spherical ) */')
254 DO bi=1,nSx
255 DO I=1,sNx
256 xcoord((bi-1)*sNx+I) = xC(I,1,bi,1)
257 ENDDO
258 ENDDO
259 CALL WRITE_1D_R8( xcoord, sNx*nSx, INDEX_I,'xcoord = ',
260 &' /* P-point X coord ( m - cartesian, degrees - spherical ) */')
261 DO bj=1,nSy
262 DO J=1,sNy
263 ycoord((bj-1)*sNy+J) = yC(1,J,1,bj)
264 ENDDO
265 ENDDO
266 CALL WRITE_1D_R8( ycoord, sNy*nSy, INDEX_J,'ycoord = ',
267 &' /* P-point Y coord ( m - cartesian, degrees - spherical ) */')
268 DO K=1,Nr
269 rcoord(K) = rC(K)
270 ENDDO
271 CALL WRITE_1D_R8( rcoord, Nr, INDEX_K,'rcoord = ',
272 &' /* P-point R coordinate ( units of r ) */')
273
274
275
276 WRITE(msgBuf,'(A)') ' '
277 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
278 & SQUEEZE_RIGHT , 1)
279
280 _END_MASTER(myThid)
281 _BARRIER
282
283
284 RETURN
285 100 FORMAT(A,
286 &' '
287 &)
288 END
289

  ViewVC Help
Powered by ViewVC 1.1.22