69 |
C surfQswfile :: File containing surface shortwave radiation |
C surfQswfile :: File containing surface shortwave radiation |
70 |
C dQdTfile :: File containing thermal relaxation coefficient |
C dQdTfile :: File containing thermal relaxation coefficient |
71 |
C EmPmRfile :: File containing surface fresh water flux |
C EmPmRfile :: File containing surface fresh water flux |
72 |
|
C pLoadFile :: File containing pressure loading |
73 |
C buoyancyRelation :: Flag used to indicate which relation to use to |
C buoyancyRelation :: Flag used to indicate which relation to use to |
74 |
C get buoyancy. |
C get buoyancy. |
75 |
|
C eosType :: choose the equation of state: |
76 |
|
C LINEAR, POLY3, UNESCO, JMD95Z, JMD95P |
77 |
COMMON /PARM_C/ checkPtSuff, |
COMMON /PARM_C/ checkPtSuff, |
78 |
& bathyFile, topoFile, |
& bathyFile, topoFile, |
79 |
& hydrogThetaFile, hydrogSaltFile, |
& hydrogThetaFile, hydrogSaltFile, |
81 |
& saltClimFile, buoyancyRelation, |
& saltClimFile, buoyancyRelation, |
82 |
& EmPmRfile, surfQfile, surfQswfile, |
& EmPmRfile, surfQfile, surfQswfile, |
83 |
& uVelInitFile, vVelInitFile, pSurfInitFile, |
& uVelInitFile, vVelInitFile, pSurfInitFile, |
84 |
& dQdTfile |
& dQdTfile, ploadFile, |
85 |
|
& eosType |
86 |
CHARACTER*(5) checkPtSuff(maxNoChkptLev) |
CHARACTER*(5) checkPtSuff(maxNoChkptLev) |
87 |
CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile |
CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile |
88 |
CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile |
CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile |
99 |
CHARACTER*(MAX_LEN_FNAM) vVelInitFile |
CHARACTER*(MAX_LEN_FNAM) vVelInitFile |
100 |
CHARACTER*(MAX_LEN_FNAM) pSurfInitFile |
CHARACTER*(MAX_LEN_FNAM) pSurfInitFile |
101 |
CHARACTER*(MAX_LEN_FNAM) dQdTfile |
CHARACTER*(MAX_LEN_FNAM) dQdTfile |
102 |
|
CHARACTER*(MAX_LEN_FNAM) ploadFile |
103 |
|
CHARACTER*(6) eosType |
104 |
|
|
105 |
C-- COMMON /PARM_I/ Integer valued parameters used by the model. |
C-- COMMON /PARM_I/ Integer valued parameters used by the model. |
106 |
C cg2dMaxIters :: Maximum number of iterations in the |
C cg2dMaxIters :: Maximum number of iterations in the |
173 |
C and off. |
C and off. |
174 |
C tempForcing :: Flag which turns external forcing of temperature on |
C tempForcing :: Flag which turns external forcing of temperature on |
175 |
C and off. |
C and off. |
176 |
C saltDiffusion :: Flag which turns diffusion of salinit on |
C saltDiffusion :: Flag which turns diffusion of salinity on |
177 |
C and off. |
C and off. |
178 |
C saltAdvection :: Flag which turns advection of salinit on |
C saltAdvection :: Flag which turns advection of salinity on |
179 |
C and off. |
C and off. |
180 |
C saltForcing :: Flag which turns external forcing of salinit on |
C saltForcing :: Flag which turns external forcing of salinity on |
181 |
C and off. |
C and off. |
182 |
|
C useRealFreshWaterFlux :: if True (=Natural BCS), treats P+R-E flux |
183 |
|
C as a real Fresh Water (=> changes the Sea Level) |
184 |
|
C if F, converts P+R-E to salt flux (no SL effect) |
185 |
C rigidLid :: Set to true to use rigid lid |
C rigidLid :: Set to true to use rigid lid |
186 |
C implicitFreeSurface :: Set to true to use implcit free surface |
C implicitFreeSurface :: Set to true to use implcit free surface |
187 |
C exactConserv :: Set to true to conserve exactly the total Volume |
C exactConserv :: Set to true to conserve exactly the total Volume |
194 |
C useConstantF :: Coriolis parameter set to f0 |
C useConstantF :: Coriolis parameter set to f0 |
195 |
C useBetaPlaneF :: Coriolis parameter set to f0 + beta.y |
C useBetaPlaneF :: Coriolis parameter set to f0 + beta.y |
196 |
C useSphereF :: Coriolis parameter set to 2.omega.sin(phi) |
C useSphereF :: Coriolis parameter set to 2.omega.sin(phi) |
197 |
|
C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart and Ozer, 1986) |
198 |
C implicitDiffusion :: Turns implicit vertical diffusion on |
C implicitDiffusion :: Turns implicit vertical diffusion on |
199 |
C implicitViscosity :: Turns implicit vertical viscosity on |
C implicitViscosity :: Turns implicit vertical viscosity on |
200 |
|
C multiDimAdvection :: Flag that enable multi-dimension advection |
201 |
|
C forcing_In_AB :: if False, put forcing (Temp,Salt,Tracers) contribution |
202 |
|
C out off Adams-Bashforth time stepping. |
203 |
C doThetaClimRelax :: Set true if relaxation to temperature |
C doThetaClimRelax :: Set true if relaxation to temperature |
204 |
C climatology is required. |
C climatology is required. |
205 |
C doSaltClimRelax :: Set true if relaxation to salinity |
C doSaltClimRelax :: Set true if relaxation to salinity |
209 |
C coords. |
C coords. |
210 |
C usingZCoords :: Set to indicate that we are working in height |
C usingZCoords :: Set to indicate that we are working in height |
211 |
C coords. |
C coords. |
212 |
|
C setCenterDr :: set cell Center depth and put Interface at the middle |
213 |
C nonHydrostatic :: Using non-hydrostatic terms |
C nonHydrostatic :: Using non-hydrostatic terms |
214 |
C globalFiles :: Selects between "global" and "tiled" files |
C globalFiles :: Selects between "global" and "tiled" files |
215 |
C allowFreezing :: Allows water to freeze and form ice |
C allowFreezing :: Allows water to freeze and form ice |
216 |
C groundAtK1 :: put the surface(k=1) at the Lower Boundary (=ground) |
C groundAtK1 :: put the surface(k=1) at the Lower Boundary (=ground) |
|
C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart and Ozer, 1986) |
|
217 |
COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, |
COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, |
218 |
& usingCurvilinearGrid, |
& usingCurvilinearGrid, |
219 |
& no_slip_sides,no_slip_bottom, |
& no_slip_sides,no_slip_bottom, |
222 |
& momPressureForcing, vectorInvariantMomentum, |
& momPressureForcing, vectorInvariantMomentum, |
223 |
& tempDiffusion, tempAdvection, tempForcing, |
& tempDiffusion, tempAdvection, tempForcing, |
224 |
& saltDiffusion, saltAdvection, saltForcing, |
& saltDiffusion, saltAdvection, saltForcing, |
225 |
|
& useRealFreshWaterFlux, |
226 |
& rigidLid, implicitFreeSurface, exactConserv, uniformLin_PhiSurf, |
& rigidLid, implicitFreeSurface, exactConserv, uniformLin_PhiSurf, |
227 |
& momStepping, tempStepping, saltStepping, tr1Stepping, |
& momStepping, tempStepping, saltStepping, tr1Stepping, |
228 |
& metricTerms, usingSphericalPolarMTerms, |
& metricTerms, usingSphericalPolarMTerms, |
229 |
& useConstantF, useBetaPlaneF, useSphereF, |
& useConstantF, useBetaPlaneF, useSphereF, |
230 |
|
& useEnergyConservingCoriolis, useJamartWetPoints, |
231 |
& implicitDiffusion, implicitViscosity, |
& implicitDiffusion, implicitViscosity, |
232 |
|
& multiDimAdvection, forcing_In_AB, |
233 |
& doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, |
& doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, |
234 |
& periodicExternalForcing, usingPCoords, usingZCoords, |
& periodicExternalForcing, |
235 |
|
& usingPCoords, usingZCoords, setCenterDr, |
236 |
& nonHydrostatic, globalFiles, |
& nonHydrostatic, globalFiles, |
237 |
& allowFreezing, groundAtK1, |
& allowFreezing, groundAtK1, |
238 |
& usePickupBeforeC35, debugMode, |
& usePickupBeforeC35, debugMode, |
239 |
& readPickupWithTracer, writePickupWithTracer, |
& readPickupWithTracer, writePickupWithTracer |
|
& multiDimAdvection, useEnergyConservingCoriolis, |
|
|
& useJamartWetPoints |
|
240 |
LOGICAL usingCartesianGrid |
LOGICAL usingCartesianGrid |
241 |
LOGICAL usingSphericalPolarGrid |
LOGICAL usingSphericalPolarGrid |
242 |
LOGICAL usingCurvilinearGrid |
LOGICAL usingCurvilinearGrid |
256 |
LOGICAL saltDiffusion |
LOGICAL saltDiffusion |
257 |
LOGICAL saltAdvection |
LOGICAL saltAdvection |
258 |
LOGICAL saltForcing |
LOGICAL saltForcing |
259 |
|
LOGICAL useRealFreshWaterFlux |
260 |
LOGICAL rigidLid |
LOGICAL rigidLid |
261 |
LOGICAL implicitFreeSurface |
LOGICAL implicitFreeSurface |
262 |
LOGICAL exactConserv |
LOGICAL exactConserv |
269 |
LOGICAL useConstantF |
LOGICAL useConstantF |
270 |
LOGICAL useBetaPlaneF |
LOGICAL useBetaPlaneF |
271 |
LOGICAL useSphereF |
LOGICAL useSphereF |
272 |
|
LOGICAL useEnergyConservingCoriolis |
273 |
|
LOGICAL useJamartWetPoints |
274 |
LOGICAL implicitDiffusion |
LOGICAL implicitDiffusion |
275 |
LOGICAL implicitViscosity |
LOGICAL implicitViscosity |
276 |
|
LOGICAL multiDimAdvection |
277 |
|
LOGICAL forcing_In_AB |
278 |
LOGICAL doThetaClimRelax |
LOGICAL doThetaClimRelax |
279 |
LOGICAL doSaltClimRelax |
LOGICAL doSaltClimRelax |
280 |
LOGICAL doTr1ClimRelax |
LOGICAL doTr1ClimRelax |
281 |
LOGICAL periodicExternalForcing |
LOGICAL periodicExternalForcing |
282 |
LOGICAL usingPCoords |
LOGICAL usingPCoords |
283 |
LOGICAL usingZCoords |
LOGICAL usingZCoords |
284 |
|
LOGICAL setCenterDr |
285 |
LOGICAL nonHydrostatic |
LOGICAL nonHydrostatic |
286 |
LOGICAL globalFiles |
LOGICAL globalFiles |
287 |
LOGICAL allowFreezing |
LOGICAL allowFreezing |
290 |
LOGICAL debugMode |
LOGICAL debugMode |
291 |
LOGICAL readPickupWithTracer |
LOGICAL readPickupWithTracer |
292 |
LOGICAL writePickupWithTracer |
LOGICAL writePickupWithTracer |
|
LOGICAL multiDimAdvection |
|
|
LOGICAL useEnergyConservingCoriolis |
|
|
LOGICAL useJamartWetPoints |
|
293 |
|
|
294 |
C-- COMMON /PARM_R/ "Real" valued parameters used by the model. |
C-- COMMON /PARM_R/ "Real" valued parameters used by the model. |
295 |
C gg2dTargetResidual |
C gg2dTargetResidual |
315 |
C delP :: Vertical grid spacing ( Pa ). |
C delP :: Vertical grid spacing ( Pa ). |
316 |
C delZ :: Vertical grid spacing ( m ). |
C delZ :: Vertical grid spacing ( m ). |
317 |
C delR :: Vertical grid spacing ( units of r ). |
C delR :: Vertical grid spacing ( units of r ). |
318 |
|
C delRc :: Vertical grid spacing between cell centers (r unit). |
319 |
C delX :: Separation between cell faces (m) or (deg), depending |
C delX :: Separation between cell faces (m) or (deg), depending |
320 |
C delY on input flags. |
C delY on input flags. |
321 |
C gravity :: Accel. due to gravity ( m/s^2 ) |
C gravity :: Accel. due to gravity ( m/s^2 ) |
322 |
C recip_gravity and its inverse |
C recip_gravity and its inverse |
323 |
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 ) |
324 |
C ronil :: Reference density |
C rhoNil :: Reference density for the linear equation of state |
325 |
C rhoConst :: Vertically constant reference density |
C rhoConst :: Vertically constant reference density |
326 |
|
C rhoConstFresh :: Constant reference density for fresh water (rain) |
327 |
C startTime :: Start time for model ( s ) |
C startTime :: Start time for model ( s ) |
328 |
C phiMin :: Latitude of southern most cell face. |
C phiMin :: Latitude of southern most cell face. |
329 |
C thetaMin :: Longitude of western most cell face (this |
C thetaMin :: Longitude of western most cell face (this |
374 |
C are referenced to this clock. ( s ) |
C are referenced to this clock. ( s ) |
375 |
C deltaTMom :: Timestep for momemtum equations ( s ) |
C deltaTMom :: Timestep for momemtum equations ( s ) |
376 |
C deltaTtracer :: Timestep for tracer equations ( s ) |
C deltaTtracer :: Timestep for tracer equations ( s ) |
377 |
|
C deltaTfreesurf :: Timestep for free-surface equation ( s ) |
378 |
C freesurfFac :: Parameter to turn implicit free surface term on or off |
C freesurfFac :: Parameter to turn implicit free surface term on or off |
379 |
C freesurfac = 1. uses implicit free surface |
C freesurfac = 1. uses implicit free surface |
380 |
C freesurfac = 0. uses rigid lid |
C freesurfac = 0. uses rigid lid |
417 |
C externForcingCycle :: Is the repeat time of the forcing (eg. 1 year) |
C externForcingCycle :: Is the repeat time of the forcing (eg. 1 year) |
418 |
C (note: externForcingCycle must be an integer |
C (note: externForcingCycle must be an integer |
419 |
C number times externForcingPeriod) |
C number times externForcingPeriod) |
420 |
|
C convertFW2Salt :: salinity, used to convert Fresh-Water Flux to Salt Flux |
421 |
|
C (use model surface (local) value if set to -1) |
422 |
|
C temp_EvPrRn :: temperature of Rain & Evap. |
423 |
|
C salt_EvPrRn :: salinity of Rain & Evap. |
424 |
|
C trac_EvPrRn :: tracer concentration in Rain & Evap. |
425 |
|
C (notes: a) tracer content of Rain/Evap only used if both |
426 |
|
C NonLin_FrSurf & useRealFreshWater are set. |
427 |
|
C b) use model surface (local) value if set to UNSET_RL) |
428 |
C horiVertRatio :: Ratio on units in vertical to units in horizontal. |
C horiVertRatio :: Ratio on units in vertical to units in horizontal. |
429 |
C recip_horiVertRatio ( 1 if horiz in m and vertical in m ). |
C recip_horiVertRatio ( 1 if horiz in m and vertical in m ). |
430 |
C ( g*rho if horiz in m and vertical in Pa ). |
C ( g*rho if horiz in m and vertical in Pa ). |
434 |
C --"-"-- Quadratic ( linear: 1/s, quadratic: 1/m ) |
C --"-"-- Quadratic ( linear: 1/s, quadratic: 1/m ) |
435 |
COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit, |
COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit, |
436 |
& cg2dpcOffDFac, cg3dTargetResidual, |
& cg2dpcOffDFac, cg3dTargetResidual, |
437 |
& delP, delZ, delR, delX, delY, |
& delP, delZ, delR, delRc, delX, delY, |
438 |
& deltaT,deltaTmom, deltaTtracer, deltaTClock,abeps, startTime, |
& deltaT, deltaTmom, deltaTtracer, deltaTfreesurf, deltaTClock, |
439 |
|
& abeps, startTime, |
440 |
& phiMin, thetaMin, rSphere, recip_RSphere, f0, beta, |
& phiMin, thetaMin, rSphere, recip_RSphere, f0, beta, |
441 |
& fCori, fCoriG, |
& fCori, fCoriG, |
442 |
& viscAh, viscAz, viscA4, viscAr, viscAstrain, viscAtension, |
& viscAh, viscAz, viscA4, viscAr, viscAstrain, viscAtension, |
445 |
& delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow, |
& delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow, |
446 |
& hFacMin, hFacMinDz, hFacInf, hFacSup, |
& hFacMin, hFacMinDz, hFacInf, hFacSup, |
447 |
& gravity, recip_Gravity, gBaro, rhonil, recip_rhonil, |
& gravity, recip_Gravity, gBaro, rhonil, recip_rhonil, |
448 |
& recip_rhoConst, rhoConst, tRef, sRef, |
& recip_rhoConst, rhoConst, |
449 |
|
& recip_rhoConstFresh, rhoConstFresh, tRef, sRef, |
450 |
& endTime, chkPtFreq, pchkPtFreq, dumpFreq, |
& endTime, chkPtFreq, pchkPtFreq, dumpFreq, |
451 |
& diagFreq, taveFreq, monitorFreq, |
& diagFreq, taveFreq, monitorFreq, |
452 |
& afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom, |
& afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom, |
455 |
& tauSaltClimRelax, lambdaSaltClimRelax, |
& tauSaltClimRelax, lambdaSaltClimRelax, |
456 |
& tauTr1ClimRelax, lambdaTr1ClimRelax, |
& tauTr1ClimRelax, lambdaTr1ClimRelax, |
457 |
& externForcingCycle, externForcingPeriod, |
& externForcingCycle, externForcingPeriod, |
458 |
|
& convertFW2Salt, temp_EvPrRn, salt_EvPrRn, trac_EvPrRn, |
459 |
& viscAp, diffKpT, diffKpS, hFacMinDr, hFacMinDp, |
& viscAp, diffKpT, diffKpS, hFacMinDr, hFacMinDp, |
460 |
& theta_S, specVol_S, horiVertRatio, recip_horiVertRatio, |
& horiVertRatio, recip_horiVertRatio, |
461 |
& ivdc_kappa, Ro_SeaLevel, |
& ivdc_kappa, Ro_SeaLevel, |
462 |
& bottomDragLinear,bottomDragQuadratic |
& bottomDragLinear,bottomDragQuadratic |
463 |
|
|
468 |
_RL delZ(Nr) |
_RL delZ(Nr) |
469 |
_RL delP(Nr) |
_RL delP(Nr) |
470 |
_RL delR(Nr) |
_RL delR(Nr) |
471 |
|
_RL delRc(Nr+1) |
472 |
_RL delX(Nx) |
_RL delX(Nx) |
473 |
_RL delY(Ny) |
_RL delY(Ny) |
474 |
_RL deltaT |
_RL deltaT |
475 |
_RL deltaTClock |
_RL deltaTClock |
476 |
_RL deltaTmom |
_RL deltaTmom |
477 |
_RL deltaTtracer |
_RL deltaTtracer |
478 |
|
_RL deltaTfreesurf |
479 |
_RL abeps |
_RL abeps |
480 |
_RL phiMin |
_RL phiMin |
481 |
_RL thetaMin |
_RL thetaMin |
519 |
_RL recip_rhonil |
_RL recip_rhonil |
520 |
_RL rhoConst |
_RL rhoConst |
521 |
_RL recip_rhoConst |
_RL recip_rhoConst |
522 |
_RL specVol_S(Nr) |
_RL rhoConstFresh |
523 |
|
_RL recip_rhoConstFresh |
524 |
_RL tRef(Nr) |
_RL tRef(Nr) |
|
_RL theta_S(Nr) |
|
525 |
_RL sRef(Nr) |
_RL sRef(Nr) |
526 |
_RS fCori(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RS fCori(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
527 |
_RS fCoriG(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RS fCoriG(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
550 |
_RL lambdaTr1ClimRelax |
_RL lambdaTr1ClimRelax |
551 |
_RL externForcingCycle |
_RL externForcingCycle |
552 |
_RL externForcingPeriod |
_RL externForcingPeriod |
553 |
|
_RL convertFW2Salt |
554 |
|
_RL temp_EvPrRn |
555 |
|
_RL salt_EvPrRn |
556 |
|
_RL trac_EvPrRn |
557 |
_RL horiVertRatio |
_RL horiVertRatio |
558 |
_RL recip_horiVertRatio |
_RL recip_horiVertRatio |
559 |
_RL ivdc_kappa |
_RL ivdc_kappa |
567 |
_RL Lamba_theta |
_RL Lamba_theta |
568 |
_RL recip_Cp |
_RL recip_Cp |
569 |
|
|
570 |
C Equation of State (polynomial coeffients) |
CmlC Equation of State (polynomial coeffients) |
571 |
COMMON /PARM_EOS_NL/ eosC,eosSig0,eosRefT,eosRefS |
Cml COMMON /PARM_EOS_NL/ eosC,eosSig0,eosRefT,eosRefS |
572 |
_RL eosC(9,Nr+1),eosSig0(Nr+1),eosRefT(Nr+1),eosRefS(Nr+1) |
Cml _RL eosC(9,Nr+1),eosSig0(Nr+1),eosRefT(Nr+1),eosRefS(Nr+1) |
573 |
C Linear equation of state |
CmlC Linear equation of state |
574 |
C tAlpha :: Linear EOS thermal expansion coefficient ( 1/degree ). |
CmlC tAlpha :: Linear EOS thermal expansion coefficient ( 1/degree ). |
575 |
C sBeta :: Linear EOS haline contraction coefficient. |
CmlC sBeta :: Linear EOS haline contraction coefficient. |
576 |
COMMON /PARM_EOS_LIN/ tAlpha,sBeta,eosType |
Cml COMMON /PARM_EOS_LIN/ tAlpha,sBeta,eosType |
577 |
_RL tAlpha |
Cml _RL tAlpha |
578 |
_RL sBeta |
Cml _RL sBeta |
|
character*(6) eosType |
|
579 |
|
|
580 |
C Atmospheric physical parameters (Ideal Gas EOS, ...) |
C Atmospheric physical parameters (Ideal Gas EOS, ...) |
581 |
C atm_po :: standard reference pressure |
C atm_po :: standard reference pressure |
598 |
LOGICAL useSHAP_FILT |
LOGICAL useSHAP_FILT |
599 |
LOGICAL useZONAL_FILT |
LOGICAL useZONAL_FILT |
600 |
LOGICAL useFLT |
LOGICAL useFLT |
601 |
|
LOGICAL usePTRACERS |
602 |
COMMON /PARM_PACKAGES/ |
COMMON /PARM_PACKAGES/ |
603 |
& useKPP, useGMRedi, useOBCS, useAIM, useECCO, |
& useKPP, useGMRedi, useOBCS, useAIM, useECCO, |
604 |
& useSHAP_FILT, useZONAL_FILT, useGrdchk, useFLT |
& useSHAP_FILT, useZONAL_FILT, useGrdchk, useFLT, |
605 |
|
& usePTRACERS |
606 |
|
|