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

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

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

revision 1.38 by adcroft, Wed Dec 9 16:11:52 1998 UTC revision 1.39 by adcroft, Tue Dec 15 00:20:34 1998 UTC
# Line 57  C     dependency. Line 57  C     dependency.
57        _RL diffKrTDefault        _RL diffKrTDefault
58        _RL diffKrSDefault        _RL diffKrSDefault
59        _RL hFacMinDrDefault        _RL hFacMinDrDefault
60        _RL delRDefault        _RL delRDefault(Nr)
61  C     zCoordInputData - These are used to select between different coordinate systems.  C     zCoordInputData - These are used to select between different coordinate systems.
62  C     pCoordInputData   The vertical coordinate system in the rest of the model is  C     pCoordInputData   The vertical coordinate system in the rest of the model is
63  C     rCoordInputData   written in terms of r. In the model "data" file input data can  C     rCoordInputData   written in terms of r. In the model "data" file input data can
# Line 85  C--   Continuous equation parameters Line 85  C--   Continuous equation parameters
85       &  diffKhS, diffKzS, diffK4S,       &  diffKhS, diffKzS, diffK4S,
86       &  GMmaxslope,GMlength,GMalpha,GMdepth,GMkbackground,GMmaxval,       &  GMmaxslope,GMlength,GMalpha,GMdepth,GMkbackground,GMmaxval,
87       &  tRef, sRef, eosType,       &  tRef, sRef, eosType,
88         & no_slip_sides,no_slip_bottom,
89       & momViscosity,  momAdvection, momForcing, useCoriolis,       & momViscosity,  momAdvection, momForcing, useCoriolis,
90       & momPressureForcing, metricTerms,       & momPressureForcing, metricTerms,
91       & tempDiffusion, tempAdvection, tempForcing,       & tempDiffusion, tempAdvection, tempForcing,
# Line 94  C--   Continuous equation parameters Line 95  C--   Continuous equation parameters
95       & viscAr, diffKrT, diffKrS, hFacMinDr,       & viscAr, diffKrT, diffKrS, hFacMinDr,
96       & viscAp, diffKpT, diffKpS, hFacMinDp,       & viscAp, diffKpT, diffKpS, hFacMinDp,
97       & rhoConst, buoyancyRelation,       & rhoConst, buoyancyRelation,
98         & writeStatePrec, readBinaryPrec, writeStatePrec,
99       & openBoundaries       & openBoundaries
100    
101  C--   Elliptic solver parameters  C--   Elliptic solver parameters
# Line 128  C--   Open Boundaries Line 130  C--   Open Boundaries
130  C  C
131        _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
132    
133    C     Defaults values for input parameters
134          CALL SET_DEFAULTS(
135         O   viscArDefault, diffKrTDefault, diffKrSDefault,
136         O   hFacMinDrDefault, delRdefault,
137         I   myThid )
138    
139  C--   Initialise "which vertical coordinate system used" flags.  C--   Initialise "which vertical coordinate system used" flags.
140        zCoordInputData = .FALSE.        zCoordInputData = .FALSE.
141        pCoordInputData = .FALSE.        pCoordInputData = .FALSE.
# Line 198  C--   Read settings from model parameter Line 206  C--   Read settings from model parameter
206        REWIND(iUnit)        REWIND(iUnit)
207    
208  C--   Set default "physical" parameters  C--   Set default "physical" parameters
       DO K =1,Nr  
        tRef(K) = 30.D0 - FLOAT( K )  
       ENDDO  
       gravity  =   9.81D0  
       gBaro    = gravity  
       rhoNil   = 999.8D0  
       rhoConst = 999.8D0  
       f0       = 1.D-4  
       beta     = 1.D-11  
       viscAh   = 1.D3  
       diffKhT  = 1.D3  
       diffKhS  = 1.D3  
       viscArDefault = 1.D-3  
209        viscAz   = UNSET_RL            viscAz   = UNSET_RL    
210        viscAr   = UNSET_RL        viscAr   = UNSET_RL
211        viscAp   = UNSET_RL        viscAp   = UNSET_RL
       diffKrTDefault = 1.D-5  
