49 |
|
|
50 |
C-- COMMON /PARM_C/ Character valued parameters used by the model. |
C-- COMMON /PARM_C/ Character valued parameters used by the model. |
51 |
C checkPtSuff :: List of checkpoint file suffices |
C checkPtSuff :: List of checkpoint file suffices |
52 |
|
C tRefFile :: File containing reference Potential Temperat. tRef (1.D) |
53 |
|
C sRefFile :: File containing reference salinity/spec.humid. sRef (1.D) |
54 |
|
C rhoRefFile :: File containing reference density profile rhoRef (1.D) |
55 |
|
C delRFile :: File containing vertical grid spacing delR (1.D array) |
56 |
|
C delRcFile :: File containing vertical grid spacing delRc (1.D array) |
57 |
C delXFile :: File containing X-spacing grid definition (1.D array) |
C delXFile :: File containing X-spacing grid definition (1.D array) |
58 |
C delYFile :: File containing Y-spacing grid definition (1.D array) |
C delYFile :: File containing Y-spacing grid definition (1.D array) |
59 |
C horizGridFile :: File containing horizontal-grid definition |
C horizGridFile :: File containing horizontal-grid definition |
60 |
C (only when using curvilinear_grid) |
C (only when using curvilinear_grid) |
61 |
C bathyFile :: File containing bathymetry. If not defined bathymetry |
C bathyFile :: File containing bathymetry. If not defined bathymetry |
62 |
C is taken from inline function. |
C is taken from inline function. |
89 |
C LINEAR, POLY3, UNESCO, JMD95Z, JMD95P, MDJWF, IDEALGAS |
C LINEAR, POLY3, UNESCO, JMD95Z, JMD95P, MDJWF, IDEALGAS |
90 |
C the_run_name :: string identifying the name of the model "run" |
C the_run_name :: string identifying the name of the model "run" |
91 |
COMMON /PARM_C/ checkPtSuff, |
COMMON /PARM_C/ checkPtSuff, |
92 |
|
& tRefFile, sRefFile, rhoRefFile, |
93 |
|
& delRFile, delRcFile, |
94 |
& delXFile, delYFile, horizGridFile, |
& delXFile, delYFile, horizGridFile, |
95 |
& bathyFile, topoFile, shelfIceFile, |
& bathyFile, topoFile, shelfIceFile, |
96 |
& hydrogThetaFile, hydrogSaltFile, |
& hydrogThetaFile, hydrogSaltFile, |
106 |
& mdsioLocalDir, |
& mdsioLocalDir, |
107 |
& the_run_name |
& the_run_name |
108 |
CHARACTER*(5) checkPtSuff(maxNoChkptLev) |
CHARACTER*(5) checkPtSuff(maxNoChkptLev) |
109 |
|
CHARACTER*(MAX_LEN_FNAM) tRefFile |
110 |
|
CHARACTER*(MAX_LEN_FNAM) sRefFile |
111 |
|
CHARACTER*(MAX_LEN_FNAM) rhoRefFile |
112 |
|
CHARACTER*(MAX_LEN_FNAM) delRFile |
113 |
|
CHARACTER*(MAX_LEN_FNAM) delRcFile |
114 |
CHARACTER*(MAX_LEN_FNAM) delXFile |
CHARACTER*(MAX_LEN_FNAM) delXFile |
115 |
CHARACTER*(MAX_LEN_FNAM) delYFile |
CHARACTER*(MAX_LEN_FNAM) delYFile |
116 |
CHARACTER*(MAX_LEN_FNAM) horizGridFile |
CHARACTER*(MAX_LEN_FNAM) horizGridFile |
137 |
CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile |
CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile |
138 |
CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile |
CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile |
139 |
CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir |
CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir |
140 |
CHARACTER*(MAX_LEN_FNAM) the_run_name |
CHARACTER*(MAX_LEN_PREC/2) the_run_name |
141 |
CHARACTER*(6) eosType |
CHARACTER*(6) eosType |
142 |
CHARACTER*(10) pickupSuff |
CHARACTER*(10) pickupSuff |
143 |
|
|
225 |
C usingSphericalPolarGrid :: If TRUE grid generation will be in a |
C usingSphericalPolarGrid :: If TRUE grid generation will be in a |
226 |
C spherical polar frame. |
C spherical polar frame. |
227 |
C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical |
C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical |
228 |
|
C usingCurvilinearGrid :: If TRUE, use a curvilinear grid (to be provided) |
229 |
|
C deepAtmosphere :: deep model (drop the shallow-atmosphere approximation) |
230 |
C no_slip_sides :: Impose "no-slip" at lateral boundaries. |
C no_slip_sides :: Impose "no-slip" at lateral boundaries. |
231 |
C no_slip_bottom :: Impose "no-slip" at bottom boundary. |
C no_slip_bottom :: Impose "no-slip" at bottom boundary. |
232 |
C momViscosity :: Flag which turns momentum friction terms on and off. |
C momViscosity :: Flag which turns momentum friction terms on and off. |
268 |
C useConstantF :: Coriolis parameter set to f0 |
C useConstantF :: Coriolis parameter set to f0 |
269 |
C useBetaPlaneF :: Coriolis parameter set to f0 + beta.y |
C useBetaPlaneF :: Coriolis parameter set to f0 + beta.y |
270 |
C useSphereF :: Coriolis parameter set to 2.omega.sin(phi) |
C useSphereF :: Coriolis parameter set to 2.omega.sin(phi) |
271 |
|
C use3dCoriolis :: Turns the 3-D coriolis terms (in Omega.cos Phi) on - off |
272 |
C useCDscheme :: use CD-scheme to calculate Coriolis terms. |
C useCDscheme :: use CD-scheme to calculate Coriolis terms. |
273 |
C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart and Ozer, 1986) |
C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart and Ozer, 1986) |
274 |
C useJamartMomAdv :: Use wet-point method for V.I. non-linear term |
C useJamartMomAdv :: Use wet-point method for V.I. non-linear term |
304 |
C is water |
C is water |
305 |
C useDynP_inEos_Zc :: use the dynamical pressure in EOS (with Z-coord.) |
C useDynP_inEos_Zc :: use the dynamical pressure in EOS (with Z-coord.) |
306 |
C this requires specific code for restart & exchange |
C this requires specific code for restart & exchange |
307 |
C setCenterDr :: set cell Center depth and put Interface at the middle |
C setInterFDr :: set Interface depth (put cell-Center at the middle) |
308 |
|
C setCenterDr :: set cell-Center depth (put Interface at the middle) |
309 |
C nonHydrostatic :: Using non-hydrostatic terms |
C nonHydrostatic :: Using non-hydrostatic terms |
310 |
C quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm |
C quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm |
311 |
C globalFiles :: Selects between "global" and "tiled" files |
C globalFiles :: Selects between "global" and "tiled" files |
329 |
|
|
330 |
COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, |
COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, |
331 |
& usingCurvilinearGrid, usingCylindricalGrid, |
& usingCurvilinearGrid, usingCylindricalGrid, |
332 |
|
& deepAtmosphere, setInterFDr, setCenterDr, |
333 |
& no_slip_sides,no_slip_bottom, |
& no_slip_sides,no_slip_bottom, |
334 |
& momViscosity, momAdvection, momForcing, useCoriolis, |
& momViscosity, momAdvection, momForcing, useCoriolis, |
335 |
& momPressureForcing, vectorInvariantMomentum, |
& momPressureForcing, vectorInvariantMomentum, |
342 |
& use3Dsolver, implicitIntGravWave, staggerTimeStep, |
& use3Dsolver, implicitIntGravWave, staggerTimeStep, |
343 |
& momStepping, tempStepping, saltStepping, |
& momStepping, tempStepping, saltStepping, |
344 |
& metricTerms, useNHMTerms, |
& metricTerms, useNHMTerms, |
345 |
& useConstantF, useBetaPlaneF, useSphereF, |
& useConstantF, useBetaPlaneF, useSphereF, use3dCoriolis, |
346 |
& useCDscheme, |
& useCDscheme, |
347 |
& useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, |
& useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, |
348 |
& SadournyCoriolis, upwindVorticity, highOrderVorticity, |
& SadournyCoriolis, upwindVorticity, highOrderVorticity, |
354 |
& doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, |
& doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, |
355 |
& periodicExternalForcing, |
& periodicExternalForcing, |
356 |
& fluidIsAir, fluidIsWater, |
& fluidIsAir, fluidIsWater, |
357 |
& usingPCoords, usingZCoords, useDynP_inEos_Zc, setCenterDr, |
& usingPCoords, usingZCoords, useDynP_inEos_Zc, |
358 |
& nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO, |
& nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO, |
359 |
& allowFreezing, useOldFreezing, |
& allowFreezing, useOldFreezing, |
360 |
& usePickupBeforeC35, usePickupBeforeC54, startFromPickupAB2, |
& usePickupBeforeC35, usePickupBeforeC54, startFromPickupAB2, |
368 |
LOGICAL usingSphericalPolarGrid |
LOGICAL usingSphericalPolarGrid |
369 |
LOGICAL usingCylindricalGrid |
LOGICAL usingCylindricalGrid |
370 |
LOGICAL usingCurvilinearGrid |
LOGICAL usingCurvilinearGrid |
371 |
|
LOGICAL deepAtmosphere |
372 |
|
LOGICAL setInterFDr |
373 |
|
LOGICAL setCenterDr |
374 |
LOGICAL useNHMTerms |
LOGICAL useNHMTerms |
375 |
LOGICAL no_slip_sides |
LOGICAL no_slip_sides |
376 |
LOGICAL no_slip_bottom |
LOGICAL no_slip_bottom |
402 |
LOGICAL useConstantF |
LOGICAL useConstantF |
403 |
LOGICAL useBetaPlaneF |
LOGICAL useBetaPlaneF |
404 |
LOGICAL useSphereF |
LOGICAL useSphereF |
405 |
|
LOGICAL use3dCoriolis |
406 |
LOGICAL useCDscheme |
LOGICAL useCDscheme |
407 |
LOGICAL useEnergyConservingCoriolis |
LOGICAL useEnergyConservingCoriolis |
408 |
LOGICAL useJamartWetPoints |
LOGICAL useJamartWetPoints |
430 |
LOGICAL usingPCoords |
LOGICAL usingPCoords |
431 |
LOGICAL usingZCoords |
LOGICAL usingZCoords |
432 |
LOGICAL useDynP_inEos_Zc |
LOGICAL useDynP_inEos_Zc |
|
LOGICAL setCenterDr |
|
433 |
LOGICAL nonHydrostatic |
LOGICAL nonHydrostatic |
434 |
LOGICAL quasiHydrostatic |
LOGICAL quasiHydrostatic |
435 |
LOGICAL globalFiles |
LOGICAL globalFiles |
480 |
C recip_gravity and its inverse |
C recip_gravity and its inverse |
481 |
C gBaro :: Accel. due to gravity used in barotropic equation ( m/s^2 ) |
C gBaro :: Accel. due to gravity used in barotropic equation ( m/s^2 ) |
482 |
C rhoNil :: Reference density for the linear equation of state |
C rhoNil :: Reference density for the linear equation of state |
483 |
C rhoConst :: Vertically constant reference density |
C rhoConst :: Vertically constant reference density |
484 |
|
C rhoFacC :: normalized (by rhoConst) reference density at cell-Center |
485 |
|
C rhoFacF :: normalized (by rhoConst) reference density at cell-interFace |
486 |
C rhoConstFresh :: Constant reference density for fresh water (rain) |
C rhoConstFresh :: Constant reference density for fresh water (rain) |
487 |
C tRef :: reference vertical profile for potential temperature |
C tRef :: reference vertical profile for potential temperature |
488 |
C sRef :: reference vertical profile for salinity/specific humidity |
C sRef :: reference vertical profile for salinity/specific humidity |
489 |
C phiRef :: reference potential (pressure/rho, geopotential) profile |
C phiRef :: reference potential (pressure/rho, geopotential) profile |
490 |
C dBdrRef :: vertical gradient of reference boyancy [(m/s/r)^2)]: |
C dBdrRef :: vertical gradient of reference boyancy [(m/s/r)^2)]: |
491 |
C :: z-coord: = N^2_ref = Brunt-Vaissala frequency [s^-2] |
C :: z-coord: = N^2_ref = Brunt-Vaissala frequency [s^-2] |
492 |
C :: p-coord: = -(d.alpha/dp)_ref [(m^2.s/kg)^2] |
C :: p-coord: = -(d.alpha/dp)_ref [(m^2.s/kg)^2] |
495 |
C is an "inert" parameter but it is included |
C is an "inert" parameter but it is included |
496 |
C to make geographical references simple.) |
C to make geographical references simple.) |
497 |
C rSphere :: Radius of sphere for a spherical polar grid ( m ). |
C rSphere :: Radius of sphere for a spherical polar grid ( m ). |
498 |
C recip_RSphere :: Reciprocal radius of sphere ( m ). |
C recip_rSphere :: Reciprocal radius of sphere ( m ). |
499 |
C f0 :: Reference coriolis parameter ( 1/s ) |
C f0 :: Reference coriolis parameter ( 1/s ) |
500 |
C ( Southern edge f for beta plane ) |
C ( Southern edge f for beta plane ) |
501 |
C beta :: df/dy ( s^-1.m^-1 ) |
C beta :: df/dy ( s^-1.m^-1 ) |
506 |
C viscAhW :: Eddy viscosity coeff. for mixing of vertical |
C viscAhW :: Eddy viscosity coeff. for mixing of vertical |
507 |
C momentum laterally, no effect for hydrostatic |
C momentum laterally, no effect for hydrostatic |
508 |
C model, defaults to viscAh if unset ( m^2/s ) |
C model, defaults to viscAh if unset ( m^2/s ) |
509 |
|
C Not used if variable horiz. viscosity is used. |
510 |
C viscAr :: Eddy viscosity coeff. for mixing of |
C viscAr :: Eddy viscosity coeff. for mixing of |
511 |
C momentum vertically ( units of r^2/s ) |
C momentum vertically ( units of r^2/s ) |
512 |
C viscA4 :: Biharmonic viscosity coeff. for mixing of |
C viscA4 :: Biharmonic viscosity coeff. for mixing of |
514 |
C viscA4W :: Biharmonic viscosity coeff. for mixing of vertical |
C viscA4W :: Biharmonic viscosity coeff. for mixing of vertical |
515 |
C momentum laterally, no effect for hydrostatic |
C momentum laterally, no effect for hydrostatic |
516 |
C model, defaults to viscA4 if unset ( m^2/s ) |
C model, defaults to viscA4 if unset ( m^2/s ) |
517 |
|
C Not used if variable horiz. viscosity is used. |
518 |
C viscAhD :: Eddy viscosity coeff. for mixing of momentum laterally |
C viscAhD :: Eddy viscosity coeff. for mixing of momentum laterally |
519 |
C (act on Divergence part) ( m^2/s ) |
C (act on Divergence part) ( m^2/s ) |
520 |
C viscAhZ :: Eddy viscosity coeff. for mixing of momentum laterally |
C viscAhZ :: Eddy viscosity coeff. for mixing of momentum laterally |
635 |
C bottomDragLinear :: Linear bottom-drag coefficient (units of [r]/s) |
C bottomDragLinear :: Linear bottom-drag coefficient (units of [r]/s) |
636 |
C bottomDragQuadratic :: Quadratic bottom-drag coefficient (units of [r]/m) |
C bottomDragQuadratic :: Quadratic bottom-drag coefficient (units of [r]/m) |
637 |
C (if using zcoordinate, units becomes linear: m/s, quadratic: [-]) |
C (if using zcoordinate, units becomes linear: m/s, quadratic: [-]) |
638 |
|
C smoothAbsFuncRange :: 1/2 of interval around zero, for which FORTRAN ABS |
639 |
|
C is to be replace by a smoother function |
640 |
|
C (affects myabs, mymin, mymax) |
641 |
C nh_Am2 :: scales the non-hydrostatic terms and changes internal scales |
C nh_Am2 :: scales the non-hydrostatic terms and changes internal scales |
642 |
C (i.e. allows convection at different Rayleigh numbers) |
C (i.e. allows convection at different Rayleigh numbers) |
643 |
COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit, |
COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit, |
660 |
& diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho, |
& diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho, |
661 |
& delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow, |
& delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow, |
662 |
& hFacMin, hFacMinDz, hFacInf, hFacSup, |
& hFacMin, hFacMinDz, hFacInf, hFacSup, |
663 |
& gravity, recip_Gravity, gBaro, rhonil, recip_rhonil, |
& gravity, recip_Gravity, gBaro, |
664 |
& recip_rhoConst, rhoConst, |
& rhonil, recip_rhonil, rhoConst, recip_rhoConst, |
665 |
|
& rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, |
666 |
& rhoConstFresh, convertEmP2rUnit, tRef, sRef, phiRef, dBdrRef, |
& rhoConstFresh, convertEmP2rUnit, tRef, sRef, phiRef, dBdrRef, |
667 |
& baseTime, startTime, endTime, |
& baseTime, startTime, endTime, |
668 |
& chkPtFreq, pChkPtFreq, dumpFreq, adjDumpFreq, |
& chkPtFreq, pChkPtFreq, dumpFreq, adjDumpFreq, |
677 |
& horiVertRatio, recip_horiVertRatio, |
& horiVertRatio, recip_horiVertRatio, |
678 |
& ivdc_kappa, Ro_SeaLevel, |
& ivdc_kappa, Ro_SeaLevel, |
679 |
& sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2, |
& sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2, |
680 |
|
& smoothAbsFuncRange, |
681 |
& tCylIn, tCylOut |
& tCylIn, tCylOut |
682 |
|
|
683 |
_RL cg2dTargetResidual |
_RL cg2dTargetResidual |
697 |
_RL phiMin |
_RL phiMin |
698 |
_RL thetaMin |
_RL thetaMin |
699 |
_RL rSphere |
_RL rSphere |
700 |
_RL recip_RSphere |
_RL recip_rSphere |
701 |
_RL f0 |
_RL f0 |
702 |
_RL freeSurfFac |
_RL freeSurfFac |
703 |
_RL implicSurfPress |
_RL implicSurfPress |
748 |
_RL gravity |
_RL gravity |
749 |
_RL recip_gravity |
_RL recip_gravity |
750 |
_RL gBaro |
_RL gBaro |
751 |
_RL rhonil |
_RL rhonil, recip_rhonil |
752 |
_RL recip_rhonil |
_RL rhoConst, recip_rhoConst |
753 |
_RL rhoConst |
_RL rhoFacC(Nr), recip_rhoFacC(Nr) |
754 |
_RL recip_rhoConst |
_RL rhoFacF(Nr+1), recip_rhoFacF(Nr+1) |
755 |
_RL rhoConstFresh |
_RL rhoConstFresh |
756 |
_RL convertEmP2rUnit |
_RL convertEmP2rUnit |
757 |
_RL tRef(Nr) |
_RL tRef(Nr) |
797 |
_RL sideDragFactor |
_RL sideDragFactor |
798 |
_RL bottomDragLinear |
_RL bottomDragLinear |
799 |
_RL bottomDragQuadratic |
_RL bottomDragQuadratic |
800 |
|
_RL smoothAbsFuncRange |
801 |
_RL nh_Am2 |
_RL nh_Am2 |
802 |
_RL tCylIn |
_RL tCylIn |
803 |
_RL tCylOut |
_RL tCylOut |
854 |
LOGICAL useSEAICE |
LOGICAL useSEAICE |
855 |
LOGICAL useShelfIce |
LOGICAL useShelfIce |
856 |
LOGICAL useThSIce |
LOGICAL useThSIce |
857 |
|
LOGICAL useATM2d |
858 |
LOGICAL useBulkForce |
LOGICAL useBulkForce |
859 |
LOGICAL usefizhi |
LOGICAL usefizhi |
860 |
LOGICAL usegridalt |
LOGICAL usegridalt |
861 |
LOGICAL useDiagnostics |
LOGICAL useDiagnostics |
862 |
LOGICAL useMNC |
LOGICAL useMNC |
863 |
|
LOGICAL useREGRID |
864 |
LOGICAL useRunClock |
LOGICAL useRunClock |
865 |
LOGICAL useEMBED_FILES |
LOGICAL useEMBED_FILES |
866 |
|
LOGICAL useMYPACKAGE |
867 |
COMMON /PARM_PACKAGES/ |
COMMON /PARM_PACKAGES/ |
868 |
& useOPPS, usePP81, useMY82, useGGL90, useKPP, |
& useOPPS, usePP81, useMY82, useGGL90, useKPP, |
869 |
& useGMRedi, useOBCS, useAIM, useLand, |
& useGMRedi, useOBCS, useAIM, useLand, |
870 |
& useCAL, useEXF, useEBM, useGrdchk, useECCO, |
& useCAL, useEXF, useEBM, useGrdchk, useECCO, |
871 |
& useSHAP_FILT, useZONAL_FILT, useFLT, |
& useSHAP_FILT, useZONAL_FILT, useFLT, |
872 |
& usePTRACERS, useGCHEM, useRBCS, useOffLine, useMATRIX, |
& usePTRACERS, useGCHEM, useRBCS, useOffLine, useMATRIX, |
873 |
& useSBO, useSEAICE, useShelfIce, useThSIce, useBulkForce, |
& useSBO, useSEAICE, useShelfIce, |
874 |
& usefizhi, usegridalt, useDiagnostics, useMNC, |
& useThSIce, useATM2D, useBulkForce, |
875 |
& useRunClock, useEMBED_FILES |
& usefizhi, usegridalt, useDiagnostics, useMNC, useREGRID, |
876 |
|
& useRunClock, useEMBED_FILES, useMYPACKAGE |
877 |
|
|
878 |
CEH3 ;;; Local Variables: *** |
CEH3 ;;; Local Variables: *** |
879 |
CEH3 ;;; mode:fortran *** |
CEH3 ;;; mode:fortran *** |