/[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.52 by afe, Thu Jun 24 20:25:44 2004 UTC revision 1.69 by baylor, Thu Mar 10 03:45:11 2005 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
8  CBOP  CBOP
9  C     !ROUTINE: CONFIG_SUMMARY  C     !ROUTINE: CONFIG_SUMMARY
10    
11  C     !INTERFACE:  C     !INTERFACE:
12        SUBROUTINE CONFIG_SUMMARY( myThid )        SUBROUTINE CONFIG_SUMMARY( myThid )
13  C     !DESCRIPTION: \bv  
14  C     *=========================================================*  C     !DESCRIPTION:
15  C     | SUBROUTINE CONFIG_SUMMARY                                  C     This routine summarizes the model parameter settings by writing a
16  C     | o Summarize model parameter settings.                      C     tabulated list of the kernel model configuration variables.  It
17  C     *=========================================================*  C     describes all the parameter settings in force and the meaning and
18  C     | This routine writes a tabulated summary of the kernel      C     units of those parameters. Individal packages report a similar
19  C     | model configuration. Information describes all the  C     table for each package using the same format as employed here. If
20  C     | parameter setting in force and the meaning and units of  C     parameters are missing or incorrectly described or dimensioned
21  C     | those parameters. Individal packages report a similar  C     please contact <MITgcm-support@mitgcm.org>
 C     | table for each package using the same format as employed  
 C     | here. If parameters are missing or incorrectly described  
 C     | or dimensioned please contact support@mitgcm.org  
 C     *=========================================================*  
 C     \ev  
22    
23  C     !USES:  C     !USES:
24        IMPLICIT NONE        IMPLICIT NONE
 C     === Global variables ===  
25  #include "SIZE.h"  #include "SIZE.h"
26  #include "EEPARAMS.h"  #include "EEPARAMS.h"
27  #include "PARAMS.h"  #include "PARAMS.h"
28  #include "EOS.h"  #include "EOS.h"
29  #include "GRID.h"  #include "GRID.h"
30  #include "DYNVARS.h"  #include "DYNVARS.h"
31    #ifdef ALLOW_MNC
32    #include "MNC_PARAMS.h"
33    #endif
34    
35  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
36  C     == Routine arguments ==  C     myThid ::  Number of this instance of CONFIG_SUMMARY
 C     myThid -  Number of this instance of CONFIG_SUMMARY  
37        INTEGER myThid        INTEGER myThid
38  CEndOfInterface  CEOP
39    
40  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
 C     == Local variables ==  
41  C     msgBuf :: Temp. for building output string.  C     msgBuf :: Temp. for building output string.
42  C     I,J,K  :: Loop counters.  C     I,J,K  :: Loop counters.
43  C     bi,bj  :: Tile loop counters.  C     bi,bj  :: Tile loop counters.
# Line 54  C     zcoord :: Line 52  C     zcoord ::
52        _RL                     rcoord(Nr+1)        _RL                     rcoord(Nr+1)
53        INTEGER coordLine        INTEGER coordLine
54        INTEGER tileLine        INTEGER tileLine
 CEOP  
55    
56    
57        _BARRIER        _BARRIER
# Line 85  CEOP Line 82  CEOP
82        WRITE(msgBuf,'(A,A40)') 'buoyancyRelation = ', buoyancyRelation        WRITE(msgBuf,'(A,A40)') 'buoyancyRelation = ', buoyancyRelation
83        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
84       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
85          CALL WRITE_0D_L( fluidIsAir,   INDEX_NONE,
86         & 'fluidIsAir  =', '  /* fluid major constituent is Air */')
87          CALL WRITE_0D_L( fluidIsWater, INDEX_NONE,
88         & 'fluidIsWater=', '  /* fuild major constituent is Water */')
89          CALL WRITE_0D_L( usingPCoords, INDEX_NONE,
90         & 'usingPCoords =', '  /* use p (or p*) vertical coordinate */')
91          CALL WRITE_0D_L( usingZCoords, INDEX_NONE,
92         & 'usingZCoords =', '  /* use z (or z*) vertical coordinate */')
93        CALL WRITE_1D_R8( tRef, Nr, INDEX_K,'tRef =',        CALL WRITE_1D_R8( tRef, Nr, INDEX_K,'tRef =',
94       &'   /* Reference temperature profile ( oC or oK ) */')       &'   /* Reference temperature profile ( oC or oK ) */')
95        CALL WRITE_1D_R8( sRef, Nr, INDEX_K,'sRef =',        CALL WRITE_1D_R8( sRef, Nr, INDEX_K,'sRef =',
96       &'   /* Reference salinity profile ( ppt ) */')       &'   /* Reference salinity profile ( ppt ) */')
97        CALL WRITE_0D_R8( viscAh, INDEX_NONE,'viscAh =',        CALL WRITE_0D_R8( viscAh, INDEX_NONE,'viscAh =',
98       &'   /* Lateral eddy viscosity ( m^2/s ) */')       &'   /* Lateral eddy viscosity ( m^2/s ) */')
99          IF ( viscAhD.NE.viscAh )
100         & CALL WRITE_0D_R8( viscAhD, INDEX_NONE,'viscAhD =',
101         & '  /* Lateral eddy viscosity (Divergence)( m^2/s ) */')
102          IF ( viscAhZ.NE.viscAh )
103         & CALL WRITE_0D_R8( viscAhZ, INDEX_NONE,'viscAhZ =',
104         & '  /* Lateral eddy viscosity (Vorticity) ( m^2/s ) */')
105        CALL WRITE_0D_R8( viscAhMax, INDEX_NONE,'viscAhMax =',        CALL WRITE_0D_R8( viscAhMax, INDEX_NONE,'viscAhMax =',
106       &'   /* Maximum lateral eddy viscosity ( m^2/s ) */')       &'   /* Maximum lateral eddy viscosity ( m^2/s ) */')
107        CALL WRITE_0D_R8( viscAhGrid, INDEX_NONE,'viscAhGrid =',        CALL WRITE_0D_R8( viscAhGrid, INDEX_NONE,'viscAhGrid =',
108       &'   /* Grid dependent lateral eddy viscosity ( non-dim. ) */')       &'   /* Grid dependent lateral eddy viscosity ( non-dim. ) */')
109          CALL WRITE_0D_L( useFullLeith, INDEX_NONE,
110         &'useFullLeith =',
111         &'   /* Use Full Form of Leith Viscosity on/off flag*/')
112        CALL WRITE_0D_R8( viscC2leith, INDEX_NONE,'viscC2leith =',        CALL WRITE_0D_R8( viscC2leith, INDEX_NONE,'viscC2leith =',
113       &'   /* Leith harmonic viscosity factor ( non-dom. ) */')       &'   /* Leith harmonic viscosity factor ( on grad(vort), non-dim. ) */')
114          CALL WRITE_0D_R8( viscC2leithD, INDEX_NONE,'viscC2leithD =',
115         &'   /* Leith harmonic viscosity factor ( on grad(div), non-dim. ) */')
116          CALL WRITE_0D_R8( viscC2smag, INDEX_NONE,'viscC2smag =',
117         &'   /* Smagorinsky harmonic viscosity factor (non-dim.) */')
118        CALL WRITE_0D_R8( viscA4, INDEX_NONE,'viscA4 =',        CALL WRITE_0D_R8( viscA4, INDEX_NONE,'viscA4 =',
119       &'   /* Lateral biharmonic viscosity ( m^4/s ) */')       &'   /* Lateral biharmonic viscosity ( m^4/s ) */')
120          IF ( viscA4D.NE.viscA4 )
121         & CALL WRITE_0D_R8( viscA4D, INDEX_NONE,'viscA4D =',
122         & '  /* Lateral biharmonic viscosity (Divergence)( m^4/s ) */')
123          IF ( viscA4Z.NE.viscA4 )
124         & CALL WRITE_0D_R8( viscA4Z, INDEX_NONE,'viscA4Z =',
125         & '  /* Lateral biharmonic viscosity (Vorticity) ( m^4/s ) */')
126        CALL WRITE_0D_R8( viscA4Max, INDEX_NONE,'viscA4Max =',        CALL WRITE_0D_R8( viscA4Max, INDEX_NONE,'viscA4Max =',
127       &'   /* Maximum biharmonic viscosity ( m^2/s ) */')       &'   /* Maximum biharmonic viscosity ( m^2/s ) */')
128        CALL WRITE_0D_R8( viscA4Grid, INDEX_NONE,'viscA4Grid =',        CALL WRITE_0D_R8( viscA4Grid, INDEX_NONE,'viscA4Grid =',
129       &'   /* Grid dependent biharmonic viscosity ( non-dim. ) */')       &'   /* Grid dependent biharmonic viscosity ( non-dim. ) */')
130        CALL WRITE_0D_R8( viscC4leith, INDEX_NONE,'viscC4leith =',        CALL WRITE_0D_R8( viscC4leith, INDEX_NONE,'viscC4leith =',
131       &'   /* Leith biharmonic viscosity factor ( non-dom. ) */')       &'   /* Leith biharmonic viscosity factor ( on grad(vort), non-dom. ) */')
132          CALL WRITE_0D_R8( viscC4leithD, INDEX_NONE,'viscC4leithD =',
133         &'   /* Leith biharmonic viscosity factor ( on grad(div), non-dom. ) */')
134        CALL WRITE_0D_L( no_slip_sides, INDEX_NONE,        CALL WRITE_0D_L( no_slip_sides, INDEX_NONE,
135       & 'no_slip_sides =', '  /* Viscous BCs: No-slip sides */')       & 'no_slip_sides =', '  /* Viscous BCs: No-slip sides */')
 c     IF ( viscAz .NE. UNSET_RL ) THEN  
 c      CALL WRITE_0D_R8( viscAz, INDEX_NONE,'viscAz =',  
 c    & '   /* Vertical eddy viscosity ( m^2/s ) */')  
 c     ENDIF  
 c     IF ( viscAp .NE. UNSET_RL ) THEN  
 c      CALL WRITE_0D_R8( viscAp, INDEX_NONE,'viscAp =',  
 c    & '   /* Vertical eddy viscosity ( Pa^2/s ) */')  
 c     ENDIF  
136        CALL WRITE_0D_R8( viscAr,  INDEX_NONE,'viscAr =',        CALL WRITE_0D_R8( viscAr,  INDEX_NONE,'viscAr =',
137       &'   /* Vertical eddy viscosity ( units of r^2/s ) */')       &'   /* Vertical eddy viscosity ( units of r^2/s ) */')
138          CALL WRITE_0D_L( no_slip_bottom, INDEX_NONE,
139         & 'no_slip_bottom =', '  /* Viscous BCs: No-slip bottom */')
140        CALL WRITE_0D_R8( diffKhT, INDEX_NONE,'diffKhT =',        CALL WRITE_0D_R8( diffKhT, INDEX_NONE,'diffKhT =',
141       &'   /* Laplacian diffusion of heat laterally ( m^2/s ) */')       &'   /* Laplacian diffusion of heat laterally ( m^2/s ) */')
142        CALL WRITE_0D_R8( diffK4T, INDEX_NONE,'diffK4T =',        CALL WRITE_0D_R8( diffK4T, INDEX_NONE,'diffK4T =',
143       &'   /* Bihaarmonic diffusion of heat laterally ( m^4/s ) */')       &'   /* Bihaarmonic diffusion of heat laterally ( m^4/s ) */')
 c     CALL WRITE_0D_R8( diffKzT, INDEX_NONE,'diffKzT =',  
 c    &'   /* Laplacian diffusion of heat vertically ( m^2/s ) */')  
       CALL WRITE_0D_R8( diffKrT, INDEX_NONE,'diffKrT =',  
      &'   /* Laplacian diffusion of heat vertically ( m^2/s ) */')  
144        CALL WRITE_0D_R8( diffKhS, INDEX_NONE,'diffKhS =',        CALL WRITE_0D_R8( diffKhS, INDEX_NONE,'diffKhS =',
145       &'   /* Laplacian diffusion of salt laterally ( m^2/s ) */')       &'   /* Laplacian diffusion of salt laterally ( m^2/s ) */')
146        CALL WRITE_0D_R8( diffK4S, INDEX_NONE,'diffK4S =',        CALL WRITE_0D_R8( diffK4S, INDEX_NONE,'diffK4S =',
147       &'   /* Bihaarmonic diffusion of salt laterally ( m^4/s ) */')       &'   /* Bihaarmonic diffusion of salt laterally ( m^4/s ) */')
148  c     CALL WRITE_0D_R8( diffKzS, INDEX_NONE,'diffKzS =',        CALL WRITE_1D_R8( diffKrNrT, Nr, INDEX_K,'diffKrNrT =',
149  c    &'   /* Laplacian diffusion of salt vertically ( m^2/s ) */')       & ' /* vertical profile of vertical diffusion of Temp ( m^2/s )*/')
150        CALL WRITE_0D_R8( diffKrS, INDEX_NONE,'diffKrS =',        CALL WRITE_1D_R8( diffKrNrS, Nr, INDEX_K,'diffKrNrS =',
151       &'   /* Laplacian diffusion of salt vertically ( m^2/s ) */')       & ' /* vertical profile of vertical diffusion of Salt ( m^2/s )*/')
152        CALL WRITE_0D_R8( diffKrBL79surf, INDEX_NONE,'diffKrBL79surf =',        CALL WRITE_0D_R8( diffKrBL79surf, INDEX_NONE,'diffKrBL79surf =',
153       &'   /* Surface diffusion for Bryan and Lewis 1979 ( m^2/s ) */')       &'   /* Surface diffusion for Bryan and Lewis 1979 ( m^2/s ) */')
154        CALL WRITE_0D_R8( diffKrBL79deep, INDEX_NONE,'diffKrBL79deep =',        CALL WRITE_0D_R8( diffKrBL79deep, INDEX_NONE,'diffKrBL79deep =',
# Line 158  c    &'   /* Laplacian diffusion of salt Line 174  c    &'   /* Laplacian diffusion of salt
174       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
175          ENDDO          ENDDO
176        ENDIF        ENDIF
177        IF ( buoyancyRelation .eq. 'ATMOSPHERIC' ) THEN        IF ( fluidIsAir ) THEN
178         CALL WRITE_0D_R8( atm_Rd, INDEX_NONE, 'atm_Rd =',         CALL WRITE_0D_R8( atm_Rd, INDEX_NONE, 'atm_Rd =',
179       & '  /* gas constant for dry air ( J/kg/K ) */')       & '  /* gas constant for dry air ( J/kg/K ) */')
180        CALL WRITE_0D_R8( atm_Cp, INDEX_NONE, 'atm_Cp =',        CALL WRITE_0D_R8( atm_Cp, INDEX_NONE, 'atm_Cp =',
# Line 240  c    &'   /* Laplacian diffusion of salt Line 256  c    &'   /* Laplacian diffusion of salt
256        CALL WRITE_0D_R8( salt_EvPrRn, INDEX_NONE,        CALL WRITE_0D_R8( salt_EvPrRn, INDEX_NONE,
257       &'salt_EvPrRn =',       &'salt_EvPrRn =',
258       &' /* Salin. of Evap/Prec/R (UNSET=use local S)(ppt)*/')       &' /* Salin. of Evap/Prec/R (UNSET=use local S)(ppt)*/')
       CALL WRITE_0D_R8( trac_EvPrRn, INDEX_NONE,  
      &'trac_EvPrRn =',  
      &' /* Tracer in Evap/Prec/R (UNSET=use local Tr)*/')  
259        ELSE        ELSE
260        CALL WRITE_0D_R8( convertFW2Salt, INDEX_NONE,        CALL WRITE_0D_R8( convertFW2Salt, INDEX_NONE,
261       &'convertFW2Salt =',       &'convertFW2Salt =',
# Line 288  c    &'   /* Laplacian diffusion of salt Line 301  c    &'   /* Laplacian diffusion of salt
301        CALL WRITE_0D_L( multiDimAdvection, INDEX_NONE,        CALL WRITE_0D_L( multiDimAdvection, INDEX_NONE,
302       & 'multiDimAdvection =',       & 'multiDimAdvection =',
303       &'   /* enable/disable Multi-Dim Advection */')       &'   /* enable/disable Multi-Dim Advection */')
304          CALL WRITE_0D_L( useMultiDimAdvec, INDEX_NONE,
305         & 'useMultiDimAdvec =',
306         &'   /* Multi-Dim Advection is/is-not used */')
307        CALL WRITE_0D_L( implicitDiffusion, INDEX_NONE,        CALL WRITE_0D_L( implicitDiffusion, INDEX_NONE,
308       & 'implicitDiffusion =','/* Implicit Diffusion on/off flag */')       & 'implicitDiffusion =','/* Implicit Diffusion on/off flag */')
309        CALL WRITE_0D_L( tempStepping,  INDEX_NONE,        CALL WRITE_0D_L( tempStepping,  INDEX_NONE,
# Line 324  c    &'   /* Laplacian diffusion of salt Line 340  c    &'   /* Laplacian diffusion of salt
340        CALL WRITE_0D_R8( cg2dTargetResidual, INDEX_NONE,        CALL WRITE_0D_R8( cg2dTargetResidual, INDEX_NONE,
341       & 'cg2dTargetResidual =',       & 'cg2dTargetResidual =',
342       &'   /* 2d con. grad target residual  */')       &'   /* 2d con. grad target residual  */')
343          CALL WRITE_0D_R8( cg2dTargetResWunit, INDEX_NONE,
344         & 'cg2dTargetResWunit =',
345         &'   /* CG2d target residual [W units] */')
346          CALL WRITE_0D_I( cg2dPreCondFreq, INDEX_NONE,'cg2dPreCondFreq =',
347         &'   /* Freq. for updating cg2d preconditioner */')
348    
349        WRITE(msgBuf,'(A)') '//  '        WRITE(msgBuf,'(A)') '//  '
350        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
# Line 343  c    &'   /* Laplacian diffusion of salt Line 364  c    &'   /* Laplacian diffusion of salt
364       &'   /* Momentum equation timestep ( s ) */')       &'   /* Momentum equation timestep ( s ) */')
365        CALL WRITE_0D_R8( deltaTfreesurf,INDEX_NONE,'deltaTfreesurf =',        CALL WRITE_0D_R8( deltaTfreesurf,INDEX_NONE,'deltaTfreesurf =',
366       &'   /* FreeSurface equation timestep ( s ) */')       &'   /* FreeSurface equation timestep ( s ) */')
367        CALL WRITE_0D_R8( deltaTtracer, INDEX_NONE,'deltatTtracer =',        CALL WRITE_1D_R8( dTtracerLev, Nr, INDEX_K, 'dTtracerLev =',
368       &'   /* Tracer equation timestep ( s ) */')       &'   /* Tracer equation timestep ( s ) */')
369        CALL WRITE_0D_R8( deltaTClock, INDEX_NONE,'deltatTClock  =',        CALL WRITE_0D_R8( deltaTClock, INDEX_NONE,'deltatTClock  =',
370       &'   /* Model clock timestep ( s ) */')       &'   /* Model clock timestep ( s ) */')
# Line 367  c    &'   /* Laplacian diffusion of salt Line 388  c    &'   /* Laplacian diffusion of salt
388       &'   /* Permanent restart/checkpoint file interval ( s ). */')       &'   /* Permanent restart/checkpoint file interval ( s ). */')
389        CALL WRITE_0D_R8( chkPtFreq, INDEX_NONE,'chkPtFreq =',        CALL WRITE_0D_R8( chkPtFreq, INDEX_NONE,'chkPtFreq =',
390       &'   /* Rolling restart/checkpoint file interval ( s ). */')       &'   /* Rolling restart/checkpoint file interval ( s ). */')
391          CALL WRITE_0D_L(pickup_write_mdsio,INDEX_NONE,
392         &     'pickup_write_mdsio =', '   /* Model IO flag. */')
393          CALL WRITE_0D_L(pickup_read_mdsio,INDEX_NONE,
394         &     'pickup_read_mdsio =', '   /* Model IO flag. */')
395    #ifdef ALLOW_MNC
396          CALL WRITE_0D_L(pickup_write_mnc,INDEX_NONE,
397         &     'pickup_write_mnc =', '   /* Model IO flag. */')
398          CALL WRITE_0D_L(pickup_read_mnc,INDEX_NONE,
399         &     'pickup_read_mnc =', '   /* Model IO flag. */')
400    #endif
401          CALL WRITE_0D_L(pickup_write_immed,INDEX_NONE,
402         &     'pickup_write_immed =','   /* Model IO flag. */')
403        CALL WRITE_0D_R8( dumpFreq, INDEX_NONE,'dumpFreq =',        CALL WRITE_0D_R8( dumpFreq, INDEX_NONE,'dumpFreq =',
404       &'   /* Model state write out interval ( s ). */')       &'   /* Model state write out interval ( s ). */')
405          CALL WRITE_0D_L(snapshot_mdsio,INDEX_NONE,
406         &     'snapshot_mdsio =', '   /* Model IO flag. */')
407    #ifdef ALLOW_MNC
408          CALL WRITE_0D_L(snapshot_mnc,INDEX_NONE,
409         &     'snapshot_mnc =', '   /* Model IO flag. */')
410    #endif
411          CALL WRITE_0D_R8( monitorFreq, INDEX_NONE,'monitorFreq =',
412         &'   /* Monitor output interval ( s ). */')
413          CALL WRITE_0D_L(monitor_stdio,INDEX_NONE,
414         &     'monitor_stdio =', '   /* Model IO flag. */')
415    #ifdef ALLOW_MNC
416          CALL WRITE_0D_L(monitor_mnc,INDEX_NONE,
417         &     'monitor_mnc =', '   /* Model IO flag. */')
418    #endif
419        CALL WRITE_0D_R8( externForcingPeriod, INDEX_NONE,        CALL WRITE_0D_R8( externForcingPeriod, INDEX_NONE,
420       &   'externForcingPeriod =', '   /* forcing period (s) */')       &   'externForcingPeriod =', '   /* forcing period (s) */')
421        CALL WRITE_0D_R8( externForcingCycle, INDEX_NONE,        CALL WRITE_0D_R8( externForcingCycle, INDEX_NONE,

Legend:
Removed from v.1.52  
changed lines
  Added in v.1.69

  ViewVC Help
Powered by ViewVC 1.1.22