212        diffKzT  = UNSET_RL        diffKzT  = UNSET_RL
213        diffKpT  = UNSET_RL        diffKpT  = UNSET_RL
214        diffKrT  = UNSET_RL        diffKrT  = UNSET_RL
       diffKrSDefault = 1.D-5  
215        diffKzS  = UNSET_RL        diffKzS  = UNSET_RL
216        diffKpS  = UNSET_RL        diffKpS  = UNSET_RL
217        diffKrS  = UNSET_RL        diffKrS  = UNSET_RL
218        viscA4   = 0.        gBaro    = UNSET_RL
219        diffK4T  = 0.        rhoConst = UNSET_RL
       diffK4S  = 0.  
       GMmaxslope   =   1.D-2  
       GMlength     = 200.D3  
       GMalpha      = 0.D0  
       GMdepth      = 1000.D0  
       GMkbackground= 0.D0  
       GMmaxval     = 2500.D0  
       tAlpha       = 2.D-4  
       sBeta        = 7.4D-4  
       eosType      = 'LINEAR'  
       buoyancyRelation    = 'OCEANIC'  
       implicitFreeSurface = .TRUE.  
       rigidLid            = .FALSE.  
       freeSurfFac         = 1.D0  
       hFacMin             = 0.D0  
       hFacMinDrDefault    = 0.D0  
220        hFacMinDr           = UNSET_RL        hFacMinDr           = UNSET_RL
221        hFacMinDz           = UNSET_RL        hFacMinDz           = UNSET_RL
222        hFacMinDp           = UNSET_RL        hFacMinDp           = UNSET_RL
       momViscosity        = .TRUE.  
       momAdvection        = .TRUE.  
       momForcing          = .TRUE.  
       useCoriolis         = .TRUE.  
       momPressureForcing  = .TRUE.  
       momStepping         = .TRUE.  
       tempStepping        = .TRUE.  
       saltStepping        = .TRUE.  
       metricTerms         = .TRUE.  
       implicitDiffusion   = .FALSE.  
       openBoundaries      = .FALSE.  
223        READ(UNIT=iUnit,NML=PARM01,IOSTAT=errIO)        READ(UNIT=iUnit,NML=PARM01,IOSTAT=errIO)
224        IF ( errIO .LT. 0 ) THEN        IF ( errIO .LT. 0 ) THEN
225         WRITE(msgBuf,'(A)')         WRITE(msgBuf,'(A)')
# Line 273  C--   Set default "physical" parameters Line 239  C--   Set default "physical" parameters
239        ENDIF        ENDIF
240        IF ( implicitFreeSurface ) freeSurfFac = 1.D0        IF ( implicitFreeSurface ) freeSurfFac = 1.D0
241        IF ( rigidLid            ) freeSurfFac = 0.D0        IF ( rigidLid            ) freeSurfFac = 0.D0
242          IF ( gBaro .EQ. UNSET_RL ) gBaro=gravity
243          IF ( rhoConst .EQ. UNSET_RL ) rhoConst=rhoNil
244  C--   Momentum viscosity on/off flag.  C--   Momentum viscosity on/off flag.
245        IF ( momViscosity        ) THEN        IF ( momViscosity        ) THEN
246         vfFacMom = 1.D0         vfFacMom = 1.D0
# Line 371  C--   z,p,r coord input switching. Line 339  C--   z,p,r coord input switching.
339        ELSE        ELSE
340         recip_rhoNil = 1.D0 / rhoNil         recip_rhoNil = 1.D0 / rhoNil
341        ENDIF        ENDIF
342          IF ( HeatCapacity_Cp .LE. 0. ) THEN
343           WRITE(msgBuf,'(A)')
344         &  'S/R INI_PARMS: HeatCapacity_Cp must be greater than 0.'
345           CALL PRINT_ERROR( msgBuf , myThid)
346           STOP 'ABNORMAL END: S/R INI_PARMS'
347          ELSE
348           recip_Cp = 1.D0 / HeatCapacity_Cp
349          ENDIF
350        IF ( gravity .LE. 0. ) THEN        IF ( gravity .LE. 0. ) THEN
351         WRITE(msgBuf,'(A)')         WRITE(msgBuf,'(A)')
352       &  'S/R INI_PARMS: gravity must be greater than 0.'       &  'S/R INI_PARMS: gravity must be greater than 0.'
# Line 381  C--   z,p,r coord input switching. Line 357  C--   z,p,r coord input switching.
357        ENDIF        ENDIF
358    
359  C--   Elliptic solver parameters  C--   Elliptic solver parameters
       cg2dMaxIters       = 150  
       cg2dTargetResidual = 1.D-7  
       cg2dChkResFreq     = 1  
       cg3dMaxIters       = 150  
       cg3dTargetResidual = 1.D-7  
       cg3dChkResFreq     = 1  
       cg2dpcOffDFac      = 0.51D0  
