/
ocean_ross.in
1811 lines (1651 loc) · 85.2 KB
/
ocean_ross.in
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
!
! ROMS/TOMS Standard Input parameters.
!
!svn $Id: ocean_soglobec.in 1176 2010-03-02 01:32:31Z kate $
!========================================================= Hernan G. Arango ===
! Copyright (c) 2002-2010 The ROMS/TOMS Group !
! Licensed under a MIT/X style license !
! See License_ROMS.txt !
!==============================================================================
! !
! Input parameters can be entered in ANY order, provided that the parameter !
! KEYWORD (usually, upper case) is typed correctly followed by "=" or "==" !
! symbols. Any comment lines are allowed and must begin with an exclamation !
! mark (!) in column one. Comments may appear to the right of a parameter !
! specification to improve documentation. Comments will be ignored during !
! reading. Blank lines are also allowed and ignored. Continuation lines in !
! a parameter specification are allowed and must be preceded by a backslash !
! (\). In some instances, more than one value is required for a parameter. !
! If fewer values are provided, the last value is assigned for the entire !
! parameter array. The multiplication symbol (*), without blank spaces in !
! between, is allowed for a parameter specification. For example, in a two !
! grids nested application: !
! !
! AKT_BAK == 2*1.0d-6 2*5.0d-6 ! m2/s !
! !
! indicates that the first two entries of array AKT_BAK, in fortran column- !
! major order, will have the same value of "1.0d-6" for grid 1, whereas the !
! next two entries will have the same value of "5.0d-6" for grid 2. !
! !
! In multiple levels of nesting and/or multiple connected domains step-ups, !
! "Ngrids" entries are expected for some of these parameters. In such case, !
! the order of the entries for a parameter is extremely important. It must !
! follow the same order (1:Ngrids) as in the state variable declaration. The !
! USER may follow the above guidelines for specifying his/her values. These !
! parameters are marked by "==" plural symbol after the KEYWORD. !
! !
!==============================================================================
!
! Application title.
TITLE = ROMS/TOMS 3.6 - ROSS - coupled ice-ocean run
! C-preprocessing Flag.
MyAppCPP = ROSS
! Input variable information file name. This file needs to be processed
! first so all information arrays can be initialized properly.
VARNAME = Apps/ROSS/varinfo_ROSS.dat
! Number of nested grids.
Ngrids = 1
! Grid dimension parameters. See notes below in the Glossary for how to set
! these parameters correctly.
Lm == 277 ! Number of I-direction INTERIOR RHO-points
Mm == 368 ! Number of J-direction INTERIOR RHO-points
N == 24 ! Number of vertical levels
Nbed = 0 ! Number of sediment bed layers
NAT = 2 ! Number of active tracers (usually, 2)
NPT = 3 ! Number of inactive passive tracers
NCS = 0 ! Number of cohesive (mud) sediment tracers
NNS = 0 ! Number of non-cohesive (sand) sediment tracers
! Domain decomposition parameters for serial, distributed-memory or
! shared-memory configurations used to determine tile horizontal range
! indices (Istr,Iend) and (Jstr,Jend), [1:Ngrids].
NtileI == 10 ! I-direction partition
NtileJ == 10 ! J-direction partition
! Set lateral boundary conditions keyword. Notice that a value is expected
! for each boundary segment per nested grid for each state variable.
!
! Each tracer variable requires [1:4,1:NAT+NPT,Ngrids] values. Otherwise,
! [1:4,1:Ngrids] values are expected for other variables. The boundary
! order is: 1=west, 2=south, 3=east, and 4=north. That is, anticlockwise
! starting at the western boundary.
!
! The keyword is case insensitive and usually has three characters. However,
! it is possible to have compound keywords, if applicable. For example, the
! keyword "RadNud" implies radiation boundary condition with nudging. This
! combination is usually used in active/passive radiation conditions.
!
! Keyword Lateral Boundary Condition Type
!
! Mix Mixed (for ice, see lbc.F & i2d_bc.F)
! Cha Chapman
! Cla Clamped
! Clo Closed
! Fla Flather _____N_____ j=Mm
! Gra Gradient | 4 |
! Nes Nested | |
! Nud Nudging 1 W E 3
! Per Periodic | |
! Rad Radiation |_____S_____|
! Red Reduced Physics 2 j=1
! i=1 i=Lm
! W S E N
! e o a o
! s u s r
! t t t t
! h h
!
! 1 2 3 4
LBC(isFsur) == Gra Clo Gra Gra ! free-surface
LBC(isUbar) == RadNud Clo RadNud RadNud ! 2D U-momentum
LBC(isVbar) == RadNud Clo RadNud RadNud ! 2D V-momentum
LBC(isUvel) == Rad Clo Rad Rad ! 3D U-momentum
LBC(isVvel) == Rad Clo Rad Rad ! 3D V-momentum
LBC(isMtke) == Gra Clo Gra Gra ! mixing TKE
LBC(isTvar) == RadNud Clo RadNud RadNud \ ! temperature
RadNud Clo RadNud RadNud \ ! salinity
RadNud Clo RadNud RadNud \ ! dye_01
RadNud Clo RadNud RadNud \ ! dye_02
RadNud Clo RadNud RadNud ! dye_03
! Ice boundary conditions
LBC(isAice) == Mix Clo Mix Mix ! ice concentration
LBC(isHice) == Mix Clo Mix Mix ! ice thickness
LBC(isHsno) == Mix Clo Mix Mix ! snow thickness
LBC(isTice) == Gra Clo Gra Gra ! ice temperature
LBC(isSfwat)== Clo Clo Clo Clo ! surface water
LBC(isSig11)== Gra Clo Gra Gra ! sigma-11
LBC(isSig12)== Gra Clo Gra Gra ! sigma-12
LBC(isSig22)== Gra Clo Gra Gra ! sigma-22
LBC(isUice) == Gra Clo Gra Gra ! ice U-momentum
LBC(isVice) == Gra Clo Gra Gra ! ice V-momentum
! Adjoint-based algorithms can have different lateral boundary
! conditions keywords.
ad_LBC(isFsur) == Gra Clo Gra Gra ! free-surface
ad_LBC(isUbar) == RadNud Clo RadNud RadNud ! 2D U-momentum
ad_LBC(isVbar) == RadNud Clo RadNud RadNud ! 2D U-momentum
ad_LBC(isUvel) == Rad Clo Rad Rad ! 3D U-momentum
ad_LBC(isVvel) == Rad Clo Rad Rad ! 3D V-momentum
ad_LBC(isMtke) == Gra Clo Gra Gra ! mixing TKE
ad_LBC(isTvar) == RadNud Clo RadNud RadNud \ ! temperature
RadNud Clo RadNud RadNud ! salinity
! Set lateral open boundary edge volume conservation switch for
! nonlinear model and adjoint-based algorithms. Usually activated
! with radiation boundary conditions to enforce global mass
! conservation, except if tidal forcing enabled. [1:Ngrids].
VolCons(west) == T ! western boundary
VolCons(east) == T ! eastern boundary
VolCons(south) == F ! southern boundary
VolCons(north) == T ! northern boundary
ad_VolCons(west) == T ! western boundary
ad_VolCons(east) == T ! eastern boundary
ad_VolCons(south) == F ! southern boundary
ad_VolCons(north) == T ! northern boundary
! Time-Stepping parameters.
NTIMES == 783360 !End time = 783360, rst time = 630720
DT == 300.0d0
NDTFAST == 30
! Model iteration loops parameters.
ERstr = 1
ERend = 1
Nouter = 1
Ninner = 1
Nintervals = 1
! Number of eigenvalues (NEV) and eigenvectors (NCV) to compute for the
! Lanczos/Arnoldi problem in the Generalized Stability Theory (GST)
! analysis. NCV must be greater than NEV (see documentation below).
NEV = 2 ! Number of eigenvalues
NCV = 10 ! Number of eigenvectors
! Input/Output parameters.
NRREC == 2
LcycleRST == T
NRST == 1440
NSTA == 6
NFLT == 12
NINFO == 1
! Output history, average, diagnostic files parameters.
LDEFOUT == T
NHIS == 288 !1440
NDEFHIS == 4320 !23040
NTSAVG == 1
NAVG == 288 !1440
NDEFAVG == 4320 !23040
NTSDIA == 1
NDIA == 288 !1440
NDEFDIA == 4320 !11520
! Output tangent linear and adjoint models parameters.
LcycleTLM == F
NTLM == 72
NDEFTLM == 0
LcycleADJ == F
NADJ == 72
NDEFADJ == 0
NSFF == 72
NOBC == 72
! Output check pointing GST restart parameters.
LmultiGST = F !NEW ! one eigenvector per file
LrstGST = F ! GST restart switch
MaxIterGST = 500 ! maximun number of iterations
NGST = 10 ! check pointing interval
! Relative accuracy of the Ritz values computed in the GST analysis.
Ritz_tol = 1.0d-15
! Harmonic/biharmonic horizontal diffusion of tracer for nonlinear model
! and adjoint-based algorithms: [1:NAT+NPT,Ngrids].
TNU2 == 5*5.0d0 ! m2/s
TNU4 == 2*0.0d0 ! m4/s
ad_TNU2 == 0.0d0 0.0d0 ! m2/s
ad_TNU4 == 0.0d0 0.0d0 ! m4/s
! Harmononic/biharmonic, horizontal viscosity coefficient for nonlinear model
! and adjoint-based algorithms: [Ngrids].
VISC2 == 0.1d0 ! m2/s
VISC4 == 0.0d0 ! m4/s
ad_VISC2 == 0.0d0 ! m2/s
ad_VISC4 == 0.0d0 ! m4/s
! Vertical mixing coefficients for tracers in nonlinear model and
! basic state scale factor in adjoint-based algorithms: [1:NAT+NPT,Ngrids]
AKT_BAK == 1.0d-5 1.0d-5 1.0d-5 ! m2/s
ad_AKT_fac == 1.0d0 1.0d0 ! nondimensional
! Vertical mixing coefficient for momentum for nonlinear model and
! basic state scale factor in adjoint-based algorithms: [Ngrids].
AKV_BAK == 5.0d-5 ! m2/s
ad_AKV_fac == 1.0d0 ! nondimensional
! Turbulent closure parameters.
AKK_BAK == 5.0d-6 ! m2/s
AKP_BAK == 5.0d-6 ! m2/s
TKENU2 == 0.0d0 ! m2/s
TKENU4 == 0.0d0 ! m4/s
! Generic length-scale turbulence closure parameters.
GLS_P == 3.0d0 ! K-epsilon
GLS_M == 1.5d0
GLS_N == -1.0d0
GLS_Kmin == 7.6d-6
GLS_Pmin == 1.0d-12
GLS_CMU0 == 0.5477d0
GLS_C1 == 1.44d0
GLS_C2 == 1.92d0
GLS_C3M == -0.4d0
GLS_C3P == 1.0d0
GLS_SIGK == 1.0d0
GLS_SIGP == 1.30d0
! Constants used in surface turbulent kinetic energy flux computation.
CHARNOK_ALPHA == 1400.0d0 ! Charnok surface roughness
ZOS_HSIG_ALPHA == 0.5d0 ! roughness from wave amplitude
SZ_ALPHA == 0.25d0 ! roughness from wave dissipation
CRGBAN_CW == 100.0d0 ! Craig and Banner wave breaking
! Constants used in momentum stress computation.
RDRG == 0.0d0 ! m/s
RDRG2 == 3.0d-03 ! nondimensional
Zob == 0.02d0 ! m
Zos == 0.02d0 ! m
! Height (m) of atmospheric measurements for Bulk fluxes parameterization.
BLK_ZQ == 10.0d0 ! air humidity
BLK_ZT == 10.0d0 ! air temperature
BLK_ZW == 10.0d0 ! winds
! Minimum depth for wetting and drying.
DCRIT == 0.10d0 ! m
! Various parameters.
WTYPE == 1
LEVSFRC == 22
LEVBFRC == 1
! Set vertical, terrain-following coordinates transformation equation and
! stretching function (see below for details), [1:Ngrids].
Vtransform == 1 ! transformation equation
Vstretching == 1 ! stretching function
! Vertical S-coordinates parameters (see below for details), [1:Ngrids].
THETA_S == 4.0d0 ! surface stretching parameter
THETA_B == 0.90d0 ! bottom stretching parameter
TCLINE == 200.0d0 ! critical depth (m)
! Mean Density and Brunt-Vaisala frequency.
RHO0 = 1025.0d0 ! kg/m3
BVF_BAK = 1.0d-5 ! 1/s2
! Time-stamp assigned for model initialization, reference time
! origin for tidal forcing, and model reference time for output
! NetCDF units attribute.
DSTART = 0.0d0 ! days
TIDE_START = 0.0d0 ! days
TIME_REF = 0.0d0 ! yyyymmdd.dd
! Nudging/relaxation time scales, inverse scales will be computed
! internally, [1:Ngrids].
TNUDG == 5*365.0d0 ! days
ZNUDG == 0.0d0 ! days
M2NUDG == 365.0d0 ! days
M3NUDG == 0.0d0 ! days
! Factor between passive (outflow) and active (inflow) open boundary
! conditions, [1:Ngrids]. If OBCFAC > 1, nudging on inflow is stronger
! than on outflow (recommended).
OBCFAC == 30.0d0 ! nondimensional
! Linear equation of State parameters:
R0 == 1027.0d0 ! kg/m3
T0 == 14.0d0 ! Celsius
S0 == 35.0d0 ! PSU
TCOEF == 1.7d-4 ! 1/Celsius
SCOEF == 7.6d-4 ! 1/PSU
! Slipperiness parameter: 1.0 (free slip) or -1.0 (no slip)
GAMMA2 == 1.0d0
! Logical switches (TRUE/FALSE) to specify which variables to consider on
! tracers point Sources/Sinks (like river runoff): [1:NAT+NPT,Ngrids].
! See glossary below for details.
LtracerSrc == T T T T T ! temperature, salinity, inert
! Starting (DstrS) and ending (DendS) day for adjoint sensitivity forcing.
! DstrS must be less or equal to DendS. If both values are zero, their
! values are reset internally to the full range of the adjoint integration.
DstrS == 0.0d0 ! starting day
DendS == 0.0d0 ! ending day
! Starting and ending vertical levels of the 3D adjoint state variables
! whose sensitivity is required.
KstrS == 1 ! starting level
KendS == 1 ! ending level
! Logical switches (TRUE/FALSE) to specify the adjoint state variables
! whose sensitivity is required.
Lstate(isFsur) == F ! free-surface
Lstate(isUbar) == F ! 2D U-momentum
Lstate(isVbar) == F ! 2D V-momentum
Lstate(isUvel) == F ! 3D U-momentum
Lstate(isVvel) == F ! 3D V-momentum
Lstate(isTvar) == F F ! NT tracers
! Logical switches (TRUE/FALSE) to specify the state variables for
! which Forcing Singular Vectors or Stochastic Optimals is required.
Fstate(isFsur) == F ! free-surface
Fstate(isUbar) == F ! 2D U-momentum
Fstate(isVbar) == F ! 2D V-momentum
Fstate(isUvel) == F ! 3D U-momentum
Fstate(isVvel) == F ! 3D V-momentum
Fstate(isTvar) == F F ! NT tracers
Fstate(isUstr) == T ! surface U-stress
Fstate(isVstr) == T ! surface V-stress
Fstate(isTsur) == F F ! NT surface tracers flux
! Stochastic optimals time decorrelation scale (days) assumed for
! red noise processes.
SO_decay == 2.0d0 ! days
! Stochastic Optimals surface forcing standard deviation for
! dimensionalization. (Next 6 lines NEW)
SO_sdev(isFsur) == 1.0d0 ! free-surface
SO_sdev(isUbar) == 1.0d0 ! 2D U-momentum
SO_sdev(isVbar) == 1.0d0 ! 2D V-momentum
SO_sdev(isUvel) == 1.0d0 ! 3D U-momentum
SO_sdev(isVvel) == 1.0d0 ! 3D V-momentum
SO_sdev(isTvar) == 1.0d0 1.0d0 ! NT tracers
SO_sdev(isUstr) == 1.0d0 ! surface u-stress
SO_sdev(isVstr) == 1.0d0 ! surface v-stress
SO_sdev(isTsur) == 1.0d0 1.0d0 ! NT surface tracer flux
! Logical switches (TRUE/FALSE) to activate writing of fields into
! HISTORY output file.
Hout(idUvel) == T ! 3D U-velocity
Hout(idVvel) == T ! 3D V-velocity
Hout(idu3dE) == F ! u_eastward 3D U-eastward at RHO-points
Hout(idv3dN) == F ! v_northward 3D V-northward at RHO-points
Hout(idWvel) == T ! 3D W-velocity
Hout(idOvel) == T ! omega vertical velocity
Hout(idUbar) == T ! 2D U-velocity
Hout(idVbar) == T ! 2D V-velocity
Hout(idu2dE) == F ! ubar_eastward 2D U-eastward at RHO-points
Hout(idv2dN) == F ! vbar_northward 2D V-northward at RHO-points
Hout(idFsur) == T ! free-surface
Hout(idBath) == F ! time-dependent bathymetry
Hout(idTvar) == T T ! temperature and salinity
Hout(idPair) == F !Pair ! surface air pressure
Hout(idUair) == F ! surface U-wind
Hour(idVair) == F ! surface V-wind
Hout(idUsms) == F ! surface U-stress
Hout(idVsms) == F ! surface V-stress
Hout(idUbms) == F ! bottom U-stress
Hout(idVbms) == F ! bottom V-stress
Hout(idUairE)== F
Hout(idVairN)== F
Hout(idUbrs) == F ! bottom U-current stress
Hout(idVbrs) == F ! bottom V-current stress
Hout(idUbws) == F ! bottom U-wave stress
Hout(idVbws) == F ! bottom V-wave stress
Hout(idUbcs) == F ! bottom max wave-current U-stress
Hout(idVbcs) == F ! bottom max wave-current V-stress
Hout(idUbot) == F ! bed wave orbital U-velocity
Hout(idVbot) == F ! bed wave orbital V-velocity
Hout(idUbur) == F ! bottom U-velocity above bed
Hout(idVbvr) == F ! bottom V-velocity above bed
Hout(idW2xx) == F ! 2D radiation stress, Sxx component
Hout(idW2xy) == F ! 2D radiation stress, Sxy component
Hout(idW2yy) == F ! 2D radiation stress, Syy component
Hout(idU2rs) == F ! 2D radiation U-stress
Hout(idV2rs) == F ! 2D radiation V-stress
Hout(idU2Sd) == F ! 2D U-Stokes velocity
Hout(idV2Sd) == F ! 2D V-Stokes velocity
Hout(idW3xx) == F ! 3D radiation stress, Sxx component
Hout(idW3xy) == F ! 3D radiation stress, Sxy component
Hout(idW3yy) == F ! 3D radiation stress, Syy component
Hout(idW3zx) == F ! 3D radiation stress, Szx component
Hout(idW3zy) == F ! 3D radiation stress, Szy component
Hout(idU3rs) == F ! 3D U-radiation stress
Hout(idV3rs) == F ! 3D V-radiation stress
Hout(idU3Sd) == F ! 3D U-Stokes velocity
Hout(idV3Sd) == F ! 3D V-Stokes velocity
Hout(idWamp) == F ! wave height
Hout(idWlen) == F ! wave length
Hout(idWdir) == F ! wave direction
Hout(idWptp) == F ! wave surface period
Hout(idWpbt) == F ! wave bottom period
Hout(idWorb) == F ! wave bottom orbital velocity
Hout(idWdis) == F ! wave dissipation
Hout(idTsur) == T T ! surface net heat and salt flux
Hout(idLhea) == F ! latent heat flux
Hout(idShea) == F ! sensible heat flux
Hout(idLrad) == F ! longwave radiation flux
Hout(idSrad) == F ! shortwave radiation flux
Hout(idEmPf) == T ! E-P flux
Hout(idevap) == F ! evaporation rate
Hout(idrain) == F ! precipitation rate
Hout(idDano) == T ! density anomaly
Hout(idSSSf) == F ! surface salinity flux correction
Hout(idVvis) == T ! vertical viscosity
Hout(idTdif) == T ! vertical T-diffusion
Hout(idSdif) == T ! vertical Salinity diffusion
Hout(idHsbl) == F ! depth of surface boundary layer
Hout(idHbbl) == F ! depth of bottom boundary layer
Hout(idMtke) == F ! turbulent kinetic energy
Hout(idMtls) == F ! turbulent length scale
! Logical switches (TRUE/FALSE) to activate writing of extra inert passive
! tracers other than biological and sediment tracers. An inert passive tracer
! is one that it is only advected and diffused. Other processes are ignored.
! These tracers include, for example, dyes, pollutants, oil spills, etc.
! NPT values are expected. However, these switches can be activated using
! compact parameter specification.
Hout(inert) == T T T ! inert passive tracers
! Logical switches (TRUE/FALSE) to activate writing of exposed sediment
! layer properties into HISTORY output file. Currently, MBOTP properties
! are expected for the bottom boundary layer and/or sediment models:
!
! Hout(idBott(isd50)), isd50 = 1 ! mean grain diameter
! Hout(idBott(idens)), idens = 2 ! mean grain density
! Hout(idBott(iwsed)), iwsed = 3 ! mean settling velocity
! Hout(idBott(itauc)), itauc = 4 ! critical erosion stress
! Hout(idBott(irlen)), irlen = 5 ! ripple length
! Hout(idBott(irhgt)), irhgt = 6 ! ripple height
! Hout(idBott(ibwav)), ibwav = 7 ! wave excursion amplitude
! Hout(idBott(izdef)), izdef = 8 ! default bottom roughness
! Hout(idBott(izapp)), izapp = 9 ! apparent bottom roughness
! Hout(idBott(izNik)), izNik = 10 ! Nikuradse bottom roughness
! Hout(idBott(izbio)), izbio = 11 ! biological bottom roughness
! Hout(idBott(izbfm)), izbfm = 12 ! bed form bottom roughness
! Hout(idBott(izbld)), izbld = 13 ! bed load bottom roughness
! Hout(idBott(izwbl)), izwbl = 14 ! wave bottom roughness
! Hout(idBott(iactv)), iactv = 15 ! active layer thickness
! Hout(idBott(ishgt)), ishgt = 16 ! saltation height
!
! 1 1 1 1 1 1 1
! 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
Hout(idBott) == T T T T T T T T T F F F F F F F
!MARKER TWO - Add in Average/Diag file logical switches
! Logical switches (TRUE/FALSE) to activate writing of time-averaged
! fields into AVERAGE output file.
Aout(idUvel) == T ! u 3D U-velocity
Aout(idVvel) == T ! v 3D V-velocity
Aout(idu3dE) == F ! u_eastward 3D U-eastward at RHO-points
Aout(idv3dN) == F ! v_northward 3D V-northward at RHO-points
Aout(idWvel) == T ! w 3D W-velocity
Aout(idOvel) == T ! omega omega vertical velocity
Aout(idUbar) == T ! ubar 2D U-velocity
Aout(idVbar) == T ! vbar 2D V-velocity
Aout(idu2dE) == F ! ubar_eastward 2D U-eastward at RHO-points
Aout(idv2dN) == F ! vbar_northward 2D V-northward at RHO-points
Aout(idFsur) == T ! zeta free-surface
Aout(idTvar) == T T ! temp, salt temperature and salinity
Aout(idPair) == F
Aout(idUair) == F
Aout(idVair) == F
Aout(idUsms) == F ! sustr surface U-stress
Aout(idVsms) == F ! svstr surface V-stress
Aout(idUbms) == F ! bustr bottom U-stress
Aout(idVbms) == F ! bvstr bottom V-stress
Aout(idUairE)== F
Aout(idVairN)== F
Aout(idW2xx) == F ! Sxx_bar 2D radiation stress, Sxx component
Aout(idW2xy) == F ! Sxy_bar 2D radiation stress, Sxy component
Aout(idW2yy) == F ! Syy_bar 2D radiation stress, Syy component
Aout(idU2rs) == F ! Ubar_Rstress 2D radiation U-stress
Aout(idV2rs) == F ! Vbar_Rstress 2D radiation V-stress
Aout(idU2Sd) == F ! ubar_stokes 2D U-Stokes velocity
Aout(idV2Sd) == F ! vbar_stokes 2D V-Stokes velocity
Aout(idW3xx) == F ! Sxx 3D radiation stress, Sxx component
Aout(idW3xy) == F ! Sxy 3D radiation stress, Sxy component
Aout(idW3yy) == F ! Syy 3D radiation stress, Syy component
Aout(idW3zx) == F ! Szx 3D radiation stress, Szx component
Aout(idW3zy) == F ! Szy 3D radiation stress, Szy component
Aout(idU3rs) == F ! u_Rstress 3D U-radiation stress
Aout(idV3rs) == F ! v_Rstress 3D V-radiation stress
Aout(idU3Sd) == F ! u_stokes 3D U-Stokes velocity
Aout(idV3Sd) == F ! v_stokes 3D V-Stokes velocity
Aout(idPair) == F ! Pair surface air pressure
Aout(idUair) == F ! Uair surface U-wind component
Aout(idVair) == F ! Vair surface V-wind component
Aout(idTsur) == T T ! shflux, ssflux surface net heat and salt flux
Aout(idLhea) == F ! latent latent heat flux
Aout(idShea) == F ! sensible sensible heat flux
Aout(idLrad) == F ! lwrad longwave radiation flux
Aout(idSrad) == F ! swrad shortwave radiation flux
Aout(idevap) == F ! evaporation evaporation rate
Aout(idrain) == F ! rain precipitation rate
Aout(idDano) == T ! rho density anomaly
Aout(idSSSf) == F
Aout(idVvis) == T ! AKv vertical viscosity
Aout(idTdif) == T ! AKt vertical T-diffusion
Aout(idSdif) == T ! AKs vertical Salinity diffusion
Aout(idHsbl) == F ! Hsbl depth of surface boundary layer
Aout(idHbbl) == F ! Hbbl depth of bottom boundary layer
Aout(id2dRV) == F ! pvorticity_bar 2D relative vorticity
Aout(id3dRV) == F ! pvorticity 3D relative vorticity
Aout(id2dPV) == F ! rvorticity_bar 2D potential vorticity
Aout(id3dPV) == F ! rvorticity 3D potential vorticity
Aout(idu3dD) == F ! u_detided detided 3D U-velocity
Aout(idv3dD) == F ! v_detided detided 3D V-velocity
Aout(idu2dD) == F ! ubar_detided detided 2D U-velocity
Aout(idv2dD) == F ! vbar_detided detided 2D V-velocity
Aout(idFsuD) == F ! zeta_detided detided free-surface
Aout(idTrcD) == F F ! temp_detided, ... detided temperature and salinity
Aout(idHUav) == F ! Huon u-volume flux, Huon
Aout(idHVav) == F ! Hvom v-volume flux, Hvom
Aout(idUUav) == F ! uu quadratic <u*u> term
Aout(idUVav) == F ! uv quadratic <u*v> term
Aout(idVVav) == F ! vv quadratic <v*v> term
Aout(idU2av) == F ! ubar2 quadratic <ubar*ubar> term
Aout(idV2av) == F ! vbar2 quadratic <vbar*vbar> term
Aout(idZZav) == F ! zeta2 quadratic <zeta*zeta> term
Aout(idTTav) == F F ! temp2, salt2 quadratic <t*t> T/S terms
Aout(idUTav) == F F ! utemp, usalt quadratic <u*t> T/S terms
Aout(idVTav) == F F ! vtemp, vsalt quadratic <v*t> T/S terms
Aout(iHUTav) == F F ! Huontemp, ... T/S volume flux, <Huon*t>
Aout(iHVTav) == F F ! Hvomtemp, ... T/S volume flux, <Hvom*t>
! Logical switches (TRUE/FALSE) to activate writing of extra inert passive
! tracers other than biological and sediment tracers into the AVERAGE file.
Aout(inert) == T T T ! dye_01, ... inert passive tracers
! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! 2D momentum (ubar,vbar) diagnostic terms into DIAGNOSTIC output file.
Dout(M2rate) == T ! ubar_accel, ... acceleration
Dout(M2pgrd) == T ! ubar_prsgrd, ... pressure gradient
Dout(M2fcor) == T ! ubar_cor, ... Coriolis force
Dout(M2hadv) == T ! ubar_hadv, ... horizontal total advection
Dout(M2xadv) == T ! ubar_xadv, ... horizontal XI-advection
Dout(M2yadv) == T ! ubar_yadv, ... horizontal ETA-advection
Dout(M2hrad) == T ! ubar_hrad, ... horizontal total radiation stress
Dout(M2hvis) == T ! ubar_hvisc, ... horizontal total viscosity
Dout(M2xvis) == T ! ubar_xvisc, ... horizontal XI-viscosity
Dout(M2yvis) == T ! ubar_yvisc, ... horizontal ETA-viscosity
Dout(M2sstr) == T ! ubar_sstr, ... surface stress
Dout(M2bstr) == T ! ubar_bstr, ... bottom stress
! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! 3D momentum (u,v) diagnostic terms into DIAGNOSTIC output file.
Dout(M3rate) == T ! u_accel, ... acceleration
Dout(M3pgrd) == T ! u_prsgrd, ... pressure gradient
Dout(M3fcor) == T ! u_cor, ... Coriolis force
Dout(M3hadv) == T ! u_hadv, ... horizontal total advection
Dout(M3xadv) == T ! u_xadv, ... horizontal XI-advection
Dout(M3yadv) == T ! u_yadv, ... horizontal ETA-advection
Dout(M3vadv) == T ! u_vadv, ... vertical advection
Dout(M3hrad) == T ! u_hrad, ... horizontal total radiation stress
Dout(M3vrad) == T ! u_vrad, ... vertical radiation stress
Dout(M3hvis) == T ! u_hvisc, ... horizontal total viscosity
Dout(M3xvis) == T ! u_xvisc, ... horizontal XI-viscosity
Dout(M3yvis) == T ! u_yvisc, ... horizontal ETA-viscosity
Dout(M3vvis) == T ! u_vvisc, ... vertical viscosity
! Logical switches (TRUE/FALSE) to activate writing of time-averaged,
! active (temperature and salinity) and passive (inert) tracer diagnostic
! terms into DIAGNOSTIC output file: [1:NAT+NPT,Ngrids].
Dout(iTrate) == T T ! temp_rate, ... time rate of change
Dout(iThadv) == T T ! temp_hadv, ... horizontal total advection
Dout(iTxadv) == T T ! temp_xadv, ... horizontal XI-advection
Dout(iTyadv) == T T ! temp_yadv, ... horizontal ETA-advection
Dout(iTvadv) == T T ! temp_vadv, ... vertical advection
Dout(iThdif) == T T ! temp_hdiff, ... horizontal total diffusion
Dout(iTxdif) == T T ! temp_xdiff, ... horizontal XI-diffusion
Dout(iTydif) == T T ! temp_ydiff, ... horizontal ETA-diffusion
Dout(iTsdif) == T T ! temp_sdiff, ... horizontal S-diffusion
Dout(iTvdif) == T T ! temp_vdiff, ... vertical diffusion
!END MARKER TWO
! Generic User parameters, [1:NUSER].
NUSER = 0
USER = 0.d0
! NetCDF-4/HDF5 compression parameters for output files.
NC_SHUFFLE = 1 ! if non-zero, turn on shuffle filter
NC_DEFLATE = 1 ! if non-zero, turn on deflate filter
NC_DLEVEL = 1 ! deflate level [0-9]
! Input NetCDF file names, [1:Ngrids].
GRDNAME == /scratch-lustre/scumb002/Forcing/ross_grd.ishelf.davey.r36.5km.nc
ININAME == /scratch-lustre/scumb002/Forcing/ross_rst.088.cdw.yr6.3dye.5km.nc
ITLNAME == ocean_itl.nc
IRPNAME == ocean_irp.nc
IADNAME == ocean_iad.nc
FWDNAME == ocean_fwd.nc
ADSNAME == ocean_ads.nc
! Input lateral boundary and climatology file names. The USER has the
! option to enter several files names per each nested grid. For example,
! the USER may have a different files for velocity, ice, etc.
! The model will scan the file list and will read the needed data
! from the first file in the list containing the boundary field. Therefore,
! the order of the file names is very important. If multiple boundary
! files per grid, enter first all the file names for grid 1, then grid 2,
! and so on. Use a single line per entry with a continuation (\) symbol
! at the each entry, except the last one.
! The USER has the option to split input data time records into several
! NetCDF files (see prologue instructions above). If so, use a single
! line per entry with a vertical bar (|) symbol after each entry,
! except the last one.
NCLMFILES == 1 ! number of climate files
CLMNAME == /scratch-lustre/scumb002/Forcing/ross_clm.ishelf.davey.3dye.r36.5km.nc
NBCFILES == 1 ! number of boundary files
BRYNAME == /scratch-lustre/scumb002/Forcing/ross_boundary.davey.3dye.r36.1012.5km.nc
! Input forcing NetCDF file name(s). The USER has the option to enter
! several file names for each nested grid. For example, the USER may
! have different files for wind products, heat fluxes, rivers, tides,
! etc. The model will scan the file list and will read the needed data
! from the first file in the list containing the forcing field. Therefore,
! the order of the file names is very important. If using multiple forcing
! files per grid, first enter all the file names for grid 1, then grid 2,
! and so on. Use a single line per entry with a continuation (\) symbol
! at the each entry, except the last one.
NFFILES == 1 ! number of forcing files
FRCNAME == /scratch-lustre/scumb002/Forcing/ross_forcing.ishelf.eraint.ice.1012.5km.nc
! Output NetCDF file names, [1:Ngrids].
GSTNAME == ross_gst.nc
RSTNAME == /scratch-lustre/scumb002/Output/065/ross_rst.nc
HISNAME == /scratch-lustre/scumb002/Output/065/ross_his.nc
TLMNAME == ross_tlm.nc
TLFNAME == ross_tlf.nc
ADJNAME == ross_adj.nc
AVGNAME == /scratch-lustre/scumb002/Output/065/ross_avg.nc
DIANAME == /scratch-lustre/scumb002/Output/065/ross_dia.nc
STANAME == /scratch-lustre/scumb002/Output/065/ross_sta_065.nc
FLTNAME == ross_flt.nc
! Input ASCII parameter filenames.
APARNAM = ROMS/External/s4dvar.in
SPOSNAM = Apps/ROSS/stations.ROSS.in
FPOSNAM = ROMS/External/floats.in
IPARNAM = Apps/ROSS/ice.in
BPARNAM = ROMS/External/bio_Fennel.in
SPARNAM = ROMS/External/sediment.in
USRNAME = ROMS/External/MyFile.dat
!
! GLOSSARY:
! =========
!
!------------------------------------------------------------------------------
! Application tile (string with a maximum of eighty characters) and
! C-preprocessing flag.
!------------------------------------------------------------------------------
!
! TITLE Application title.
!
! MyAppCPP Application C-preprocessing option.
!
!------------------------------------------------------------------------------
! Variable information file name (string with a maximum of eighty characters).
!------------------------------------------------------------------------------
!
! VARNAME Input/Output variable information file name. This file needs to
! be processed first so all information arrays and indices can be
! initialized properly in "mod_ncparam.F".
!
!------------------------------------------------------------------------------
! Grid dimension parameters.
!------------------------------------------------------------------------------
!
! These parameters are very important since they determine the grid of the
! application to solve. They need to be read first in order to dynamically
! allocate all model variables.
!
! WARNING: It is trivial and possible to change these dimension parameters in
! ------- idealized applications via analytical expressions. However, in
! realistic applications any change to these parameters requires redoing all
! input NetCDF files.
!
! Lm Number of INTERIOR grid RHO-points in the XI-direction for
! each nested grid, [1:Ngrids]. If using NetCDF files as
! input, Lm=xi_rho-2 where "xi_rho" is the NetCDF file
! dimension of RHO-points. Recall that all RHO-point
! variables have a computational I-range of [0:Lm+1].
!
! Mm Number of INTERIOR grid RHO-points in the ETA-direction for
! each nested grid, [1:Ngrids]. If using NetCDF files as
! input, Mm=eta_rho-2 where "eta_rho" is the NetCDF file
! dimension of RHO-points. Recall that all RHO-point
! variables have a computational J-range of [0:Mm+1].
!
! N Number of vertical terrain-following levels at RHO-points,
! [1:Ngrids].
!
! Nbed Number of sediment bed layers, [1:Ngrids]. This parameter
! is only relevant if CPP option SEDIMENT is activated.
!
! Mm+1 ___________________ _______ Kw = N
! | | | |
! Mm | _____________ | | | Kr = N
! | | | | |_______|
! | | | | | |
! Jr | | | | | |
! | | | | |_______|
! | | | | | |
! 1 | |_____________| | | |
! | | |_______|
! 0 |___________________| | |
! Ir | | 1
! 0 1 Lm Lm+1 h(i,j) |_______|
! ::::::::: 0
! :::::::::
! ::::::::: Nbed-1
! ::::::::: Nbed
!
! NAT Number of active tracer type variables. Usually, NAT=2 for
! potential temperature and salinity.
!
! NPT Number of inert (dyes, age, etc) passive tracer type variables
! to advect and diffuse only. This parameter is only relevant
! if CPP option T_PASSIVE is activated.
!
! NCS Number of cohesive (mud) sediment tracer type variables. This
! parameter is only relevant if CPP option SEDIMENT is
! activated.
!
! NNS Number of non-cohesive (sand) sediment tracer type variables.
! This parameter is only relevant if CPP option SEDIMENT is
! activated.
!
! The total number of sediment tracers is NST=NCS+NNS. Notice
! that NST must be greater than zero (NST>0).
!
!------------------------------------------------------------------------------
! Domain tile partition parameters.
!------------------------------------------------------------------------------
!
! Model tile decomposition parameters for serial and parallel configurations
! which are used to determine tile horizontal range indices (Istr,Iend) and
! (Jstr,Jend). In some computers, it is advantageous to have tile partitions
! in serial applications.
!
! NtileI Number of domain partitions in the I-direction (XI-coordinate).
! It must be equal to or greater than one.
!
! NtileJ Number of domain partitions in the J-direction (ETA-coordinate).
! It must be equal to or greater than one.
!
! WARNING: In shared-memory (OpenMP), the product of NtileI and NtileJ must
! be a MULTIPLE of the number of parallel threads specified with
! the OpenMP environmental variable OMP_NUM_THREADS.
!
! In distributed-memory (MPI), the product of NtileI and NtileJ
! must be EQUAL to the number of parallel nodes specified during
! execution with the "mprun" or "mpirun" command.
!
!------------------------------------------------------------------------------
! Time-Stepping parameters.
!------------------------------------------------------------------------------
!
! NTIMES Total number time-steps in current run. If 3D configuration,
! NTIMES is the total of baroclinic time-steps. If only 2D
! configuration, NTIMES is the total of barotropic time-steps.
!
! DT Time-Step size in seconds. If 3D configuration, DT is the
! size of the baroclinic time-step. If only 2D configuration,
! DT is the size of the barotropic time-step.
!
! NDTFAST Number of barotropic time-steps between each baroclinic time
! step. If only 2D configuration, NDTFAST should be unity since
! there is no need to split time-stepping.
!
!------------------------------------------------------------------------------
! Model iteration loops parameters.
!------------------------------------------------------------------------------
!
! ERstr Starting ensemble run (perturbation or iteration) number.
!
! ERend Ending ensemble run (perturbation or iteration) number.
!
! Nouter Maximum number of 4DVAR outer loop iterations.
!
! Ninner Maximum number of 4DVAR inner loop iterations.
!
! Nintervals Number of time interval divisions for stochastic optimals
! computations. It must be a multiple of NTIMES. The tangent
! linear model (TLM) and the adjoint model (ADM) are integrated
! forward and backward at different intervals. For example,
! if Nintervals=3,
!
! 1 NTIMES/3 2*NTIMES/3 NTIMES
! +..................+..................+..................+
! <========================================================> (1)
! <=====================================> (2)
! <==================> (3)
!
! In the first iteration (1), the TLM is integrated forward from
! 1 to NTIMES and the ADM is integrated backward from NTIMES to 1.
! In the second iteration (2), the TLM is integrated forward from
! NTIMES/3 to NTIMES and the ADM is integrated backward from
! NTIMES to NTIMES/3. And so on.
!
!------------------------------------------------------------------------------
! Eigenproblem parameters.
!------------------------------------------------------------------------------
!
! NEV Number of eigenvalues to compute for the Lanczos/Arnoldi
! problem. Notice that the model memory requirement increases
! substantially as NEV increases. The GST requires NEV+1
! copies of the model state vector. The memory requirements
! are decreased in distributed-memory applications.
!
! NCV Number of eigenvectors to compute for the Lanczos/Arnoldi
! problem. NCV must be greater than NEV.
!
! At present, there is no a-priori analysis to guide the selection of NCV
! relative to NEV. The only formal requirement is that NCV > NEV. However
! in optimal perturbations, it is recommended to have NCV greater than or
! equal to 2*NEV. In Finite Time Eigenmodes (FTE) and Adjoint Finite Time
! Eigenmodes (AFTE) the requirement is to have NCV greater than or equal to
! 2*NEV+1.
!
! The efficiency of calculations depends critically on the combination of
! NEV and NCV. If NEV is large (greater than 10 say), you can use NCV=2*NEV+1
! but for NEV small (less than 6) it will be inefficient to use NCV=2*NEV+1.
! In complicated applications, you can start with NEV=2 and NCV=10. Otherwise,
! it will iterate for a very long time.
!
!------------------------------------------------------------------------------
! Input/Output parameters.
!------------------------------------------------------------------------------
!
! NRREC Switch to indicate re-start from a previous solution. Use
! NRREC=0 for new solutions. In a re-start solution, NRREC
! is the time index of the re-start NetCDF file assigned for
! initialization. If NRREC is negative (say NRREC=-1), the
! model will re-start from the most recent time record. That
! is, the initialization record is assigned internally.
! Notice that it is also possible to re-start from a history
! or time-averaged NetCDF file. If a history file is used
! for re-start, it must contains all the necessary primitive
! variables at all levels.
!
! LcycleRST Logical switch (T/F) used to recycle time records in output
! re-start file. If TRUE, only the latest two re-start time
! records are maintained. If FALSE, all re-start fields are
! saved every NRST time-steps without recycling. The re-start
! fields are written at all levels in double precision.
!
! NRST Number of time-steps between writing of re-start fields.
!
! NSTA Number of time-steps between writing data into stations file.
! Station data is written at all levels.
!
! NFLT Number of time-steps between writing data into floats file.
!
! NINFO Number of time-steps between print of single line information
! to standard output. It also determines the interval between
! computation of global energy diagnostics.
!
!------------------------------------------------------------------------------
! Output history and average files parameters.
!------------------------------------------------------------------------------
!
! LDEFOUT Logical switch (T/F) used to create new output files when