forked from darwinproject/darwin3
-
Notifications
You must be signed in to change notification settings - Fork 1
/
PARAMS.h
1104 lines (1086 loc) · 55 KB
/
PARAMS.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
C
CBOP
C !ROUTINE: PARAMS.h
C !INTERFACE:
C #include PARAMS.h
C !DESCRIPTION:
C Header file defining model "parameters". The values from the
C model standard input file are stored into the variables held
C here. Notes describing the parameters can also be found here.
CEOP
C-- Contants
C Useful physical values
Real*8 PI
PARAMETER ( PI = 3.14159265358979323844D0 )
Real*8 deg2rad
PARAMETER ( deg2rad = 2.D0*PI/360.D0 )
C-- COMMON /PARM_C/ Character valued parameters used by the model.
C buoyancyRelation :: Flag used to indicate which relation to use to
C get buoyancy.
C eosType :: choose the equation of state:
C LINEAR, POLY3, UNESCO, JMD95Z, JMD95P, MDJWF, IDEALGAS
C pickupSuff :: force to start from pickup files (even if nIter0=0)
C and read pickup files with this suffix (max 10 Char.)
C mdsioLocalDir :: read-write tiled file from/to this directory name
C (+ 4 digits Processor-Rank) instead of current dir.
C adTapeDir :: read-write checkpointing tape files from/to this
C directory name instead of current dir. Conflicts
C mdsioLocalDir, so only one of the two can be set.
C tRefFile :: File containing reference Potential Temperat. tRef (1.D)
C sRefFile :: File containing reference salinity/spec.humid. sRef (1.D)
C rhoRefFile :: File containing reference density profile rhoRef (1.D)
C gravityFile :: File containing gravity vertical profile (1.D)
C delRFile :: File containing vertical grid spacing delR (1.D array)
C delRcFile :: File containing vertical grid spacing delRc (1.D array)
C hybSigmFile :: File containing hybrid-sigma vertical coord. coeff. (2x 1.D)
C delXFile :: File containing X-spacing grid definition (1.D array)
C delYFile :: File containing Y-spacing grid definition (1.D array)
C horizGridFile :: File containing horizontal-grid definition
C (only when using curvilinear_grid)
C bathyFile :: File containing bathymetry. If not defined bathymetry
C is taken from inline function.
C topoFile :: File containing the topography of the surface (unit=m)
C (mainly used for the atmosphere = ground height).
C addWwallFile :: File containing 2-D additional Western cell-edge wall
C addSwallFile :: File containing 2-D additional Southern cell-edge wall
C (e.g., to add "thin-wall" where it is =1)
C hydrogThetaFile :: File containing initial hydrographic data (3-D)
C for potential temperature.
C hydrogSaltFile :: File containing initial hydrographic data (3-D)
C for salinity.
C diffKrFile :: File containing 3D specification of vertical diffusivity
C viscAhDfile :: File containing 3D specification of horizontal viscosity
C viscAhZfile :: File containing 3D specification of horizontal viscosity
C viscA4Dfile :: File containing 3D specification of horizontal viscosity
C viscA4Zfile :: File containing 3D specification of horizontal viscosity
C zonalWindFile :: File containing zonal wind data
C meridWindFile :: File containing meridional wind data
C thetaClimFile :: File containing surface theta climataology used
C in relaxation term -lambda(theta-theta*)
C saltClimFile :: File containing surface salt climataology used
C in relaxation term -lambda(salt-salt*)
C surfQfile :: File containing surface heat flux, excluding SW
C (old version, kept for backward compatibility)
C surfQnetFile :: File containing surface net heat flux
C surfQswFile :: File containing surface shortwave radiation
C EmPmRfile :: File containing surface fresh water flux
C NOTE: for backward compatibility EmPmRfile is specified in
C m/s when using external_fields_load.F. It is converted
C to kg/m2/s by multiplying by rhoConstFresh.
C saltFluxFile :: File containing surface salt flux
C pLoadFile :: File containing pressure loading
C geoPotAnomFile :: File containing constant geopotential anomaly due to
C density structure
C addMassFile :: File containing source/sink of fluid in the interior
C eddyPsiXFile :: File containing zonal Eddy streamfunction data
C eddyPsiYFile :: File containing meridional Eddy streamfunction data
C geothermalFile :: File containing geothermal heat flux
C lambdaThetaFile :: File containing SST relaxation coefficient
C lambdaSaltFile :: File containing SSS relaxation coefficient
C wghtBalanceFile :: File containing weight used in balancing net EmPmR
C the_run_name :: string identifying the name of the model "run"
COMMON /PARM_C/
& buoyancyRelation, eosType,
& pickupSuff, mdsioLocalDir, adTapeDir,
& tRefFile, sRefFile, rhoRefFile, gravityFile,
& delRFile, delRcFile, hybSigmFile,
& delXFile, delYFile, horizGridFile,
& bathyFile, topoFile, addWwallFile, addSwallFile,
& viscAhDfile, viscAhZfile,
& viscA4Dfile, viscA4Zfile,
& hydrogThetaFile, hydrogSaltFile, diffKrFile,
& zonalWindFile, meridWindFile, thetaClimFile,
& saltClimFile,
& EmPmRfile, saltFluxFile,
& surfQfile, surfQnetFile, surfQswFile,
& uVelInitFile, vVelInitFile, pSurfInitFile,
& pLoadFile, geoPotAnomFile, addMassFile,
& eddyPsiXFile, eddyPsiYFile, geothermalFile,
& lambdaThetaFile, lambdaSaltFile, wghtBalanceFile,
& the_run_name
CHARACTER*(MAX_LEN_FNAM) buoyancyRelation
CHARACTER*(6) eosType
CHARACTER*(10) pickupSuff
CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir
CHARACTER*(MAX_LEN_FNAM) adTapeDir
CHARACTER*(MAX_LEN_FNAM) tRefFile
CHARACTER*(MAX_LEN_FNAM) sRefFile
CHARACTER*(MAX_LEN_FNAM) rhoRefFile
CHARACTER*(MAX_LEN_FNAM) gravityFile
CHARACTER*(MAX_LEN_FNAM) delRFile
CHARACTER*(MAX_LEN_FNAM) delRcFile
CHARACTER*(MAX_LEN_FNAM) hybSigmFile
CHARACTER*(MAX_LEN_FNAM) delXFile
CHARACTER*(MAX_LEN_FNAM) delYFile
CHARACTER*(MAX_LEN_FNAM) horizGridFile
CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile
CHARACTER*(MAX_LEN_FNAM) addWwallFile, addSwallFile
CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile, hydrogSaltFile
CHARACTER*(MAX_LEN_FNAM) diffKrFile
CHARACTER*(MAX_LEN_FNAM) viscAhDfile
CHARACTER*(MAX_LEN_FNAM) viscAhZfile
CHARACTER*(MAX_LEN_FNAM) viscA4Dfile
CHARACTER*(MAX_LEN_FNAM) viscA4Zfile
CHARACTER*(MAX_LEN_FNAM) zonalWindFile
CHARACTER*(MAX_LEN_FNAM) meridWindFile
CHARACTER*(MAX_LEN_FNAM) thetaClimFile
CHARACTER*(MAX_LEN_FNAM) saltClimFile
CHARACTER*(MAX_LEN_FNAM) surfQfile
CHARACTER*(MAX_LEN_FNAM) surfQnetFile
CHARACTER*(MAX_LEN_FNAM) surfQswFile
CHARACTER*(MAX_LEN_FNAM) EmPmRfile
CHARACTER*(MAX_LEN_FNAM) saltFluxFile
CHARACTER*(MAX_LEN_FNAM) uVelInitFile
CHARACTER*(MAX_LEN_FNAM) vVelInitFile
CHARACTER*(MAX_LEN_FNAM) pSurfInitFile
CHARACTER*(MAX_LEN_FNAM) pLoadFile
CHARACTER*(MAX_LEN_FNAM) geoPotAnomFile
CHARACTER*(MAX_LEN_FNAM) addMassFile
CHARACTER*(MAX_LEN_FNAM) eddyPsiXFile
CHARACTER*(MAX_LEN_FNAM) eddyPsiYFile
CHARACTER*(MAX_LEN_FNAM) geothermalFile
CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile
CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile
CHARACTER*(MAX_LEN_FNAM) wghtBalanceFile
CHARACTER*(MAX_LEN_PREC/2) the_run_name
C-- COMMON /PARM_I/ Integer valued parameters used by the model.
C cg2dMaxIters :: Maximum number of iterations in the
C two-dimensional con. grad solver.
C cg2dMinItersNSA :: Minimum number of iterations in the
C not-self-adjoint version (cg2d_nsa.F) of the
C two-dimensional con. grad solver (default = 0).
C cg2dPreCondFreq :: Frequency for updating cg2d preconditioner
C (non-linear free-surf.)
C cg2dUseMinResSol :: =0 : use last-iteration/converged solution
C =1 : use solver minimum-residual solution
C cg3dMaxIters :: Maximum number of iterations in the
C three-dimensional con. grad solver.
C printResidualFreq :: Frequency for printing residual in CG iterations
C nIter0 :: Start time-step number of for this run
C nTimeSteps :: Number of timesteps to execute
C nTimeSteps_l2 :: Number of inner timesteps to execute per timestep
C selectCoriMap :: select setting of Coriolis parameter map:
C =0 f-Plane (Constant Coriolis, = f0)
C =1 Beta-Plane Coriolis (= f0 + beta.y)
C =2 Spherical Coriolis (= 2.omega.sin(phi))
C =3 Read Coriolis 2-d fields from files.
C selectSigmaCoord :: option related to sigma vertical coordinate
C nonlinFreeSurf :: option related to non-linear free surface
C =0 Linear free surface ; >0 Non-linear
C select_rStar :: option related to r* vertical coordinate
C =0 (default) use r coord. ; > 0 use r*
C selectNHfreeSurf :: option for Non-Hydrostatic (free-)Surface formulation:
C =0 (default) hydrostatic surf. ; > 0 add NH effects.
C selectP_inEOS_Zc :: select which pressure to use in EOS (for z-coords)
C =0: simply: -g*rhoConst*z
C =1: use pRef = integral{-g*rho(Tref,Sref,pRef)*dz}
C =2: use hydrostatic dynamical pressure
C =3: use full (Hyd+NH) dynamical pressure
C selectAddFluid :: option to add mass source/sink of fluid in the interior
C (3-D generalisation of oceanic real-fresh water flux)
C =0 off ; =1 add fluid ; =-1 virtual flux (no mass added)
C selectBalanceEmPmR :: option to balance net surface fresh-water flux:
C =0 off ; =1 uniform correction ; = 2 weighted correction
C selectImplicitDrag :: select Implicit treatment of bottom/top drag
C = 0: fully explicit
C = 1: implicit on provisional velocity
C (i.e., before grad.Eta increment)
C = 2: fully implicit (combined with Impl Surf.Press)
C momForcingOutAB :: =1: take momentum forcing contribution
C out of (=0: in) Adams-Bashforth time stepping.
C tracForcingOutAB :: =1: take tracer (Temp,Salt,pTracers) forcing contribution
C out of (=0: in) Adams-Bashforth time stepping.
C tempAdvScheme :: Temp. Horiz.Advection scheme selector
C tempVertAdvScheme :: Temp. Vert. Advection scheme selector
C saltAdvScheme :: Salt. Horiz.advection scheme selector
C saltVertAdvScheme :: Salt. Vert. Advection scheme selector
C selectKEscheme :: Kinetic Energy scheme selector (Vector Inv.)
C selectVortScheme :: Scheme selector for Vorticity term (Vector Inv.)
C selectCoriScheme :: Scheme selector for Coriolis term
C selectBotDragQuadr :: quadratic bottom drag discretisation option:
C =0: average KE from grid center to U & V location
C =1: use local velocity norm @ U & V location
C =2: same with wet-point averaging of other component
C pCellMix_select :: select option to enhance mixing near surface & bottom
C unit digit: near bottom ; tens digit: near surface
C with digit =0 : disable ;
C = 1 : increases mixing linearly with recip_hFac
C = 2,3,4 : increases mixing by recip_hFac^(2,3,4)
C readBinaryPrec :: Precision used for reading binary files
C writeStatePrec :: Precision used for writing model state.
C writeBinaryPrec :: Precision used for writing binary files
C rwSuffixType :: controls the format of the mds file suffix.
C =0 (default): use iteration number (myIter, I10.10);
C =1: 100*myTime (100th sec); =2: myTime (seconds);
C =3: myTime/360 (10th of hr); =4: myTime/3600 (hours).
C monitorSelect :: select group of variables to monitor
C =1 : dynvars ; =2 : + vort ; =3 : + surface
C- debugLevel :: controls printing of algorithm intermediate results
C and statistics ; higher -> more writing
C- plotLevel :: controls printing of field maps ; higher -> more flds
COMMON /PARM_I/
& cg2dMaxIters, cg2dMinItersNSA,
& cg2dPreCondFreq, cg2dUseMinResSol,
& cg3dMaxIters, printResidualFreq,
& nIter0, nTimeSteps, nTimeSteps_l2, nEndIter,
& selectCoriMap,
& selectSigmaCoord,
& nonlinFreeSurf, select_rStar,
& selectNHfreeSurf, selectP_inEOS_Zc,
& selectAddFluid, selectBalanceEmPmR, selectImplicitDrag,
& momForcingOutAB, tracForcingOutAB,
& tempAdvScheme, tempVertAdvScheme,
& saltAdvScheme, saltVertAdvScheme,
& selectKEscheme, selectVortScheme, selectCoriScheme,
& selectBotDragQuadr, pCellMix_select,
& readBinaryPrec, writeBinaryPrec, writeStatePrec,
& rwSuffixType, monitorSelect, debugLevel, plotLevel
INTEGER cg2dMaxIters
INTEGER cg2dMinItersNSA
INTEGER cg2dPreCondFreq
INTEGER cg2dUseMinResSol
INTEGER cg3dMaxIters
INTEGER printResidualFreq
INTEGER nIter0
INTEGER nTimeSteps
INTEGER nTimeSteps_l2
INTEGER nEndIter
INTEGER selectCoriMap
INTEGER selectSigmaCoord
INTEGER nonlinFreeSurf
INTEGER select_rStar
INTEGER selectNHfreeSurf
INTEGER selectP_inEOS_Zc
INTEGER selectAddFluid
INTEGER selectBalanceEmPmR
INTEGER selectImplicitDrag
INTEGER momForcingOutAB, tracForcingOutAB
INTEGER tempAdvScheme, tempVertAdvScheme
INTEGER saltAdvScheme, saltVertAdvScheme
INTEGER selectKEscheme
INTEGER selectVortScheme
INTEGER selectCoriScheme
INTEGER selectBotDragQuadr
INTEGER pCellMix_select
INTEGER readBinaryPrec
INTEGER writeStatePrec
INTEGER writeBinaryPrec
INTEGER rwSuffixType
INTEGER monitorSelect
INTEGER debugLevel
INTEGER plotLevel
C-- COMMON /PARM_L/ Logical valued parameters used by the model.
C- Coordinate + Grid params:
C fluidIsAir :: Set to indicate that the fluid major constituent
C is air
C fluidIsWater :: Set to indicate that the fluid major constituent
C is water
C usingPCoords :: Set to indicate that we are working in a pressure
C type coordinate (p or p*).
C usingZCoords :: Set to indicate that we are working in a height
C type coordinate (z or z*)
C usingCartesianGrid :: If TRUE grid generation will be in a cartesian
C coordinate frame.
C usingSphericalPolarGrid :: If TRUE grid generation will be in a
C spherical polar frame.
C rotateGrid :: rotate grid coordinates to geographical coordinates
C according to Euler angles phiEuler, thetaEuler, psiEuler
C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical
C usingCurvilinearGrid :: If TRUE, use a curvilinear grid (to be provided)
C hasWetCSCorners :: domain contains CS-type corners where dynamics is solved
C deepAtmosphere :: deep model (drop the shallow-atmosphere approximation)
C setInterFDr :: set Interface depth (put cell-Center at the middle)
C setCenterDr :: set cell-Center depth (put Interface at the middle)
C useMin4hFacEdges :: set hFacW,hFacS as minimum of adjacent hFacC factor
C interViscAr_pCell :: account for partial-cell in interior vert. viscosity
C interDiffKr_pCell :: account for partial-cell in interior vert. diffusion
C- Momentum params:
C no_slip_sides :: Impose "no-slip" at lateral boundaries.
C no_slip_bottom :: Impose "no-slip" at bottom boundary.
C bottomVisc_pCell :: account for partial-cell in bottom visc. (no-slip BC)
C useSmag3D :: Use isotropic 3-D Smagorinsky
C useFullLeith :: Set to true to use full Leith viscosity(may be unstable
C on irregular grids)
C useStrainTensionVisc:: Set to true to use Strain-Tension viscous terms
C useAreaViscLength :: Set to true to use old scaling for viscous lengths,
C e.g., L2=Raz. May be preferable for cube sphere.
C momViscosity :: Flag which turns momentum friction terms on and off.
C momAdvection :: Flag which turns advection of momentum on and off.
C momForcing :: Flag which turns external forcing of momentum on and off.
C momTidalForcing :: Flag which turns tidal forcing on and off.
C momPressureForcing :: Flag which turns pressure term in momentum equation
C on and off.
C metricTerms :: Flag which turns metric terms on or off.
C useNHMTerms :: If TRUE use non-hydrostatic metric terms.
C useCoriolis :: Flag which turns the coriolis terms on and off.
C use3dCoriolis :: Turns the 3-D coriolis terms (in Omega.cos Phi) on - off
C useCDscheme :: use CD-scheme to calculate Coriolis terms.
C vectorInvariantMomentum :: use Vector-Invariant form (mom_vecinv package)
C (default = F = use mom_fluxform package)
C useJamartMomAdv :: Use wet-point method for V.I. non-linear term
C upwindVorticity :: bias interpolation of vorticity in the Coriolis term
C highOrderVorticity :: use 3rd/4th order interp. of vorticity (V.I., advection)
C useAbsVorticity :: work with f+zeta in Coriolis terms
C upwindShear :: use 1rst order upwind interp. (V.I., vertical advection)
C momStepping :: Turns momentum equation time-stepping off
C calc_wVelocity :: Turns vertical velocity calculation off
C- Temp. & Salt params:
C tempStepping :: Turns temperature equation time-stepping on/off
C saltStepping :: Turns salinity equation time-stepping on/off
C addFrictionHeating :: account for frictional heating
C temp_stayPositive :: use Smolarkiewicz Hack to ensure Temp stays positive
C salt_stayPositive :: use Smolarkiewicz Hack to ensure Salt stays positive
C tempAdvection :: Flag which turns advection of temperature on and off.
C tempVertDiff4 :: use vertical bi-harmonic diffusion for temperature
C tempIsActiveTr :: Pot.Temp. is a dynamically active tracer
C tempForcing :: Flag which turns external forcing of temperature on/off
C saltAdvection :: Flag which turns advection of salinity on and off.
C saltVertDiff4 :: use vertical bi-harmonic diffusion for salinity
C saltIsActiveTr :: Salinity is a dynamically active tracer
C saltForcing :: Flag which turns external forcing of salinity on/off
C maskIniTemp :: apply mask to initial Pot.Temp.
C maskIniSalt :: apply mask to initial salinity
C checkIniTemp :: check for points with identically zero initial Pot.Temp.
C checkIniSalt :: check for points with identically zero initial salinity
C- Pressure solver related parameters (PARM02)
C useNSACGSolver :: Set to true to use "not self-adjoint" conjugate
C gradient solver that stores the iteration history
C for an iterative adjoint as accuate as possible
C useSRCGSolver :: Set to true to use conjugate gradient
C solver with single reduction (only one call of
C s/r mpi_allreduce), default is false
C- Time-stepping & free-surface params:
C rigidLid :: Set to true to use rigid lid
C implicitFreeSurface :: Set to true to use implicit free surface
C uniformLin_PhiSurf :: Set to true to use a uniform Bo_surf in the
C linear relation Phi_surf = Bo_surf*eta
C uniformFreeSurfLev :: TRUE if free-surface level-index is uniform (=1)
C exactConserv :: Set to true to conserve exactly the total Volume
C linFSConserveTr :: Set to true to correct source/sink of tracer
C at the surface due to Linear Free Surface
C useRealFreshWaterFlux :: if True (=Natural BCS), treats P+R-E flux
C as a real Fresh Water (=> changes the Sea Level)
C if F, converts P+R-E to salt flux (no SL effect)
C storePhiHyd4Phys :: store hydrostatic potential for use in Physics/EOS
C this requires specific code for restart & exchange
C quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm
C nonHydrostatic :: Using non-hydrostatic algorithm
C use3Dsolver :: set to true to use 3-D pressure solver
C implicitIntGravWave :: treat Internal Gravity Wave implicitly
C staggerTimeStep :: enable a Stagger time stepping U,V (& W) then T,S
C applyExchUV_early :: Apply EXCH to U,V earlier, just before integr_continuity
C doResetHFactors :: Do reset thickness factors @ beginning of each time-step
C implicitDiffusion :: Turns implicit vertical diffusion on
C implicitViscosity :: Turns implicit vertical viscosity on
C tempImplVertAdv :: Turns on implicit vertical advection for Temperature
C saltImplVertAdv :: Turns on implicit vertical advection for Salinity
C momImplVertAdv :: Turns on implicit vertical advection for Momentum
C multiDimAdvection :: Flag that enable multi-dimension advection
C useMultiDimAdvec :: True if multi-dim advection is used at least once
C momDissip_In_AB :: if False, put Dissipation tendency contribution
C out off Adams-Bashforth time stepping.
C doAB_onGtGs :: if the Adams-Bashforth time stepping is used, always
C apply AB on tracer tendencies (rather than on Tracer)
C- Other forcing params -
C balanceQnet :: substract global mean of Qnet at every time step
C balancePrintMean:: print substracted global means to STDOUT
C doThetaClimRelax :: Set true if relaxation to temperature
C climatology is required.
C doSaltClimRelax :: Set true if relaxation to salinity
C climatology is required.
C balanceThetaClimRelax :: substract global mean effect at every time step
C balanceSaltClimRelax :: substract global mean effect at every time step
C allowFreezing :: Allows surface water to freeze and form ice
C periodicExternalForcing :: Set true if forcing is time-dependant
C- I/O parameters -
C globalFiles :: Selects between "global" and "tiled" files.
C On some platforms with MPI, option globalFiles is either
C slow or does not work. Use useSingleCpuIO instead.
C useSingleCpuIO :: moved to EEPARAMS.h
C pickupStrictlyMatch :: check and stop if pickup-file do not stricly match
C startFromPickupAB2 :: with AB-3 code, start from an AB-2 pickup
C usePickupBeforeC54 :: start from old-pickup files, generated with code from
C before checkpoint-54a, Jul 06, 2004.
C pickup_write_mdsio :: use mdsio to write pickups
C pickup_read_mdsio :: use mdsio to read pickups
C pickup_write_immed :: echo the pickup immediately (for conversion)
C writePickupAtEnd :: write pickup at the last timestep
C timeave_mdsio :: use mdsio for timeave output
C snapshot_mdsio :: use mdsio for "snapshot" (dumpfreq/diagfreq) output
C monitor_stdio :: use stdio for monitor output
C dumpInitAndLast :: dumps model state to files at Initial (nIter0)
C & Last iteration, in addition multiple of dumpFreq iter.
COMMON /PARM_L/
& fluidIsAir, fluidIsWater,
& usingPCoords, usingZCoords,
& usingCartesianGrid, usingSphericalPolarGrid, rotateGrid,
& usingCylindricalGrid, usingCurvilinearGrid, hasWetCSCorners,
& deepAtmosphere, setInterFDr, setCenterDr, useMin4hFacEdges,
& interViscAr_pCell, interDiffKr_pCell,
& no_slip_sides, no_slip_bottom, bottomVisc_pCell, useSmag3D,
& useFullLeith, useStrainTensionVisc, useAreaViscLength,
& momViscosity, momAdvection, momForcing, momTidalForcing,
& momPressureForcing, metricTerms, useNHMTerms,
& useCoriolis, use3dCoriolis,
& useCDscheme, vectorInvariantMomentum,
& useJamartMomAdv, upwindVorticity, highOrderVorticity,
& useAbsVorticity, upwindShear,
& momStepping, calc_wVelocity, tempStepping, saltStepping,
& addFrictionHeating, temp_stayPositive, salt_stayPositive,
& tempAdvection, tempVertDiff4, tempIsActiveTr, tempForcing,
& saltAdvection, saltVertDiff4, saltIsActiveTr, saltForcing,
& maskIniTemp, maskIniSalt, checkIniTemp, checkIniSalt,
& useNSACGSolver, useSRCGSolver,
& rigidLid, implicitFreeSurface,
& uniformLin_PhiSurf, uniformFreeSurfLev,
& exactConserv, linFSConserveTr, useRealFreshWaterFlux,
& storePhiHyd4Phys, quasiHydrostatic, nonHydrostatic,
& use3Dsolver, implicitIntGravWave, staggerTimeStep,
& applyExchUV_early, doResetHFactors,
& implicitDiffusion, implicitViscosity,
& tempImplVertAdv, saltImplVertAdv, momImplVertAdv,
& multiDimAdvection, useMultiDimAdvec,
& momDissip_In_AB, doAB_onGtGs,
& balanceQnet, balancePrintMean,
& balanceThetaClimRelax, balanceSaltClimRelax,
& doThetaClimRelax, doSaltClimRelax,
& allowFreezing,
& periodicExternalForcing,
& globalFiles,
& pickupStrictlyMatch, usePickupBeforeC54, startFromPickupAB2,
& pickup_read_mdsio, pickup_write_mdsio, pickup_write_immed,
& writePickupAtEnd,
& timeave_mdsio, snapshot_mdsio, monitor_stdio,
& outputTypesInclusive, dumpInitAndLast
LOGICAL fluidIsAir
LOGICAL fluidIsWater
LOGICAL usingPCoords
LOGICAL usingZCoords
LOGICAL usingCartesianGrid
LOGICAL usingSphericalPolarGrid, rotateGrid
LOGICAL usingCylindricalGrid
LOGICAL usingCurvilinearGrid, hasWetCSCorners
LOGICAL deepAtmosphere
LOGICAL setInterFDr
LOGICAL setCenterDr
LOGICAL useMin4hFacEdges
LOGICAL interViscAr_pCell
LOGICAL interDiffKr_pCell
LOGICAL no_slip_sides
LOGICAL no_slip_bottom
LOGICAL bottomVisc_pCell
LOGICAL useSmag3D
LOGICAL useFullLeith
LOGICAL useStrainTensionVisc
LOGICAL useAreaViscLength
LOGICAL momViscosity
LOGICAL momAdvection
LOGICAL momForcing
LOGICAL momTidalForcing
LOGICAL momPressureForcing
LOGICAL metricTerms
LOGICAL useNHMTerms
LOGICAL useCoriolis
LOGICAL use3dCoriolis
LOGICAL useCDscheme
LOGICAL vectorInvariantMomentum
LOGICAL useJamartMomAdv
LOGICAL upwindVorticity
LOGICAL highOrderVorticity
LOGICAL useAbsVorticity
LOGICAL upwindShear
LOGICAL momStepping
LOGICAL calc_wVelocity
LOGICAL tempStepping
LOGICAL saltStepping
LOGICAL addFrictionHeating
LOGICAL temp_stayPositive
LOGICAL salt_stayPositive
LOGICAL tempAdvection
LOGICAL tempVertDiff4
LOGICAL tempIsActiveTr
LOGICAL tempForcing
LOGICAL saltAdvection
LOGICAL saltVertDiff4
LOGICAL saltIsActiveTr
LOGICAL saltForcing
LOGICAL maskIniTemp
LOGICAL maskIniSalt
LOGICAL checkIniTemp
LOGICAL checkIniSalt
LOGICAL useNSACGSolver
LOGICAL useSRCGSolver
LOGICAL rigidLid
LOGICAL implicitFreeSurface
LOGICAL uniformLin_PhiSurf
LOGICAL uniformFreeSurfLev
LOGICAL exactConserv
LOGICAL linFSConserveTr
LOGICAL useRealFreshWaterFlux
LOGICAL storePhiHyd4Phys
LOGICAL quasiHydrostatic
LOGICAL nonHydrostatic
LOGICAL use3Dsolver
LOGICAL implicitIntGravWave
LOGICAL staggerTimeStep
LOGICAL applyExchUV_early
LOGICAL doResetHFactors
LOGICAL implicitDiffusion
LOGICAL implicitViscosity
LOGICAL tempImplVertAdv
LOGICAL saltImplVertAdv
LOGICAL momImplVertAdv
LOGICAL multiDimAdvection
LOGICAL useMultiDimAdvec
LOGICAL momDissip_In_AB
LOGICAL doAB_onGtGs
LOGICAL balanceQnet
LOGICAL balancePrintMean
LOGICAL doThetaClimRelax
LOGICAL doSaltClimRelax
LOGICAL balanceThetaClimRelax
LOGICAL balanceSaltClimRelax
LOGICAL allowFreezing
LOGICAL periodicExternalForcing
LOGICAL globalFiles
LOGICAL pickupStrictlyMatch
LOGICAL usePickupBeforeC54
LOGICAL startFromPickupAB2
LOGICAL pickup_read_mdsio, pickup_write_mdsio
LOGICAL pickup_write_immed, writePickupAtEnd
LOGICAL timeave_mdsio, snapshot_mdsio, monitor_stdio
LOGICAL outputTypesInclusive
LOGICAL dumpInitAndLast
C-- COMMON /PARM_R/ "Real" valued parameters used by the model.
C cg2dTargetResidual
C :: Target residual for cg2d solver; no unit (RHS normalisation)
C cg2dTargetResWunit
C :: Target residual for cg2d solver; W unit (No RHS normalisation)
C cg3dTargetResidual
C :: Target residual for cg3d solver.
C cg2dpcOffDFac :: Averaging weight for preconditioner off-diagonal.
C Note. 20th May 1998
C I made a weird discovery! In the model paper we argue
C for the form of the preconditioner used here ( see
C A Finite-volume, Incompressible Navier-Stokes Model
C ...., Marshall et. al ). The algebra gives a simple
C 0.5 factor for the averaging of ac and aCw to get a
C symmettric pre-conditioner. By using a factor of 0.51
C i.e. scaling the off-diagonal terms in the
C preconditioner down slightly I managed to get the
C number of iterations for convergence in a test case to
C drop form 192 -> 134! Need to investigate this further!
C For now I have introduced a parameter cg2dpcOffDFac which
C defaults to 0.51 but can be set at runtime.
C delR :: Vertical grid spacing ( units of r ).
C delRc :: Vertical grid spacing between cell centers (r unit).
C delX :: Separation between cell faces (m) or (deg), depending
C delY on input flags. Note: moved to header file SET_GRID.h
C xgOrigin :: Origin of the X-axis (Cartesian Grid) / Longitude of Western
C :: most cell face (Lat-Lon grid) (Note: this is an "inert"
C :: parameter but it makes geographical references simple.)
C ygOrigin :: Origin of the Y-axis (Cartesian Grid) / Latitude of Southern
C :: most face (Lat-Lon grid).
C rSphere :: Radius of sphere for a spherical polar grid ( m ).
C recip_rSphere :: Reciprocal radius of sphere ( m^-1 ).
C radius_fromHorizGrid :: sphere Radius of input horiz. grid (Curvilinear Grid)
C seaLev_Z :: the reference height of sea-level (usually zero)
C top_Pres :: pressure (P-Coords) or reference pressure (Z-Coords) at the top
C rSigmaBnd :: vertical position (in r-unit) of r/sigma transition (Hybrid-Sigma)
C gravity :: Acceleration due to constant gravity ( m/s^2 )
C recip_gravity :: Reciprocal gravity acceleration ( s^2/m )
C gBaro :: Accel. due to gravity used in barotropic equation ( m/s^2 )
C gravFacC :: gravity factor (vs surf. gravity) vert. profile at cell-Center
C gravFacF :: gravity factor (vs surf. gravity) vert. profile at cell-interF
C rhoNil :: Reference density for the linear equation of state
C rhoConst :: Vertically constant reference density (Boussinesq)
C rho1Ref :: reference vertical profile for density (anelastic)
C rhoFacC :: normalized (by rhoConst) reference density at cell-Center
C rhoFacF :: normalized (by rhoConst) reference density at cell-interFace
C rhoConstFresh :: Constant reference density for fresh water (rain)
C thetaConst :: Constant reference for potential temperature
C tRef :: reference vertical profile for potential temperature
C sRef :: reference vertical profile for salinity/specific humidity
C rhoRef :: density vertical profile from (tRef,sRef) [kg/m^3]
C dBdrRef :: vertical gradient of reference buoyancy [(m/s/r)^2]:
C :: z-coord: = N^2_ref = Brunt-Vaissala frequency [s^-2]
C :: p-coord: = -(d.alpha/dp)_ref [(m^2.s/kg)^2]
C surf_pRef :: surface reference pressure ( Pa )
C pRef4EOS :: reference pressure used in EOS (case selectP_inEOS_Zc=1)
C phiRef :: reference potential (press/rho, geopot) profile (m^2/s^2)
C rVel2wUnit :: units conversion factor (Non-Hydrostatic code),
C :: from r-coordinate vertical velocity to vertical velocity [m/s].
C :: z-coord: = 1 ; p-coord: wSpeed [m/s] = rVel [Pa/s] * rVel2wUnit
C wUnit2rVel :: units conversion factor (Non-Hydrostatic code),
C :: from vertical velocity [m/s] to r-coordinate vertical velocity.
C :: z-coord: = 1 ; p-coord: rVel [Pa/s] = wSpeed [m/s] * wUnit2rVel
C rUnit2z :: units conversion factor (for ocean in P-coord, only fct of k),
C :: from r-coordinate to z [m] (at level center):
C :: z-coord: = 1 ; p-coord: dz [m] = dr [Pa] * rUnit2z
C z2rUnit :: units conversion factor (for ocean in P-coord, only fct of k),
C :: from z [m] to r-coordinate (at level center):
C :: z-coord: = 1 ; p-coord: dr [Pa] = dz [m] * z2rUnit
C mass2rUnit :: units conversion factor (surface forcing),
C :: from mass per unit area [kg/m2] to vertical r-coordinate unit.
C :: z-coord: = 1/rhoConst ( [kg/m2] / rho = [m] ) ;
C :: p-coord: = gravity ( [kg/m2] * g = [Pa] ) ;
C rUnit2mass :: units conversion factor (surface forcing),
C :: from vertical r-coordinate unit to mass per unit area [kg/m2].
C :: z-coord: = rhoConst ( [m] * rho = [kg/m2] ) ;
C :: p-coord: = 1/gravity ( [Pa] / g = [kg/m2] ) ;
C sIceLoadFac:: factor to scale (and turn off) sIceLoad (sea-ice loading)
C default = 1
C f0 :: Reference coriolis parameter ( 1/s )
C ( Southern edge f for beta plane )
C beta :: df/dy ( s^-1.m^-1 )
C fPrime :: Second Coriolis parameter ( 1/s ), related to Y-component
C of rotation (reference value = 2.Omega.Cos(Phi))
C omega :: Angular velocity ( rad/s )
C rotationPeriod :: Rotation period (s) (= 2.pi/omega)
C viscArNr :: vertical profile of Eddy viscosity coeff.
C for vertical mixing of momentum ( units of r^2/s )
C viscAh :: Eddy viscosity coeff. for mixing of
C momentum laterally ( m^2/s )
C viscAhW :: Eddy viscosity coeff. for mixing of vertical
C momentum laterally, no effect for hydrostatic
C model, defaults to viscAhD if unset ( m^2/s )
C Not used if variable horiz. viscosity is used.
C viscA4 :: Biharmonic viscosity coeff. for mixing of
C momentum laterally ( m^4/s )
C viscA4W :: Biharmonic viscosity coeff. for mixing of vertical
C momentum laterally, no effect for hydrostatic
C model, defaults to viscA4D if unset ( m^2/s )
C Not used if variable horiz. viscosity is used.
C viscAhD :: Eddy viscosity coeff. for mixing of momentum laterally
C (act on Divergence part) ( m^2/s )
C viscAhZ :: Eddy viscosity coeff. for mixing of momentum laterally
C (act on Vorticity part) ( m^2/s )
C viscA4D :: Biharmonic viscosity coeff. for mixing of momentum laterally
C (act on Divergence part) ( m^4/s )
C viscA4Z :: Biharmonic viscosity coeff. for mixing of momentum laterally
C (act on Vorticity part) ( m^4/s )
C smag3D_coeff :: Isotropic 3-D Smagorinsky viscosity coefficient (-)
C smag3D_diffCoeff :: Isotropic 3-D Smagorinsky diffusivity coefficient (-)
C viscC2leith :: Leith non-dimensional viscosity factor (grad(vort))
C viscC2leithD :: Modified Leith non-dimensional visc. factor (grad(div))
C viscC2LeithQG:: QG Leith non-dimensional viscosity factor
C viscC4leith :: Leith non-dimensional viscosity factor (grad(vort))
C viscC4leithD :: Modified Leith non-dimensional viscosity factor (grad(div))
C viscC2smag :: Smagorinsky non-dimensional viscosity factor (harmonic)
C viscC4smag :: Smagorinsky non-dimensional viscosity factor (biharmonic)
C viscAhMax :: Maximum eddy viscosity coeff. for mixing of
C momentum laterally ( m^2/s )
C viscAhReMax :: Maximum gridscale Reynolds number for eddy viscosity
C coeff. for mixing of momentum laterally (non-dim)
C viscAhGrid :: non-dimensional grid-size dependent viscosity
C viscAhGridMax:: maximum and minimum harmonic viscosity coefficients ...
C viscAhGridMin:: in terms of non-dimensional grid-size dependent visc.
C viscA4Max :: Maximum biharmonic viscosity coeff. for mixing of
C momentum laterally ( m^4/s )
C viscA4ReMax :: Maximum Gridscale Reynolds number for
C biharmonic viscosity coeff. momentum laterally (non-dim)
C viscA4Grid :: non-dimensional grid-size dependent bi-harmonic viscosity
C viscA4GridMax:: maximum and minimum biharmonic viscosity coefficients ...
C viscA4GridMin:: in terms of non-dimensional grid-size dependent viscosity
C diffKhT :: Laplacian diffusion coeff. for mixing of
C heat laterally ( m^2/s )
C diffK4T :: Biharmonic diffusion coeff. for mixing of
C heat laterally ( m^4/s )
C diffKrNrT :: vertical profile of Laplacian diffusion coeff.
C for mixing of heat vertically ( units of r^2/s )
C diffKr4T :: vertical profile of Biharmonic diffusion coeff.
C for mixing of heat vertically ( units of r^4/s )
C diffKhS :: Laplacian diffusion coeff. for mixing of
C salt laterally ( m^2/s )
C diffK4S :: Biharmonic diffusion coeff. for mixing of
C salt laterally ( m^4/s )
C diffKrNrS :: vertical profile of Laplacian diffusion coeff.
C for mixing of salt vertically ( units of r^2/s ),
C diffKr4S :: vertical profile of Biharmonic diffusion coeff.
C for mixing of salt vertically ( units of r^4/s )
C diffKrBL79surf :: T/S surface diffusivity (m^2/s) Bryan and Lewis, 1979
C diffKrBL79deep :: T/S deep diffusivity (m^2/s) Bryan and Lewis, 1979
C diffKrBL79scl :: depth scale for arctan fn (m) Bryan and Lewis, 1979
C diffKrBL79Ho :: depth offset for arctan fn (m) Bryan and Lewis, 1979
C BL79LatVary :: polarwise of this latitude diffKrBL79 is applied with
C gradual transition to diffKrBLEQ towards Equator
C diffKrBLEQsurf :: same as diffKrBL79surf but at Equator
C diffKrBLEQdeep :: same as diffKrBL79deep but at Equator
C diffKrBLEQscl :: same as diffKrBL79scl but at Equator
C diffKrBLEQHo :: same as diffKrBL79Ho but at Equator
C pCellMix_maxFac :: maximum enhanced mixing factor for thin partial-cell
C pCellMix_delR :: thickness criteria for too thin partial-cell
C pCellMix_viscAr :: vertical viscosity for too thin partial-cell
C pCellMix_diffKr :: vertical diffusivity for too thin partial-cell
C deltaT :: Default timestep ( s )
C deltaTClock :: Timestep used as model "clock". This determines the
C IO frequencies and is used in tagging output. It can
C be totally different to the dynamical time. Typically
C it will be the deep-water timestep for accelerated runs.
C Frequency of checkpointing and dumping of the model state
C are referenced to this clock. ( s )
C deltaTMom :: Timestep for momemtum equations ( s )
C dTtracerLev :: Timestep for tracer equations ( s ), function of level k
C deltaTFreeSurf :: Timestep for free-surface equation ( s )
C freeSurfFac :: Parameter to turn implicit free surface term on or off
C freeSurFac = 1. uses implicit free surface
C freeSurFac = 0. uses rigid lid
C abEps :: Adams-Bashforth-2 stabilizing weight
C alph_AB :: Adams-Bashforth-3 primary factor
C beta_AB :: Adams-Bashforth-3 secondary factor
C implicSurfPress :: parameter of the Crank-Nickelson time stepping :
C Implicit part of Surface Pressure Gradient ( 0-1 )
C implicDiv2DFlow :: parameter of the Crank-Nickelson time stepping :
C Implicit part of barotropic flow Divergence ( 0-1 )
C implicitNHPress :: parameter of the Crank-Nickelson time stepping :
C Implicit part of Non-Hydrostatic Pressure Gradient ( 0-1 )
C hFacMin :: Minimum fraction size of a cell (affects hFacC etc...)
C hFacMinDz :: Minimum dimensional size of a cell (affects hFacC etc..., m)
C hFacMinDp :: Minimum dimensional size of a cell (affects hFacC etc..., Pa)
C hFacMinDr :: Minimum dimensional size of a cell (-> hFacC etc..., r units)
C hFacInf :: Threshold (inf and sup) for fraction size of surface cell
C hFacSup that control vanishing and creating levels
C tauCD :: CD scheme coupling timescale ( s )
C rCD :: CD scheme normalised coupling parameter (= 1 - deltaT/tauCD)
C epsAB_CD :: Adams-Bashforth-2 stabilizing weight used in CD scheme
C baseTime :: model base time (time origin) = time @ iteration zero
C startTime :: Starting time for this integration ( s ).
C endTime :: Ending time for this integration ( s ).
C chkPtFreq :: Frequency of rolling check pointing ( s ).
C pChkPtFreq :: Frequency of permanent check pointing ( s ).
C dumpFreq :: Frequency with which model state is written to
C post-processing files ( s ).
C diagFreq :: Frequency with which model writes diagnostic output
C of intermediate quantities.
C afFacMom :: Advection of momentum term tracer parameter
C vfFacMom :: Momentum viscosity tracer parameter
C pfFacMom :: Momentum pressure forcing tracer parameter
C cfFacMom :: Coriolis term tracer parameter
C foFacMom :: Momentum forcing tracer parameter
C mtFacMom :: Metric terms tracer parameter
C cosPower :: Power of cosine of latitude to multiply viscosity
C cAdjFreq :: Frequency of convective adjustment
C
C taveFreq :: Frequency with which time-averaged model state
C is written to post-processing files ( s ).
C tave_lastIter :: (for state variable only) fraction of the last time
C step (of each taveFreq period) put in the time average.
C (fraction for 1rst iter = 1 - tave_lastIter)
C tauThetaClimRelax :: Relaxation to climatology time scale ( s ).
C tauSaltClimRelax :: Relaxation to climatology time scale ( s ).
C latBandClimRelax :: latitude band where Relaxation to Clim. is applied,
C i.e. where |yC| <= latBandClimRelax
C externForcingPeriod :: Is the period of which forcing varies (eg. 1 month)
C externForcingCycle :: Is the repeat time of the forcing (eg. 1 year)
C (note: externForcingCycle must be an integer
C number times externForcingPeriod)
C convertFW2Salt :: salinity, used to convert Fresh-Water Flux to Salt Flux
C (use model surface (local) value if set to -1)
C temp_EvPrRn :: temperature of Rain & Evap.
C salt_EvPrRn :: salinity of Rain & Evap.
C temp_addMass :: temperature of addMass array
C salt_addMass :: salinity of addMass array
C (notes: a) tracer content of Rain/Evap only used if both
C NonLin_FrSurf & useRealFreshWater are set.
C b) use model surface (local) value if set to UNSET_RL)
C hMixCriteria:: criteria for mixed-layer diagnostic
C dRhoSmall :: parameter for mixed-layer diagnostic
C hMixSmooth :: Smoothing parameter for mixed-layer diag (default=0=no smoothing)
C ivdc_kappa :: implicit vertical diffusivity for convection [m^2/s]
C sideDragFactor :: side-drag scaling factor (used only if no_slip_sides)
C (default=2: full drag ; =1: gives half-slip BC)
C bottomDragLinear :: Linear bottom-drag coefficient (units of [r]/s)
C bottomDragQuadratic :: Quadratic bottom-drag coefficient (units of [r]/m)
C (if using zcoordinate, units becomes linear: m/s, quadratic: [-])
C smoothAbsFuncRange :: 1/2 of interval around zero, for which FORTRAN ABS
C is to be replace by a smoother function
C (affects myabs, mymin, mymax)
C nh_Am2 :: scales the non-hydrostatic terms and changes internal scales
C (i.e. allows convection at different Rayleigh numbers)
C tCylIn :: Temperature of the cylinder inner boundary
C tCylOut :: Temperature of the cylinder outer boundary
C phiEuler :: Euler angle, rotation about original z-axis
C thetaEuler :: Euler angle, rotation about new x-axis
C psiEuler :: Euler angle, rotation about new z-axis
COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit,
& cg2dpcOffDFac, cg3dTargetResidual,
& delR, delRc, xgOrigin, ygOrigin, rSphere, recip_rSphere,
& radius_fromHorizGrid, seaLev_Z, top_Pres, rSigmaBnd,
& deltaT, deltaTMom, dTtracerLev, deltaTFreeSurf, deltaTClock,
& abEps, alph_AB, beta_AB,
& f0, beta, fPrime, omega, rotationPeriod,
& viscFacAdj, viscAh, viscAhW, smag3D_coeff, smag3D_diffCoeff,
& viscAhMax, viscAhGrid, viscAhGridMax, viscAhGridMin,
& viscC2leith, viscC2leithD, viscC2LeithQG,
& viscC2smag, viscC4smag,
& viscAhD, viscAhZ, viscA4D, viscA4Z,
& viscA4, viscA4W, viscA4Max,
& viscA4Grid, viscA4GridMax, viscA4GridMin,
& viscAhReMax, viscA4ReMax,
& viscC4leith, viscC4leithD, viscArNr,
& diffKhT, diffK4T, diffKrNrT, diffKr4T,
& diffKhS, diffK4S, diffKrNrS, diffKr4S,
& diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho,
& BL79LatVary,
& diffKrBLEQsurf, diffKrBLEQdeep, diffKrBLEQscl, diffKrBLEQHo,
& pCellMix_maxFac, pCellMix_delR, pCellMix_viscAr, pCellMix_diffKr,
& tauCD, rCD, epsAB_CD,
& freeSurfFac, implicSurfPress, implicDiv2DFlow, implicitNHPress,
& hFacMin, hFacMinDz, hFacInf, hFacSup,
& gravity, recip_gravity, gBaro,
& gravFacC, recip_gravFacC, gravFacF, recip_gravFacF,
& rhoNil, rhoConst, recip_rhoConst, rho1Ref,
& rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, rhoConstFresh,
& thetaConst, tRef, sRef, rhoRef, dBdrRef,
& surf_pRef, pRef4EOS, phiRef,
& rVel2wUnit, wUnit2rVel, rUnit2z, z2rUnit, mass2rUnit, rUnit2mass,
& baseTime, startTime, endTime,
& chkPtFreq, pChkPtFreq, dumpFreq, adjDumpFreq,
& diagFreq, taveFreq, tave_lastIter, monitorFreq, adjMonitorFreq,
& afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom,
& cosPower, cAdjFreq,
& tauThetaClimRelax, tauSaltClimRelax, latBandClimRelax,
& externForcingCycle, externForcingPeriod,
& convertFW2Salt, temp_EvPrRn, salt_EvPrRn,
& temp_addMass, salt_addMass, hFacMinDr, hFacMinDp,
& ivdc_kappa, hMixCriteria, dRhoSmall, hMixSmooth,
& sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2,
& smoothAbsFuncRange, sIceLoadFac,
& tCylIn, tCylOut,
& phiEuler, thetaEuler, psiEuler
_RL cg2dTargetResidual
_RL cg2dTargetResWunit
_RL cg3dTargetResidual
_RL cg2dpcOffDFac
_RL delR(Nr)
_RL delRc(Nr+1)
_RL xgOrigin
_RL ygOrigin
_RL rSphere
_RL recip_rSphere
_RL radius_fromHorizGrid
_RL seaLev_Z
_RL top_Pres
_RL rSigmaBnd
_RL deltaT
_RL deltaTClock
_RL deltaTMom
_RL dTtracerLev(Nr)
_RL deltaTFreeSurf
_RL abEps, alph_AB, beta_AB
_RL f0
_RL beta
_RL fPrime
_RL omega
_RL rotationPeriod
_RL freeSurfFac
_RL implicSurfPress
_RL implicDiv2DFlow
_RL implicitNHPress
_RL hFacMin
_RL hFacMinDz
_RL hFacMinDp
_RL hFacMinDr
_RL hFacInf
_RL hFacSup
_RL viscArNr(Nr)
_RL viscFacAdj
_RL viscAh
_RL viscAhW
_RL viscAhD
_RL viscAhZ
_RL smag3D_coeff, smag3D_diffCoeff
_RL viscAhMax
_RL viscAhReMax
_RL viscAhGrid, viscAhGridMax, viscAhGridMin
_RL viscC2leith
_RL viscC2leithD
_RL viscC2LeithQG
_RL viscC2smag
_RL viscA4
_RL viscA4W
_RL viscA4D
_RL viscA4Z
_RL viscA4Max
_RL viscA4ReMax
_RL viscA4Grid, viscA4GridMax, viscA4GridMin
_RL viscC4leith
_RL viscC4leithD
_RL viscC4smag
_RL diffKhT
_RL diffK4T
_RL diffKrNrT(Nr)
_RL diffKr4T(Nr)
_RL diffKhS
_RL diffK4S
_RL diffKrNrS(Nr)
_RL diffKr4S(Nr)
_RL diffKrBL79surf
_RL diffKrBL79deep
_RL diffKrBL79scl
_RL diffKrBL79Ho
_RL BL79LatVary
_RL diffKrBLEQsurf
_RL diffKrBLEQdeep
_RL diffKrBLEQscl
_RL diffKrBLEQHo
_RL pCellMix_maxFac
_RL pCellMix_delR
_RL pCellMix_viscAr(Nr)
_RL pCellMix_diffKr(Nr)
_RL tauCD, rCD, epsAB_CD
_RL gravity, recip_gravity
_RL gBaro
_RL gravFacC(Nr), recip_gravFacC(Nr)
_RL gravFacF(Nr+1), recip_gravFacF(Nr+1)
_RL rhoNil
_RL rhoConst, recip_rhoConst
_RL rho1Ref(Nr)
_RL rhoFacC(Nr), recip_rhoFacC(Nr)
_RL rhoFacF(Nr+1), recip_rhoFacF(Nr+1)
_RL rhoConstFresh
_RL thetaConst
_RL tRef(Nr)
_RL sRef(Nr)
_RL rhoRef(Nr)
_RL dBdrRef(Nr)
_RL surf_pRef, pRef4EOS(Nr)
_RL phiRef(2*Nr+1)
_RL rVel2wUnit(Nr+1), wUnit2rVel(Nr+1)
_RL rUnit2z(Nr), z2rUnit(Nr)
_RL mass2rUnit, rUnit2mass
_RL baseTime
_RL startTime
_RL endTime
_RL chkPtFreq
_RL pChkPtFreq
_RL dumpFreq
_RL adjDumpFreq
_RL diagFreq
_RL taveFreq
_RL tave_lastIter
_RL monitorFreq
_RL adjMonitorFreq
_RL afFacMom
_RL vfFacMom
_RL pfFacMom
_RL cfFacMom
_RL foFacMom
_RL mtFacMom
_RL cosPower
_RL cAdjFreq
_RL tauThetaClimRelax
_RL tauSaltClimRelax
_RL latBandClimRelax
_RL externForcingCycle
_RL externForcingPeriod
_RL convertFW2Salt
_RL temp_EvPrRn
_RL salt_EvPrRn
_RL temp_addMass
_RL salt_addMass
_RL ivdc_kappa
_RL hMixCriteria
_RL dRhoSmall
_RL hMixSmooth
_RL sideDragFactor