360        READ(UNIT=iUnit,NML=PARM02,IOSTAT=errIO)        READ(UNIT=iUnit,NML=PARM02,IOSTAT=errIO)
361        IF ( errIO .LT. 0 ) THEN        IF ( errIO .LT. 0 ) THEN
362         WRITE(msgBuf,'(A)')         WRITE(msgBuf,'(A)')
# Line 407  C--   Elliptic solver parameters Line 376  C--   Elliptic solver parameters
376        ENDIF            ENDIF    
377    
378  C--   Time stepping parameters  C--   Time stepping parameters
       startTime         = 0.  
       nTimeSteps        = 0  
       endTime           = 0.  
       nIter0            = 0  
       deltaT            = 0.  
       deltaTClock       = 0.  
       deltaTtracer      = 0.  
       deltaTMom         = 0.  
       abEps             = 0.01  
       pchkPtFreq        = 0.  
       chkPtFreq         = 3600.*25  
       dumpFreq          = 3600.*100  
       taveFreq          = 0.  
       writeStatePrec    = precFloat64  
       nCheckLev         = 1  
       checkPtSuff(1)    = 'ckptA'  
       checkPtSuff(2)    = 'ckptB'  
       cAdjFreq          = -1.D0  
379        rCD               = -1.D0        rCD               = -1.D0
       tauCD             =  0.D0  
       tauThetaClimRelax =  0.D0  
       doThetaClimRelax  = .FALSE.  
       tauSaltClimRelax  =  0.D0  
       doSaltClimRelax   = .FALSE.  
       periodicExternalForcing = .FALSE.  
       externForcingPeriod     = 0.  
       externForcingCycle      = 0.  
380        READ(UNIT=iUnit,NML=PARM03,IOSTAT=errIO)        READ(UNIT=iUnit,NML=PARM03,IOSTAT=errIO)
381        IF ( errIO .LT. 0 ) THEN        IF ( errIO .LT. 0 ) THEN
382         WRITE(msgBuf,'(A)')         WRITE(msgBuf,'(A)')
# Line 541  C       code is being compiled Line 484  C       code is being compiled
484  C--   Grid parameters  C--   Grid parameters
485  C     In cartesian coords distances are in metres  C     In cartesian coords distances are in metres
486        rkFac = UNSET_I        rkFac = UNSET_I
       usingCartesianGrid = .TRUE.  
       delRDefault =  1.D2  
487        DO K =1,Nr        DO K =1,Nr
488         delZ(K) = UNSET_RL         delZ(K) = UNSET_RL
489         delP(K) = UNSET_RL         delP(K) = UNSET_RL
490         delR(K) = UNSET_RL         delR(K) = UNSET_RL
491        ENDDO        ENDDO
       dxSpacing = 20.D0 * 1000.D0  
       dySpacing = 20.D0 * 1000.D0  
       DO i=1,Nx  
        delX(i) = dxSpacing  
       ENDDO  
       DO j=1,Ny  
        delY(j) = dySpacing  
       ENDDO  
492  C     In spherical polar distances are in degrees  C     In spherical polar distances are in degrees
       usingSphericalPolarGrid = .FALSE.  
       phiMin    = -5.0  
       thetaMin  = 0.  
       rSphere   = 6370. * 1.D3  
