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

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

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

revision 1.6 by cnh, Mon Apr 27 04:24:22 1998 UTC revision 1.19 by adcroft, Wed Dec 9 16:11:51 1998 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    
3  #include "CPP_EEOPTIONS.h"  #include "CPP_OPTIONS.h"
4    
5  CStartOfInterface  CStartOfInterface
6        SUBROUTINE CONFIG_SUMMARY( myThid )        SUBROUTINE CONFIG_SUMMARY( myThid )
# Line 17  C     |  2. Under multi-threading the su Line 17  C     |  2. Under multi-threading the su
17  C     |     the master thread. This threads reads data managed by|  C     |     the master thread. This threads reads data managed by|
18  C     |     other threads.                                       |  C     |     other threads.                                       |
19  C     \==========================================================/  C     \==========================================================/
20          IMPLICIT NONE
21    
22  C     === Global variables ===  C     === Global variables ===
23  #include "SIZE.h"  #include "SIZE.h"
# Line 36  C     == Local variables == Line 37  C     == Local variables ==
37        INTEGER                  bi, bj        INTEGER                  bi, bj
38        REAL                     xcoord(Nx)        REAL                     xcoord(Nx)
39        REAL                     ycoord(Ny)        REAL                     ycoord(Ny)
40        REAL                     zcoord(Nz)        REAL                     rcoord(Nr)
41    
42    
43        _BARRIER        _BARRIER
# Line 44  C     == Local variables == Line 45  C     == Local variables ==
45    
46        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
47       &'// ======================================================='       &'// ======================================================='
48        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
49         &                    SQUEEZE_RIGHT , 1)
50        WRITE(msgBuf,'(A)') '// Model configuration'        WRITE(msgBuf,'(A)') '// Model configuration'
51        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
52         &                    SQUEEZE_RIGHT , 1)
53        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
54       &'// ======================================================='       &'// ======================================================='
55        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
56       &  SQUEEZE_RIGHT , 1)       &  SQUEEZE_RIGHT , 1)
57    
58        WRITE(msgBuf,'(A)') '//  '        WRITE(msgBuf,'(A)') '//  '
59        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
60        WRITE(msgBuf,'(A)') '// "Physical" paramters ( PARM01 in namelist ) '       &                    SQUEEZE_RIGHT , 1)
61        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        WRITE(msgBuf,'(A)')
62         & '// "Physical" paramters ( PARM01 in namelist ) '
63          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
64         &                    SQUEEZE_RIGHT , 1)
65        WRITE(msgBuf,'(A)') '//  '        WRITE(msgBuf,'(A)') '//  '
66        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
67        CALL WRITE_1D_R8( tRef, Nz, INDEX_K,'tRef =',       &                    SQUEEZE_RIGHT , 1)
68          CALL WRITE_1D_R8( tRef, Nr, INDEX_K,'tRef =',
69       &'   /* Reference temperature profile ( oC or oK ) */')       &'   /* Reference temperature profile ( oC or oK ) */')
70        CALL WRITE_1D_R8( sRef, Nz, INDEX_K,'sRef =',        CALL WRITE_1D_R8( sRef, Nr, INDEX_K,'sRef =',
71       &'   /* Reference salinity profile ( ppt ) */')       &'   /* Reference salinity profile ( ppt ) */')
72        CALL WRITE_1D_R8( viscAh, 1, INDEX_NONE,'viscAh =',        CALL WRITE_1D_R8( viscAh, 1, INDEX_NONE,'viscAh =',
73       &'   /* Lateral eddy viscosity ( m^2/s ) */')       &'   /* Lateral eddy viscosity ( m^2/s ) */')
74        CALL WRITE_1D_R8( viscAz, 1, INDEX_NONE,'viscAz =',        CALL WRITE_1D_R8( viscA4, 1, INDEX_NONE,'viscAh =',
75       &'   /* Vertical eddy viscosity ( m^2/s ) */')       &'   /* Lateral biharmonic viscosity ( m^4/s ) */')
76          IF ( viscAz .NE. UNSET_RL ) THEN
77           CALL WRITE_1D_R8( viscAz, 1, INDEX_NONE,'viscAz =',
78         & '   /* Vertical eddy viscosity ( m^2/s ) */')
79          ENDIF
80          IF ( viscAp .NE. UNSET_RL ) THEN
81           CALL WRITE_1D_R8( viscAp, 1, INDEX_NONE,'viscAp =',
82         & '   /* Vertical eddy viscosity ( Pa^2/s ) */')
83          ENDIF
84          CALL WRITE_1D_R8( viscAr, 1, INDEX_NONE,'viscAr =',
85         &'   /* Vertical eddy viscosity ( units of r^2/s ) */')
86        CALL WRITE_1D_R8( diffKhT, 1, INDEX_NONE,'diffKhT =',        CALL WRITE_1D_R8( diffKhT, 1, INDEX_NONE,'diffKhT =',
87       &'   /* Laplacian diffusion of heat laterally ( m^2/s ) */')       &'   /* Laplacian diffusion of heat laterally ( m^2/s ) */')
88        CALL WRITE_1D_R8( diffKzT, 1, INDEX_NONE,'diffKzT =',        CALL WRITE_1D_R8( diffKzT, 1, INDEX_NONE,'diffKzT =',
# Line 82  C     == Local variables == Line 99  C     == Local variables ==
99       &'   /* Linear EOS thermal expansion coefficient ( 1/degree ) */')       &'   /* Linear EOS thermal expansion coefficient ( 1/degree ) */')
100        CALL WRITE_1D_R8( sBeta, 1, INDEX_NONE,'sBeta =',        CALL WRITE_1D_R8( sBeta, 1, INDEX_NONE,'sBeta =',
101       &'   /* Linear EOS haline contraction coefficient ( 1/ppt ) */')       &'   /* Linear EOS haline contraction coefficient ( 1/ppt ) */')
102          IF ( eosType .EQ. 'POLY3' ) THEN
103            WRITE(msgBuf,'(A)')
104         &   '// Polynomial EQS parameters ( from POLY3.COEFFS ) '
105            DO K = 1, Nr
106             WRITE(msgBuf,'(I3,13F8.3)')
107         &   K,eosRefT(K),eosRefS(K),eosSig0(K), (eosC(I,K),I=1,9)
108             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
109         &                    SQUEEZE_RIGHT , 1)
110            ENDDO
111          ENDIF
112        CALL WRITE_1D_R8( rhonil,1, INDEX_NONE,'rhonil =',        CALL WRITE_1D_R8( rhonil,1, INDEX_NONE,'rhonil =',
113       &'   /* Reference density ( kg/m^3 ) */')       &'   /* Reference density ( kg/m^3 ) */')
114        CALL WRITE_1D_R8( gravity,1, INDEX_NONE,'gravity =',        CALL WRITE_1D_R8( gravity,1, INDEX_NONE,'gravity =',
115       &'   /* Gravitational acceleration ( m/s^2 ) */')       &'   /* Gravitational acceleration ( m/s^2 ) */')
116          CALL WRITE_1D_R8( gBaro,1, INDEX_NONE,'gBaro =',
117         &'   /* Barotropic gravity ( m/s^2 ) */')
118        CALL WRITE_1D_R8( f0,1, INDEX_NONE,'f0 =',        CALL WRITE_1D_R8( f0,1, INDEX_NONE,'f0 =',
119       &'   /* Reference coriolis parameter ( 1/s ) */')       &'   /* Reference coriolis parameter ( 1/s ) */')
120        CALL WRITE_1D_R8( beta,1, INDEX_NONE,'beta =',        CALL WRITE_1D_R8( beta,1, INDEX_NONE,'beta =',
121       &'   /* Beta ( 1/(m.s) ) */')       &'   /* Beta ( 1/(m.s) ) */')
122          CALL WRITE_1D_R8( freeSurfFac,1, INDEX_NONE,'freeSurfFac =',
123         &'   /* Implcit free surface factor */')
124          CALL WRITE_1D_L( implicitFreeSurface,1, INDEX_NONE,
125         &                 'implicitFreeSurface =',
126         &'   /* Implicit free surface on/off flag */')
127          CALL WRITE_1D_L( rigidLid,1, INDEX_NONE,
128         &                 'rigidLid =',
129         &'   /* Rigid lid on/off flag */')
130          CALL WRITE_1D_L( momStepping,1, INDEX_NONE,
131         & 'momStepping =', '  /* Momentum equation on/off flag */')
132          CALL WRITE_1D_L( momAdvection,1, INDEX_NONE,
133         & 'momAdvection =', '  /* Momentum advection on/off flag */')
134          CALL WRITE_1D_L( momViscosity,1, INDEX_NONE,
135         & 'momViscosity =', '  /* Momentum viscosity on/off flag */')
136          CALL WRITE_1D_L( useCoriolis,1, INDEX_NONE,
137         & 'useCoriolis =', '  /* Coriolis on/off flag */')
138          CALL WRITE_1D_L( momForcing,1, INDEX_NONE,
139         & 'momForcing =', '  /* Momentum forcing on/off flag */')
140          CALL WRITE_1D_L( momPressureForcing,1, INDEX_NONE,
141         & 'momPressureForcing =',  
142         & '  /* Momentum pressure term on/off flag */')
143          CALL WRITE_1D_L( tempStepping,1, INDEX_NONE,
144         & 'tempStepping =', '  /* Temperature equation on/off flag */')
145          CALL WRITE_1D_R8( GMMaxSlope,1, INDEX_NONE,'GMMaxSlope =',
146         &'   /* Max. slope allowed in GM/Redi tensor */')
147          CALL WRITE_1D_R8( GMLength,1, INDEX_NONE,'GMLength =',
148         &'   /* Length to use in Visbeck et al. formula for K (m) */')
149          CALL WRITE_1D_R8( GMAlpha,1, INDEX_NONE,'GMAlpha =',
150         &'   /* alpha to use in Visbeck et al. formula for K */')
151          CALL WRITE_1D_R8( GMdepth,1, INDEX_NONE,'GMdepth =',
152         &'   /* Depth to integrate for Visbeck et. al Richardson # (m) */')
153          CALL WRITE_1D_R8( GMkbackground,1, INDEX_NONE,'GMkbackground =',
154         &'   /* background value of GM/Redi coefficient m^2/s */')
155        WRITE(msgBuf,'(A)') '//  '        WRITE(msgBuf,'(A)') '//  '
156        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
157        WRITE(msgBuf,'(A)') '// Elliptic solver(s) paramters ( PARM02 in namelist ) '       &                    SQUEEZE_RIGHT , 1)
158        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)  
159          WRITE(msgBuf,'(A)')
160         & '// Elliptic solver(s) paramters ( PARM02 in namelist ) '
161          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
162         &                    SQUEEZE_RIGHT , 1)
163        WRITE(msgBuf,'(A)') '//  '        WRITE(msgBuf,'(A)') '//  '
164        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
165         &                    SQUEEZE_RIGHT , 1)
166        CALL WRITE_1D_I( cg2dMaxIters,1, INDEX_NONE,'cg2dMaxIters =',        CALL WRITE_1D_I( cg2dMaxIters,1, INDEX_NONE,'cg2dMaxIters =',
167       &'   /* Upper limit on 2d con. grad iterations  */')       &'   /* Upper limit on 2d con. grad iterations  */')
168        CALL WRITE_1D_I( cg2dChkResFreq,1, INDEX_NONE,'cg2dChkResFreq =',        CALL WRITE_1D_I( cg2dChkResFreq,1, INDEX_NONE,'cg2dChkResFreq =',
169       &'   /* 2d con. grad convergence test frequency */')       &'   /* 2d con. grad convergence test frequency */')
170        CALL WRITE_1D_R8( cg2dTargetResidual,1, INDEX_NONE,'cg2dTargetResidual =',        CALL WRITE_1D_R8( cg2dTargetResidual,1, INDEX_NONE,
171         & 'cg2dTargetResidual =',
172       &'   /* 2d con. grad target residual  */')       &'   /* 2d con. grad target residual  */')
173    
174        WRITE(msgBuf,'(A)') '//  '        WRITE(msgBuf,'(A)') '//  '
175        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
176        WRITE(msgBuf,'(A)') '// Time stepping paramters ( PARM03 in namelist ) '       &                    SQUEEZE_RIGHT , 1)
177        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        WRITE(msgBuf,'(A)')
178         & '// Time stepping paramters ( PARM03 in namelist ) '
179          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
180         &                    SQUEEZE_RIGHT , 1)
181        WRITE(msgBuf,'(A)') '//  '        WRITE(msgBuf,'(A)') '//  '
182        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
183         &                    SQUEEZE_RIGHT , 1)
184        CALL WRITE_1D_I( nIter0,1, INDEX_NONE,'nIter0 =',        CALL WRITE_1D_I( nIter0,1, INDEX_NONE,'nIter0 =',
185       &'   /* Base timestep number  */')       &'   /* Base timestep number  */')
186        CALL WRITE_1D_I( nTimeSteps,1, INDEX_NONE,'nTimeSteps =',        CALL WRITE_1D_I( nTimeSteps,1, INDEX_NONE,'nTimeSteps =',
# Line 117  C     == Local variables == Line 189  C     == Local variables ==
189       &'   /* Momentum equation timestep ( s ) */')       &'   /* Momentum equation timestep ( s ) */')
190        CALL WRITE_1D_R8( deltaTtracer,1, INDEX_NONE,'deltatTtracer =',        CALL WRITE_1D_R8( deltaTtracer,1, INDEX_NONE,'deltatTtracer =',
191       &'   /* Tracer equation timestep ( s ) */')       &'   /* Tracer equation timestep ( s ) */')
192          CALL WRITE_1D_R8( deltaTClock ,1, INDEX_NONE,'deltatTClock  =',
193         &'   /* Model clock timestep ( s ) */')
194          CALL WRITE_1D_R8( cAdjFreq,1, INDEX_NONE,'cAdjFreq =',
195         &'   /* Convective adjustment interval ( s ) */')
196        CALL WRITE_1D_R8( abEps,1, INDEX_NONE,'abEps =',        CALL WRITE_1D_R8( abEps,1, INDEX_NONE,'abEps =',
197       &'   /* Adams-Bashforth stabilizing weight */')       &'   /* Adams-Bashforth stabilizing weight */')
198        CALL WRITE_1D_R8( tauCD,1, INDEX_NONE,'tauCD =',        CALL WRITE_1D_R8( tauCD,1, INDEX_NONE,'tauCD =',
# Line 127  C     == Local variables == Line 203  C     == Local variables ==
203       &'   /* Run start time ( s ). */')       &'   /* Run start time ( s ). */')
204        CALL WRITE_1D_R8( endTime,1, INDEX_NONE,'endTime =',        CALL WRITE_1D_R8( endTime,1, INDEX_NONE,'endTime =',
205       &'   /* Integration ending time ( s ). */')       &'   /* Integration ending time ( s ). */')
206          CALL WRITE_1D_R8( pChkPtFreq,1, INDEX_NONE,'pChkPtFreq =',
207         &'   /* Permanent restart/checkpoint file interval ( s ). */')
208        CALL WRITE_1D_R8( chkPtFreq,1, INDEX_NONE,'chkPtFreq =',        CALL WRITE_1D_R8( chkPtFreq,1, INDEX_NONE,'chkPtFreq =',
209       &'   /* Restart/checkpoint file interval ( s ). */')       &'   /* Rolling restart/checkpoint file interval ( s ). */')
210        CALL WRITE_1D_R8( dumpFreq,1, INDEX_NONE,'dumpFreq =',        CALL WRITE_1D_R8( dumpFreq,1, INDEX_NONE,'dumpFreq =',
211       &'   /* Model state write out interval ( s ). */')       &'   /* Model state write out interval ( s ). */')
212    
213        WRITE(msgBuf,'(A)') '//  '        WRITE(msgBuf,'(A)') '//  '
214        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
215        WRITE(msgBuf,'(A)') '// Gridding paramters ( PARM04 in namelist ) '       &                    SQUEEZE_RIGHT , 1)
216        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        WRITE(msgBuf,'(A)')
217         & '// Gridding paramters ( PARM04 in namelist ) '
218          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
219         &                    SQUEEZE_RIGHT , 1)
220        WRITE(msgBuf,'(A)') '//  '        WRITE(msgBuf,'(A)') '//  '
221        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGHT , 1)        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
222        CALL WRITE_1D_L( usingCartesianGrid,1, INDEX_NONE,'usingCartesianGrid =',       &                    SQUEEZE_RIGHT , 1)
223          CALL WRITE_1D_L( usingCartesianGrid,1, INDEX_NONE,
224         & 'usingCartesianGrid =',
225       &'   /* Cartesian coordinates flag ( True / False ) */')       &'   /* Cartesian coordinates flag ( True / False ) */')
226        CALL WRITE_1D_L( usingSphericalPolarGrid,1, INDEX_NONE,'usingSphericalPolarGrid =',        CALL WRITE_1D_L( usingSphericalPolarGrid,1, INDEX_NONE,
227         & 'usingSphericalPolarGrid =',
228       &'   /* Spherical coordinates flag ( True / False ) */')       &'   /* Spherical coordinates flag ( True / False ) */')
229        CALL WRITE_1D_R8( delZ,Nz, INDEX_K,'delZ = ',        CALL WRITE_1D_R8( delZ,Nr, INDEX_K,'delZ = ',
230       &'   /* W spacing ( m ) */')       &'   /* W spacing ( m ) */')
231          CALL WRITE_1D_R8( delP,Nr, INDEX_K,'delP = ',
232         &'   /* W spacing ( Pa ) */')
233          CALL WRITE_1D_R8( delR,Nr, INDEX_K,'delR = ',
234         &'   /* W spacing ( units of r ) */')
235        CALL WRITE_1D_R8( delX, Nx, INDEX_I,'delX = ',        CALL WRITE_1D_R8( delX, Nx, INDEX_I,'delX = ',
236       &'   /* U spacing ( m - cartesian, degrees - spherical ) */')       &'   /* U spacing ( m - cartesian, degrees - spherical ) */')
237        CALL WRITE_1D_R8( delY, Ny, INDEX_J,'delY = ',        CALL WRITE_1D_R8( delY, Ny, INDEX_J,'delY = ',
238       &'   /* V spacing ( m - cartesian, degrees - spherical ) */')       &'   /* V spacing ( m - cartesian, degrees - spherical ) */')
239        CALL WRITE_1D_R8( phiMin, 1, INDEX_NONE,'phiMin = ',        CALL WRITE_1D_R8( phiMin, 1, INDEX_NONE,'phiMin = ',
240       &'   /* Southern boundary ( ignored - cartesian, degrees - spherical ) */')       &'   /* South edge (ignored - cartesian, degrees - spherical ) */')
241        CALL WRITE_1D_R8( thetaMin, 1, INDEX_NONE,'thetaMin = ',        CALL WRITE_1D_R8( thetaMin, 1, INDEX_NONE,'thetaMin = ',
242       &'   /* Western boundary ( ignored - cartesian, degrees - spherical ) */')       &'   /* West edge ( ignored - cartesian, degrees - spherical ) */')
243        CALL WRITE_1D_R8( rSphere, 1, INDEX_NONE,'rSphere = ',        CALL WRITE_1D_R8( rSphere, 1, INDEX_NONE,'rSphere = ',
244       &'   /* Radius ( ignored - cartesian, m - spherical ) */')       &'   /* Radius ( ignored - cartesian, m - spherical ) */')
245        DO bi=1,nSx        DO bi=1,nSx
# Line 159  C     == Local variables == Line 247  C     == Local variables ==
247          xcoord((bi-1)*sNx+I) = xc(I,1,bi,1)          xcoord((bi-1)*sNx+I) = xc(I,1,bi,1)
248         ENDDO         ENDDO
249        ENDDO        ENDDO
250        CALL WRITE_1D_R8( xcoord, Nx, INDEX_I,'xcoord = ',        CALL WRITE_1D_R8( xcoord, sNx*nSx, INDEX_I,'xcoord = ',
251       &'   /* P-point X coordinate (  m - cartesian, degrees - spherical ) */')       &'   /* P-point X coord ( m - cartesian, degrees - spherical ) */')
252        DO bj=1,nSy        DO bj=1,nSy
253         DO J=1,sNy         DO J=1,sNy
254          ycoord((bj-1)*sNy+J) = yc(1,J,1,bj)          ycoord((bj-1)*sNy+J) = yc(1,J,1,bj)
255         ENDDO         ENDDO
256        ENDDO        ENDDO
257        CALL WRITE_1D_R8( ycoord, Ny, INDEX_J,'ycoord = ',        CALL WRITE_1D_R8( ycoord, sNy*nSy, INDEX_J,'ycoord = ',
258       &'   /* P-point Y coordinate (  m - cartesian, degrees - spherical ) */')       &'   /* P-point Y coord ( m - cartesian, degrees - spherical ) */')
259        DO K=1,Nz        DO K=1,Nr
260         zcoord(K) = zc(K)         rcoord(K) = rc(K)
261        ENDDO        ENDDO
262        CALL WRITE_1D_R8( zcoord, Nz, INDEX_K,'zcoord = ',        CALL WRITE_1D_R8( rcoord, Nr, INDEX_K,'rcoord = ',
263       &'   /* P-point Z coordinate (  m ) */')       &'   /* P-point R coordinate (  units of r ) */')
264    
265    
266    

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.19

  ViewVC Help
Powered by ViewVC 1.1.22