-
Notifications
You must be signed in to change notification settings - Fork 121
/
Copy pathconfig_defaults.yaml
2636 lines (2578 loc) · 103 KB
/
config_defaults.yaml
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
#----------------------------
# Test description
#----------------------------
metadata:
description: >-
Default configuration for an experiment. The valid values for most of the
parameters are specified in valid_param_vals.yaml
version: !!str '1.0'
#----------------------------
# USER config parameters
#----------------------------
user:
#
#-----------------------------------------------------------------------
#
# Set the RUN_ENVIR variable that is listed and described in the WCOSS
# Implementation Standards document:
#
# NCEP Central Operations
# WCOSS Implementation Standards
# April 19, 2022
# Version 11.0.0
#
# RUN_ENVIR is described in this document as follows:
#
# Set to "nco" if running in NCO's production environment. Used to
# distinguish between organizations.
#
# Valid values are "nco" and "community". Here, we use it to generate
# and run the experiment either in NCO mode (if RUN_ENVIR is set to "nco")
# or in community mode (if RUN_ENVIR is set to "community"). This has
# implications on the experiment variables that need to be set and the
# the directory structure used.
#
#-----------------------------------------------------------------------
#
RUN_ENVIR: "nco"
#
#-----------------------------------------------------------------------
#
# Set machine and queue parameters. Definitions:
#
# MACHINE:
# Machine on which the workflow will run. If you are NOT on a named,
# supported platform, and you want to use the Rocoto workflow manager,
# you will need set MACHINE: "linux" and WORKFLOW_MANAGER: "rocoto". This
# combination will assume a Slurm batch manager when generating the XML.
# Please see ush/valid_param_vals.yaml for a full list of supported
# platforms.
#
# ACCOUNT:
# The account under which to submit jobs to the queue.
#
#-----------------------------------------------------------------------
MACHINE: "BIG_COMPUTER"
ACCOUNT: ""
HOMEdir: '{{ user.HOMEdir }}'
USHdir: '{{ user.USHdir }}'
SCRIPTSdir: '{{ [HOMEdir, "scripts"]|path_join }}'
JOBSdir: '{{ [HOMEdir, "jobs"]|path_join }}'
SORCdir: '{{ [HOMEdir, "sorc"]|path_join }}'
PARMdir: '{{ [HOMEdir, "parm"]|path_join }}'
MODULESdir: '{{ [HOMEdir, "modulefiles"]|path_join }}'
EXECdir: '{{ [HOMEdir, workflow.EXEC_SUBDIR]|path_join }}'
VX_CONFIG_DIR: '{{ [HOMEdir, "parm"]|path_join }}'
METPLUS_CONF: '{{ [PARMdir, "metplus"]|path_join }}'
MET_CONFIG: '{{ [PARMdir, "met"]|path_join }}'
UFS_WTHR_MDL_DIR: '{{ user.UFS_WTHR_MDL_DIR }}'
ARL_NEXUS_DIR: '{{ [SORCdir, "arl_nexus"]|path_join }}'
#----------------------------
# PLATFORM config parameters
#-----------------------------
platform:
#
#-----------------------------------------------------------------------
#
# WORKFLOW_MANAGER:
# The workflow manager to use (e.g. rocoto). This is set to "none" by
# default, but if the machine name is set to a platform that supports
# rocoto, this will be overwritten and set to "rocoto". If set
# explicitly to rocoto along with the use of the MACHINE=linux target,
# the configuration layer assumes a Slurm batch manager when generating
# the XML. Valid options: "rocoto" or "none"
#
# NCORES_PER_NODE:
# The number of cores available per node on the compute platform, now
# configurable for all platforms.
#
# TASKTHROTTLE:
# The number of active tasks run simultaneously. For linux/mac setting this
# to 1 makes sense
#
# BUILD_MOD_FN:
# Name of alternative build module file to use if using an
# unsupported platform. Is set automatically for supported machines.
#
# WFLOW_MOD_FN:
# Name of alternative workflow module file to use if using an
# unsupported platform. Is set automatically for supported machines.
#
# BUILD_VER_FN:
# File name containing the version of the modules used for building the app.
# Currently, WCOSS2 only uses this file.
#
# RUN_VER_FN:
# File name containing the version of the modules used for running the app.
# Currently, WCOSS2 only uses this file.
#
# SCHED:
# The job scheduler to use (e.g. slurm). Set this to an empty string in
# order for the experiment generation script to set it depending on the
# machine.
#
# PARTITION_DEFAULT:
# If using the slurm job scheduler (i.e. if SCHED is set to "slurm"),
# the default partition to which to submit workflow tasks. If a task
# does not have a specific variable that specifies the partition to which
# it will be submitted (e.g. PARTITION_HPSS, PARTITION_FCST; see below),
# it will be submitted to the partition specified by this variable. If
# this is not set or is set to an empty string, it will be (re)set to a
# machine-dependent value. This is not used if SCHED is not set to
# "slurm".
#
# QUEUE_DEFAULT:
# The default queue or QOS (if using the slurm job scheduler, where QOS
# is Quality of Service) to which workflow tasks are submitted. If a
# task does not have a specific variable that specifies the queue to which
# it will be submitted (e.g. QUEUE_HPSS, QUEUE_FCST; see below), it will
# be submitted to the queue specified by this variable. If this is not
# set or is set to an empty string, it will be (re)set to a machine-
# dependent value.
#
# PARTITION_HPSS:
# If using the slurm job scheduler (i.e. if SCHED is set to "slurm"),
# the partition to which the tasks that get or create links to external
# model files [which are needed to generate initial conditions (ICs) and
# lateral boundary conditions (LBCs)] are submitted. If this is not set
# or is set to an empty string, it will be (re)set to a machine-dependent
# value. This is not used if SCHED is not set to "slurm".
#
# QUEUE_HPSS:
# The queue or QOS to which the tasks that get or create links to external
# model files [which are needed to generate initial conditions (ICs) and
# lateral boundary conditions (LBCs)] are submitted. If this is not set
# or is set to an empty string, it will be (re)set to a machine-dependent
# value.
#
# PARTITION_FCST:
# If using the slurm job scheduler (i.e. if SCHED is set to "slurm"),
# the partition to which the task that runs forecasts is submitted. If
# this is not set or set to an empty string, it will be (re)set to a
# machine-dependent value. This is not used if SCHED is not set to
# "slurm".
#
# QUEUE_FCST:
# The queue or QOS to which the task that runs a forecast is submitted.
# If this is not set or set to an empty string, it will be (re)set to a
# machine-dependent value.
#
# REMOVE_MEMORY:
# Boolean flag determining whether to remove the memory flag for the
# Rocoto XML. Some platforms are not configured to accept the memory
# flag, so must not be included at all in the XML.
#-----------------------------------------------------------------------
#
WORKFLOW_MANAGER: ""
NCORES_PER_NODE: ""
TASKTHROTTLE: 1000
BUILD_MOD_FN: 'build_{{ user.MACHINE|lower() }}_{{ workflow.COMPILER }}'
WFLOW_MOD_FN: 'wflow_{{ user.MACHINE|lower() }}'
BUILD_VER_FN: 'build.ver.{{ user.MACHINE|lower() }}'
RUN_VER_FN: 'run.ver.{{ user.MACHINE|lower() }}'
SCHED: ""
PARTITION_DEFAULT: ""
QUEUE_DEFAULT: ""
PARTITION_HPSS: ""
QUEUE_HPSS: ""
PARTITION_FCST: ""
QUEUE_FCST: ""
REMOVE_MEMORY: False
#
#-----------------------------------------------------------------------
#
# Set run commands for platforms without a workflow manager. These values
# will be ignored unless WORKFLOW_MANAGER: "none". Definitions:
#
# RUN_CMD_UTILS:
# The run command for pre-processing utilities (shave, orog, sfc_climo_gen,
# etc.) Can be left blank for smaller domains, in which case the executables
# will run without MPI.
#
# RUN_CMD_FCST:
# The run command for the model forecast step.
#
# RUN_CMD_POST:
# The run command for post-processing (UPP). Can be left blank for smaller
# domains, in which case UPP will run without MPI.
#
# RUN_CMD_PRDGEN:
# The run command for the product generation job.
#
# RUN_CMD_SERIAL:
# The run command for some serial jobs
#
# RUN_CMD_AQM:
# The run command for some AQM tasks.
#
# RUN_CMD_AQMLBC:
# The run command for the AQM_LBCS task.
#
#-----------------------------------------------------------------------
#
RUN_CMD_SERIAL: ""
RUN_CMD_UTILS: ""
RUN_CMD_FCST: ""
RUN_CMD_POST: ""
RUN_CMD_PRDGEN: ""
RUN_CMD_AQM: ""
RUN_CMD_AQMLBC: ""
#
#-----------------------------------------------------------------------
#
# Allows an extra parameter to be passed to SCHEDULER (SLURM/PBSPRO) via
# XML Native command
#
SCHED_NATIVE_CMD: ""
#
#-----------------------------------------------------------------------
#
# Set METplus parameters. Definitions:
#
# MET_INSTALL_DIR:
# Location to top-level directory of MET installation.
#
# MET_BIN_EXEC:
# Subdirectory containing MET binaries e.g. "bin"
#
# METPLUS_PATH:
# Location to top-level directory of METplus installation.
#
# MET_BIN_EXEC
# Name of subdirectory where METplus executables are installed.
#
# CCPA_OBS_DIR:
# User-specified location of top-level directory where CCPA hourly
# precipitation files used by METplus are located. This parameter
# needs to be set for both user-provided observations and for
# observations that are retrieved from the NOAA HPSS (if the user has
# access) via the get_obs_ccpa task (activated in workflow by
# including the parm/wflow/verify.yaml task set in the wflow config).
# In the case of pulling observations directly from NOAA HPSS, the
# data retrieved will be placed in this directory. Please note, this
# path must be defind as /full-path-to-obs/ccpa/proc. METplus is
# configured to verify 01-, 03-, 06-, and 24-h accumulated
# precipitation using hourly CCPA files.
# METplus configuration files require the use of predetermined
# directory structure and file names. Therefore, if the CCPA files are
# user provided, they need to follow the anticipated naming structure:
#
# {YYYYMMDD}/ccpa.t{HH}z.01h.hrap.conus.gb2,
#
# where YYYY is the 4-digit valid year, MM the 2-digit valid month, DD
# the 2-digit valid day of the month, and HH the 2-digit valid hour of
# the day. In addition, a caveat is noted for using hourly CCPA data.
# There is a problem with the valid time in the metadata for files
# valid from 19 - 00 UTC (or files under the '00' directory). The
# script to pull the CCPA data from the NOAA HPSS has an example of
# how to account for this as well as organizing the data into a more
# intuitive format: scripts/exregional_get_ccpa_files.sh. When a fix
# is provided, it will be accounted for in the
# exregional_get_ccpa_files.sh script.
#
# MRMS_OBS_DIR:
# User-specified location of top-level directory where MRMS composite
# reflectivity files used by METplus are located. This parameter
# needs to be set for both user-provided observations and for
# observations that are retrieved from the NOAA HPSS (if the user has
# access) via the get_obs_mrms task (activated in workflow by
# including the parm/wflow/verify.yaml task set in the wflow config).
# In the case of pulling observations directly from NOAA HPSS, the
# data retrieved will be placed in this directory. Please note, this
# path must be defind as /full-path-to-obs/mrms/proc.
# METplus configuration files require the use of predetermined
# directory structure and file names. Therefore, if the MRMS files are
# user provided, they need to follow the anticipated naming structure:
#
# {YYYYMMDD}/MergedReflectivityQCComposite_00.50_{YYYYMMDD}-{HH}{mm}{SS}.grib2,
#
# where YYYY is the 4-digit valid year, MM the 2-digit valid month, DD
# the 2-digit valid day of the month, HH the 2-digit valid hour of the
# day, mm the 2-digit valid minutes of the hour, and SS is the
# two-digit valid seconds of the hour. In addition, METplus is
# configured to look for a MRMS composite reflectivity file for the
# valid time of the forecast being verified; since MRMS composite
# reflectivity files do not always exactly match the valid time, a
# script, within the main script to retrieve MRMS data from the NOAA
# HPSS, is used to identify and rename the MRMS composite reflectivity
# file to match the valid time of the forecast. The script to pull
# the MRMS data from the NOAA HPSS has an example of the expected file
# naming structure: scripts/exregional_get_mrms_files.sh. This script
# calls the script used to identify the MRMS file closest to the valid
# time: ush/mrms_pull_topofhour.py.
#
# NDAS_OBS_DIR:
# User-specified location of top-level directory where NDAS prepbufr
# files used by METplus are located. This parameter needs to be set for
# both user-provided observations and for observations that are
# retrieved from the NOAA HPSS (if the user has access) via the
# get_obs_ndas task (activated in workflow by includeing the
# parm/wflow/verify.yaml task set in the wflow config).
# In the case of pulling observations directly from NOAA HPSS, the
# data retrieved will be placed in this directory. Please note, this
# path must be defind as /full-path-to-obs/ndas/proc. METplus is
# configured to verify near-surface variables hourly and upper-air
# variables at times valid at 00 and 12 UTC with NDAS prepbufr files.
# METplus configuration files require the use of predetermined file
# names. Therefore, if the NDAS files are user provided, they need to
# follow the anticipated naming structure:
#
# prepbufr.ndas.{YYYYMMDDHH},
#
# where YYYY is the 4-digit valid year, MM the 2-digit valid month, DD
# the 2-digit valid day of the month, and HH the 2-digit valid hour of
# the day. The script to pull the NDAS data from the NOAA HPSS has an
# example of how to rename the NDAS data into a more intuitive format
# with the valid time listed in the file name:
# scripts/exregional_get_ndas_files.sh
#
#-----------------------------------------------------------------------
#
MET_INSTALL_DIR: ""
MET_BIN_EXEC: ""
METPLUS_PATH: ""
CCPA_OBS_DIR: ""
MRMS_OBS_DIR: ""
NDAS_OBS_DIR: ""
#
#-----------------------------------------------------------------------
#
# DOMAIN_PREGEN_BASEDIR:
# The base directory containing pregenerated grid, orography, and surface
# climatology files. This is an alternative for setting GRID_DIR,
# OROG_DIR, and SFC_CLIMO_DIR individually
#
# For the pregenerated grid specified by PREDEF_GRID_NAME,
# these "fixed" files are located in:
#
# ${DOMAIN_PREGEN_BASEDIR}/${PREDEF_GRID_NAME}
#
# The workflow scripts will create a symlink in the experiment directory
# that will point to a subdirectory (having the name of the grid being
# used) under this directory. This variable should be set to a null
# string in this file, but it can be specified in the user-specified
# workflow configuration file (EXPT_CONFIG_FN).
#
#-----------------------------------------------------------------------
#
DOMAIN_PREGEN_BASEDIR: ""
#
#-----------------------------------------------------------------------
# Pre task commands such as "ulimit" needed by tasks
#-----------------------------------------------------------------------
#
PRE_TASK_CMDS: ""
#
#-----------------------------------------------------------------------
# Test directories used in run_WE2E script
#-----------------------------------------------------------------------
#
TEST_EXTRN_MDL_SOURCE_BASEDIR: ""
TEST_PREGEN_BASEDIR: ""
TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS: ""
TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS: ""
TEST_VX_FCST_INPUT_BASEDIR: ""
#
#-----------------------------------------------------------------------
#
# Set parameters associated with the fixed (i.e. static) files. Definitions:
#
# FIXgsm:
# System directory in which the majority of fixed (i.e. time-independent)
# files that are needed to run the FV3-LAM model are located
#
# FIXaer:
# System directory where MERRA2 aerosol climatology files are located
#
# FIXlut:
# System directory where the lookup tables for optics properties are located
#
# FIXorg:
# System directory where orography data is located
#
# FIXsfc:
# System directory where surface climatology data is located
#
# FIXgsi:
# System directory where GSI fixed files are located
#
# FIXcrtm:
# System directory where CRTM fixed files are located
#
# FIXcrtmupp:
# System directory where CRTM fixed files specifically for UPP are located
#
#-----------------------------------------------------------------------
#
FIXgsm: ""
FIXaer: ""
FIXlut: ""
FIXorg: ""
FIXsfc: ""
FIXshp: ""
FIXgsi: ""
FIXcrtm: ""
FIXcrtmupp: ""
#
#-----------------------------------------------------------------------
#
# EXTRN_MDL_DATA_STORES:
# A list of data stores where the scripts should look for external model
# data. The list is in priority order. If disk information is provided
# via USE_USER_STAGED_EXTRN_FILES or a known location on the platform,
# the disk location will be highest priority. Options are disk, hpss,
# aws, and nomads.
#
#-----------------------------------------------------------------------
#
EXTRN_MDL_DATA_STORES: ""
#
#-----------------------------------------------------------------------
#
# COMINgfs:
# Path to the real-time GFS data
#
# COMINgefs:
# Path to the real-time GEFS data
#
# COMINairnow:
# Path to the real-time AIRNOW observation data
#
#-----------------------------------------------------------------------
#
COMINgfs: ""
COMINgefs: ""
COMINairnow: "/path/to/real/time/airnow/data"
#
#-----------------------------------------------------------------------
#
# Setup default observation locations for data assimilation:
#
# OBSPATH_NSSLMOSIAC: location of NSSL radar reflectivity
#
# LIGHTNING_ROOT: location of lightning observations
#
#-----------------------------------------------------------------------
#
OBSPATH_NSSLMOSIAC: ""
LIGHTNING_ROOT: ""
#-----------------------------
# WORKFLOW config parameters
#-----------------------------
workflow:
#
#-----------------------------------------------------------------------
#
# Unique ID for workflow run that will be set in setup.py
#
#-----------------------------------------------------------------------
#
WORKFLOW_ID: !nowtimestamp ''
#
#-----------------------------------------------------------------------
#
# How to make links. Relative links by default. Empty string for
# absolute paths in links.
#
#-----------------------------------------------------------------------
#
RELATIVE_LINK_FLAG: "--relative"
#
#-----------------------------------------------------------------------
#
# Set cron-associated parameters. Definitions:
#
# USE_CRON_TO_RELAUNCH:
# Flag that determines whether or not to add a line to the user's cron
# table to call the experiment launch script every CRON_RELAUNCH_INTVL_MNTS
# minutes.
#
# CRON_RELAUNCH_INTVL_MNTS:
# The interval (in minutes) between successive calls of the experiment
# launch script by a cron job to (re)launch the experiment (so that the
# workflow for the experiment kicks off where it left off).
#
#-----------------------------------------------------------------------
#
USE_CRON_TO_RELAUNCH: false
CRON_RELAUNCH_INTVL_MNTS: 3
CRONTAB_LINE: ""
LOAD_MODULES_RUN_TASK_FP: '{{ [user.USHdir, "load_modules_run_task.sh"]|path_join }}'
#
#-----------------------------------------------------------------------
#
# Set directories. Definitions:
#
# EXPT_BASEDIR:
# The base directory in which the experiment directory will be created.
# If this is not specified or if it is set to an empty string, it will
# default to ${HOMEdir}/../expt_dirs. If set to a relative path, the
# path will be appended to the default value ${HOMEdir}/../expt_dirs
#
# EXPT_SUBDIR:
# The name that the experiment directory (without the full path) will
# have. The full path to the experiment directory, which will be contained
# in the variable EXPTDIR, will be:
#
# EXPTDIR: "${EXPT_BASEDIR}/${EXPT_SUBDIR}"
#
# This cannot be empty. If set to a null string here, it must be set to
# a (non-empty) value in the user-defined experiment configuration file.
#
# EXEC_SUBDIR:
# The name of the subdirectory of ufs-srweather-app where executables are
# installed.
#-----------------------------------------------------------------------
#
EXPT_BASEDIR: '' # This will be set in setup.py prior to extend_yaml() being called
EXPT_SUBDIR: '{{ EXPT_SUBDIR }}'
EXEC_SUBDIR: "exec"
EXPTDIR: '{{ [workflow.EXPT_BASEDIR, workflow.EXPT_SUBDIR]|path_join }}'
#
#-----------------------------------------------------------------------
#
# Set the separator character(s) to use in the names of the grid, mosaic,
# and orography fixed files.
#
# Ideally, the same separator should be used in the names of these fixed
# files as the surface climatology fixed files (which always use a "."
# as the separator), i.e. ideally, DOT_OR_USCORE should be set to "."
#
#-----------------------------------------------------------------------
#
DOT_OR_USCORE: "_"
#
#-----------------------------------------------------------------------
#
# Set file names. Definitions:
#
# EXPT_CONFIG_FN:
# Name of the user-specified configuration file for the forecast experiment.
#
# CONSTANTS_FN:
# Name of the file containing definitions of various mathematical, physical,
# and SRW App contants.
#
# RGNL_GRID_NML_FN:
# Name of file containing the namelist settings for the code that generates
# a "ESGgrid" type of regional grid.
#
# FV3_NML_BASE_SUITE_FN:
# Name of Fortran namelist file containing the forecast model's base suite
# namelist, i.e. the portion of the namelist that is common to all physics
# suites.
#
# FV3_NML_YAML_CONFIG_FN:
# Name of YAML configuration file containing the forecast model's namelist
# settings for various physics suites.
#
# FV3_NML_BASE_ENS_FN:
# Name of Fortran namelist file containing the forecast model's base
# ensemble namelist, i.e. the the namelist file that is the starting point
# from which the namelist files for each of the enesemble members are
# generated.
#
# FV3_EXEC_FN:
# Name to use for the forecast model executable when it is copied from
# the directory in which it is created in the build step to the executables
# directory (EXECDIR; this is set during experiment generation).
#
# DIAG_TABLE_TMPL_FN:
# Name of a template file that specifies the output fields of the
# forecast model (ufs-weather-model: diag_table) followed by the name
# of the ccpp_phys_suite. Its default value is the name of the file
# that the ufs weather model
# expects to read in.
#
# FIELD_TABLE_TMPL_FN:
# Name of a template file that specifies the tracers in IC/LBC files of the
# forecast model (ufs-weather-mode: field_table) followed by [dot_ccpp_phys_suite].
# Its default value is the name of the file that the ufs weather model expects
# to read in.
#
# MODEL_CONFIG_TMPL_FN:
# Name of a template file that contains settings and configurations for the
# NUOPC/ESMF main component (ufs-weather-model: model_config). Its default
# value is the name of the file that the ufs weather model expects to read in.
#
# NEMS_CONFIG_TMPL_FN:
# Name of a template file that contains information about the various NEMS
# components and their run sequence (ufs-weather-model: nems.configure).
# Its default value is the name of the file that the ufs weather model expects
# to read in.
#
# AQM_RC_TMPL_FN:
# Template file name of resource file for NOAA Air Quality Model (AQM)
#
# FCST_MODEL:
# Name of forecast model (default=ufs-weather-model)
#
# WFLOW_XML_FN:
# Name of the rocoto workflow XML file that the experiment generation
# script creates and that defines the workflow for the experiment.
#
# GLOBAL_VAR_DEFNS_FN:
# Name of file (a shell script) containing the defintions of the primary
# experiment variables (parameters) defined in this default configuration
# script and in the user-specified configuration as well as secondary
# experiment variables generated by the experiment generation script.
# This file is sourced by many scripts (e.g. the J-job scripts corresponding
# to each workflow task) in order to make all the experiment variables
# available in those scripts.
#
# ROCOTO_YAML_FN:
# Name of the YAML file containing the YAML workflow definition from
# which the Rocoto XML file is created.
#
# EXTRN_MDL_VAR_DEFNS_FN:
# Name of file (a shell script) containing the defintions of variables
# associated with the external model from which ICs or LBCs are generated. This
# file is created by the get_extrn_* task because the values of the variables
# it contains are not known before this task runs. The file is then sourced by
# the make_ics and make_lbcs tasks.
#
# WFLOW_LAUNCH_SCRIPT_FN:
# Name of the script that can be used to (re)launch the experiment's rocoto
# workflow.
#
# WFLOW_LAUNCH_LOG_FN:
# Name of the log file that contains the output from successive calls to
# the workflow launch script (WFLOW_LAUNCH_SCRIPT_FN).
#
#-----------------------------------------------------------------------
#
EXPT_CONFIG_FN: "config.yaml"
CONSTANTS_FN: "constants.yaml"
RGNL_GRID_NML_FN: "regional_grid.nml"
FV3_NML_FN: "input.nml"
FV3_NML_BASE_SUITE_FN: "{{ FV3_NML_FN }}.FV3"
FV3_NML_YAML_CONFIG_FN: "FV3.input.yml"
FV3_NML_BASE_ENS_FN: "{{ FV3_NML_FN }}.base_ens"
FV3_EXEC_FN: "ufs_model"
DATA_TABLE_FN: "data_table"
DIAG_TABLE_FN: "diag_table"
FIELD_TABLE_FN: "field_table"
DIAG_TABLE_TMPL_FN: 'diag_table.{{ CCPP_PHYS_SUITE }}'
FIELD_TABLE_TMPL_FN: 'field_table.{{ CCPP_PHYS_SUITE }}'
MODEL_CONFIG_FN: "model_configure"
NEMS_CONFIG_FN: "nems.configure"
AQM_RC_FN: "aqm.rc"
AQM_RC_TMPL_FN: "aqm.rc"
FV3_NML_BASE_SUITE_FP: '{{ [user.PARMdir, FV3_NML_BASE_SUITE_FN]|path_join }}'
FV3_NML_YAML_CONFIG_FP: '{{ [user.PARMdir, FV3_NML_YAML_CONFIG_FN]|path_join }}'
FV3_NML_BASE_ENS_FP: '{{ [EXPTDIR, FV3_NML_BASE_ENS_FN]|path_join }}'
DATA_TABLE_TMPL_FP: '{{ [user.PARMdir, DATA_TABLE_FN]|path_join }}'
DIAG_TABLE_TMPL_FP: '{{ [user.PARMdir, DIAG_TABLE_TMPL_FN]|path_join }}'
FIELD_TABLE_TMPL_FP: '{{ [user.PARMdir, FIELD_TABLE_TMPL_FN]|path_join }}'
MODEL_CONFIG_TMPL_FP: '{{ [user.PARMdir, MODEL_CONFIG_FN]|path_join }}'
NEMS_CONFIG_TMPL_FP: '{{ [user.PARMdir, NEMS_CONFIG_FN]|path_join }}'
AQM_RC_TMPL_FP: '{{ [user.PARMdir, AQM_RC_TMPL_FN]|path_join }}'
# These are staged in the exptdir at configuration time
DATA_TABLE_FP: '{{ [EXPTDIR, DATA_TABLE_FN]|path_join }}'
FIELD_TABLE_FP: '{{ [EXPTDIR, FIELD_TABLE_FN]|path_join }}'
NEMS_CONFIG_FP: '{{ [EXPTDIR, NEMS_CONFIG_FN]|path_join }}'
FV3_NML_FP: '{{ [EXPTDIR, FV3_NML_FN]|path_join }}'
FV3_NML_CYCSFC_FP: '{{ [EXPTDIR, [FV3_NML_FN, "_cycsfc"]|join ]|path_join }}'
FV3_NML_RESTART_FP: '{{ [EXPTDIR, [FV3_NML_FN, "_restart"]|join ]|path_join }}'
FV3_NML_STOCH_FP: '{{ [EXPTDIR, [FV3_NML_FN, "_stoch"]|join ]|path_join }}'
FV3_NML_RESTART_STOCH_FP: '{{ [EXPTDIR, [FV3_NML_FN, "_restart_stoch"]|join ]|path_join }}'
FCST_MODEL: "ufs-weather-model"
WFLOW_XML_FN: "FV3LAM_wflow.xml"
GLOBAL_VAR_DEFNS_FN: "var_defns.sh"
ROCOTO_YAML_FN: "rocoto_defns.yaml"
EXTRN_MDL_VAR_DEFNS_FN: "extrn_mdl_var_defns"
WFLOW_LAUNCH_SCRIPT_FN: "launch_FV3LAM_wflow.sh"
WFLOW_LAUNCH_LOG_FN: "log.launch_FV3LAM_wflow"
GLOBAL_VAR_DEFNS_FP: '{{ [EXPTDIR, GLOBAL_VAR_DEFNS_FN] |path_join }}'
ROCOTO_YAML_FP: '{{ [EXPTDIR, ROCOTO_YAML_FN] |path_join }}'
WFLOW_LAUNCH_SCRIPT_FP: '{{ [user.USHdir, WFLOW_LAUNCH_SCRIPT_FN] |path_join }}'
WFLOW_LAUNCH_LOG_FP: '{{ [EXPTDIR, WFLOW_LAUNCH_LOG_FN] |path_join }}'
#
#-----------------------------------------------------------------------
#
# Set the fix file paths
#
# FIXdir:
# Location where fix files will be stored for a given experiment
#
# FIXam:
# Directory containing the fixed files (or symlinks) for various fields on
# global grids (which are usually much coarser than the native FV3-LAM grid).
#
# FIXclim:
# Directory containing the MERRA2 aerosol climatology data file and
# lookup tables for optics properties
#
# FIXlam:
# Directory containing the fixed files (or symlinks) for the grid,
# orography, and surface climatology on the native FV3-LAM grid.
#
# THOMPSON_MP_CLIMO_FN and _FP:
# Name and path of file that contains aerosol climatology data. It can
# be used to generate approximate versions of the aerosol fields
# needed by Thompson microphysics. This file will be used to
# generate such approximate aerosol fields in the ICs and LBCs if
# Thompson MP is included in the physics suite and if the exteranl
# model for ICs or LBCs does not already provide these fields.
#
#-----------------------------------------------------------------------
#
FIXdir: '{{ EXPTDIR if rocoto.tasks.get("task_make_grid") else [user.HOMEdir, "fix"]|path_join }}'
FIXam: '{{ [FIXdir, "fix_am"]|path_join }}'
FIXclim: '{{ [FIXdir, "fix_clim"]|path_join }}'
FIXlam: '{{ [FIXdir, "fix_lam"]|path_join }}'
THOMPSON_MP_CLIMO_FN: "Thompson_MP_MONTHLY_CLIMO.nc"
THOMPSON_MP_CLIMO_FP: '{{ [FIXam, THOMPSON_MP_CLIMO_FN]|path_join }}'
#
#-----------------------------------------------------------------------
#
# Set CCPP-associated parameters. Definitions:
#
# CCPP_PHYS_SUITE:
# The physics suite that will run using CCPP (Common Community Physics
# Package). The choice of physics suite determines the forecast model's
# namelist file, the diagnostics table file, the field table file, and
# the XML physics suite definition file that are staged in the experiment
# directory or the cycle directories under it.
#
# *_FN and *_FP variables set the name and paths to the suite
# definition files used for the experiment
#-----------------------------------------------------------------------
#
CCPP_PHYS_SUITE: "FV3_GFS_v16"
CCPP_PHYS_SUITE_FN: 'suite_{{ CCPP_PHYS_SUITE }}.xml'
CCPP_PHYS_SUITE_IN_CCPP_FP: '{{ [user.UFS_WTHR_MDL_DIR, "FV3", "ccpp", "suites", CCPP_PHYS_SUITE_FN] |path_join }}'
CCPP_PHYS_SUITE_FP: '{{ [workflow.EXPTDIR, CCPP_PHYS_SUITE_FN]|path_join }}'
#
#-----------------------------------------------------------------------
#
# Set the field dictionary file name and paths.
#
#-----------------------------------------------------------------------
#
FIELD_DICT_FN: "fd_nems.yaml"
FIELD_DICT_IN_UWM_FP: '{{ [user.UFS_WTHR_MDL_DIR, "tests", "parm", FIELD_DICT_FN]|path_join }}'
FIELD_DICT_FP: '{{ [workflow.EXPTDIR, FIELD_DICT_FN]|path_join }}'
#
#-----------------------------------------------------------------------
#
# Set GRID_GEN_METHOD. This variable specifies the method to use to
# generate a regional grid in the horizontal. The values that it can
# take on are:
#
# * "GFDLgrid":
# This setting will generate a regional grid by first generating a
# "parent" global cubed-sphere grid and then taking a portion of tile
# 6 of that global grid -- referred to in the grid generation scripts
# as "tile 7" even though it doesn't correspond to a complete tile --
# and using it as the regional grid. Note that the forecast is run on
# only on the regional grid (i.e. tile 7, not tiles 1 through 6).
#
# * "ESGgrid":
# This will generate a regional grid using the map projection developed
# by Jim Purser of EMC.
#
# Note that:
#
# 1) If the experiment is using one of the predefined grids (i.e. if
# PREDEF_GRID_NAME is set to the name of one of the valid predefined
# grids), then GRID_GEN_METHOD will be reset to the value of
# GRID_GEN_METHOD for that grid. This will happen regardless of
# whether or not GRID_GEN_METHOD is assigned a value in the user-
# specified experiment configuration file, i.e. any value it may be
# assigned in the experiment configuration file will be overwritten.
#
# 2) If the experiment is not using one of the predefined grids (i.e. if
# PREDEF_GRID_NAME is set to a null string), then GRID_GEN_METHOD must
# be set in the experiment configuration file. Otherwise, it will
# remain set to a null string, and the experiment generation will
# fail because the generation scripts check to ensure that it is set
# to a non-empty string before creating the experiment directory.
#
#-----------------------------------------------------------------------
#
GRID_GEN_METHOD: ""
#
#-----------------------------------------------------------------------
#
# Set PREDEF_GRID_NAME. This parameter specifies a predefined regional
# grid, as follows:
#
# * If PREDEF_GRID_NAME is set to a valid predefined grid name, the grid
# generation method GRID_GEN_METHOD, the (native) grid parameters, and
# the write-component grid parameters are set to predefined values for
# the specified grid, overwriting any settings of these parameters in
# the user-specified experiment configuration file. In addition, if
# the time step DT_ATMOS and the computational parameters LAYOUT_X,
# LAYOUT_Y, and BLOCKSIZE are not specified in that configuration file,
# they are also set to predefined values for the specified grid.
#
# * If PREDEF_GRID_NAME is set to an empty string, it implies the user
# is providing the native grid parameters in the user-specified
# experiment configuration file (EXPT_CONFIG_FN). In this case, the
# grid generation method GRID_GEN_METHOD, the native grid parameters,
# and the write-component grid parameters as well as the time step
# forecast model's main time step DT_ATMOS and the computational
# parameters LAYOUT_X, LAYOUT_Y, and BLOCKSIZE must be set in that
# configuration file; otherwise, the values of all of these parameters
# in this default experiment configuration file will be used.
#
# Setting PREDEF_GRID_NAME provides a convenient method of specifying a
# commonly used set of grid-dependent parameters. The predefined grid
# parameters are specified in the script
#
# $HOMEdir/ush/set_predef_grid_params.py
#
#-----------------------------------------------------------------------
#
PREDEF_GRID_NAME: ""
#
#-----------------------------------------------------------------------
#
# Set forecast parameters. Definitions:
#
# DATE_FIRST_CYCL:
# Starting cycle date of the FIRST forecast in the set of forecasts to
# run. Format is "YYYYMMDDHH". Note: This has recently changed to
# include the first cycle hour.
#
# DATE_LAST_CYCL:
# Starting cylce date of the LAST forecast in the set of forecasts to run.
# Format is "YYYYMMDDHH". Note: This has recently changed to include
# the last cycle hour.
#
# INCR_CYCL_FREQ:
# Increment in hours for Rocoto cycle frequency.
# Default is 24, which means cycle_freq=24:00:00
#
# FCST_LEN_HRS:
# The length of each forecast, in integer hours. The short forecast
# length when there are different lengths.
#
# LONG_FCST_LEN_HRS:
# The length of the longer forecast in integer hours in a system that
# varies the length of the forecast by time of day forecasts for a
# shorter period. There is no need for the user to update this value
# directly, as it is derived from FCST_LEN_CYCL when FCST_LEN_HRS=-1
#
# FCST_LEN_CYCL:
# The length of forecast for each cycle date in integer hours.
# This is valid only when FCST_LEN_HRS = -1.
# This pattern is recurred for all cycle dates.
# Must have the same number of entries as cycles per day, or if less
# than one day the entries must include the length of each cycle to be
# run. By default, set it to a 1-item list containing the standard
# fcst length.
#
# CYCL_HRS_SPINSTART:
# An array containing the hours of the day at which the spin up cycle starts.
#
# CYCL_HRS_PRODSTART:
# An array containing the hours of the day at which the product cycle starts,
# from cold start input or from spin-up cycle forcast
#
# BOUNDARY_LEN_HRS
# The length of boundary condition for normal forecast, in integer hours.
#
# BOUNDARY_LONG_LEN_HRS
# The length of boundary condition for long forecast, in integer hours.
#
# BOUNDARY_PROC_GROUP_NUM
# The number of groups used to run make_lbcs, in integer from 1 to forecast longest hours.
#
#-----------------------------------------------------------------------
#
DATE_FIRST_CYCL: "YYYYMMDDHH"
DATE_LAST_CYCL: "YYYYMMDDHH"
INCR_CYCL_FREQ: 24
FCST_LEN_HRS: 24
FCST_LEN_CYCL:
- '{{ FCST_LEN_HRS }}'
LONG_FCST_LEN: '{% if FCST_LEN_HRS < 0 %}{{ FCST_LEN_CYCL|max }}{% else %}{{ FCST_LEN_HRS }}{% endif %}'
CYCL_HRS_SPINSTART: []
CYCL_HRS_PRODSTART: []
BOUNDARY_LEN_HRS: 0
BOUNDARY_LONG_LEN_HRS: 0
BOUNDARY_PROC_GROUP_NUM: 1
#
#-----------------------------------------------------------------------
#
# Set PREEXISTING_DIR_METHOD. This variable determines the method to use
# use to deal with preexisting directories [e.g ones generated by previous
# calls to the experiment generation script using the same experiment name
# (EXPT_SUBDIR) as the current experiment]. This variable must be set to
# one of "delete", "reuse", "rename", and "quit". The resulting behavior for each
# of these values is as follows:
#
# * "delete":
# The preexisting directory is deleted and a new directory (having the
# same name as the original preexisting directory) is created.
#
# * "rename":
# The preexisting directory is renamed and a new directory (having the
# same name as the original preexisting directory) is created. The new
# name of the preexisting directory consists of its original name and
# the suffix "_oldNNN", where NNN is a 3-digit integer chosen to make
# the new name unique.
#
# * "reuse":
# If method is set to "reuse",
# keep preexisting directory intact except that
# when preexisting directory is $EXPDIR, do the following:
# save all old files to a subdirecotry oldxxx/ and then
# populate new files into the $EXPDIR directory
# This is useful to keep ongoing runs uninterrupted:
# rocotoco *db files and previous cycles will stay and hence
# 1. no need to manually cp/mv *db files and previous cycles back
# 2. no need to manually restart related rocoto tasks failed during
# the workflow generation process
# This may best suit for incremental system reuses.
#
# Alternatively, one can always elect to use the "rename" option
# and then manually do the above aftermath
#
# * "quit":
# The preexisting directory is left unchanged, but execution of the
# currently running script is terminated. In this case, the preexisting
# directory must be dealt with manually before rerunning the script.
#
#-----------------------------------------------------------------------
#
PREEXISTING_DIR_METHOD: "delete"
#
#-----------------------------------------------------------------------
#
# Set flags for more detailed messages. Defintitions:
#
# VERBOSE:
# This is a flag that determines whether or not the experiment generation
# and workflow task scripts tend to print out more informational messages.
#
# DEBUG:
# This is a flag that determines whether or not very detailed debugging
# messages are printed to out. Note that if DEBUG is set to TRUE, then
# VERBOSE will also get reset to TRUE if it isn't already.
#
#-----------------------------------------------------------------------
#
VERBOSE: true
DEBUG: false
#
#-----------------------------------------------------------------------
#
# COMPILER:
# Type of compiler invoked during the build step. Currently, this must
# be set manually; it is not inherited from the build system in the
# ufs-srweather-app directory.
#
# SYMLINK_FIX_FILES:
# Symlink fix files to experiment directory if true; otherwise copy the files.
#
#------------------------------------------------------------------------
#
COMPILER: "intel"
SYMLINK_FIX_FILES: true
#
#-----------------------------------------------------------------------
#
# DO_REAL_TIME:
# switch for real-time run
#
#-----------------------------------------------------------------------
#
DO_REAL_TIME: false
#
#-----------------------------------------------------------------------