493        recip_rSphere  = 1.D0/rSphere        recip_rSphere  = 1.D0/rSphere
494        IF ( usingSphericalPolarGrid ) THEN        dxSpacing = UNSET_RL
495         dxSpacing = 1.        dySpacing = UNSET_RL
        dySpacing = 1.  
        DO I=1,Nx  
         delX(I) = dxSpacing  
        ENDDO  
        DO J=1,Ny  
         delY(J) = dySpacing  
        ENDDO  
       ENDIF  
   
496        READ(UNIT=iUnit,NML=PARM04,IOSTAT=errIO)        READ(UNIT=iUnit,NML=PARM04,IOSTAT=errIO)
497        IF ( errIO .LT. 0 ) THEN        IF ( errIO .LT. 0 ) THEN
498         WRITE(msgBuf,'(A)')         WRITE(msgBuf,'(A)')
# Line 591  C     In spherical polar distances are i Line 511  C     In spherical polar distances are i
511         STOP 'ABNORMAL END: S/R INI_PARMS'         STOP 'ABNORMAL END: S/R INI_PARMS'
512        ENDIF            ENDIF    
513  C  C
514          IF ( dxSpacing .NE. UNSET_RL ) THEN
515           DO i=1,Nx
516            delX(i) = dxSpacing
517           ENDDO
518          ENDIF
519          IF ( dySpacing .NE. UNSET_RL ) THEN
520           DO j=1,Ny
521            delY(j) = dySpacing
522           ENDDO
523          ENDIF
524        IF ( rSphere .NE. 0 ) THEN        IF ( rSphere .NE. 0 ) THEN
525         recip_rSphere = 1.D0/rSphere         recip_rSphere = 1.D0/rSphere
526        ELSE        ELSE
# Line 648  C--   p, z, r coord parameters Line 578  C--   p, z, r coord parameters
578         IF ( delR(K) .NE. UNSET_RL ) rCoordInputData = .TRUE.         IF ( delR(K) .NE. UNSET_RL ) rCoordInputData = .TRUE.
579         IF ( delR(K) .EQ. UNSET_RL ) delR(K) = delZ(K)         IF ( delR(K) .EQ. UNSET_RL ) delR(K) = delZ(K)
580         IF ( delR(K) .EQ. UNSET_RL ) delR(K) = delP(K)         IF ( delR(K) .EQ. UNSET_RL ) delR(K) = delP(K)
581         IF ( delR(K) .EQ. UNSET_RL ) delR(K) = delRDefault         IF ( delR(K) .EQ. UNSET_RL ) delR(K) = delRDefault(K)
582        ENDDO        ENDDO
583  C     Check for multiple coordinate systems  C     Check for multiple coordinate systems
584        coordsSet = 0        CoordsSet = 0
585        IF ( zCoordInputData ) coordsSet = coordsSet + 1        IF ( zCoordInputData ) coordsSet = coordsSet + 1
586        IF ( pCoordInputData ) coordsSet = coordsSet + 1        IF ( pCoordInputData ) coordsSet = coordsSet + 1
587        IF ( rCoordInputData ) coordsSet = coordsSet + 1        IF ( rCoordInputData ) coordsSet = coordsSet + 1
# Line 715  C     being combined and a single frame Line 645  C     being combined and a single frame
645        IF ( pCoordInputData ) usingPCoords = .TRUE.        IF ( pCoordInputData ) usingPCoords = .TRUE.
646    
647  C-- OBCS  C-- OBCS
       DO I=1,Nx  
        OB_Jnorth(I)=0  
        OB_Jsouth(I)=0  
       ENDDO  
       DO J=1,Ny  
        OB_Ieast(J)=0  
        OB_Iwest(J)=0  
       ENDDO  
648        IF (openBoundaries) THEN        IF (openBoundaries) THEN
649         READ(UNIT=iUnit,NML=PARM06)         READ(UNIT=iUnit,NML=PARM06)
650         DO J=1,Ny         DO J=1,Ny

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39

  ViewVC Help
Powered by ViewVC 1.1.22