-
Notifications
You must be signed in to change notification settings - Fork 4
/
snowmodel.par
978 lines (878 loc) · 45.2 KB
/
snowmodel.par
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
! snowmodel.par file.
!
! Define any required constants specific to this model run.
!
! The following must be true:
!
! All comment lines start with a ! in the first position.
!
! Blank lines are permitted.
!
! All parameter statements start with the parameter name, followed
! by a space, followed by an =, followed by a space, followed by
! the actual value, with nothing after that. These statements can
! have leading blanks, and must fit within 80 columns.
!
! Also note that all of the input numbers follow standard
! fortran_77 convention where anything starting with the letters
! "i" through "n" are integers, and all others are real numbers.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!! GENERAL MODEL SETUP
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Number of x and y cells in the computational grid.
!!! (recommended default value: nx = user input required)
!!! (recommended default value: ny = user input required)
nx = 250
ny = 250
! deltax = grid increment in x direction. Meters.
! deltay = grid increment in y direction. Meters.
!!! (recommended default value: deltax = user input required)
!!! (recommended default value: deltay = user input required)
deltax = 25.0
deltay = 25.0
! Location (like UTM, in meters) value of lower-left grid point.
! xmn = value of x coordinate in center of lower left grid cell.
! Meters.
! ymn = value of y coordinate in center of lower left grid cell.
! Meters.
!!! (recommended default value: xmn = user input required)
!!! (recommended default value: ymn = user input required)
xmn = 275562.5
ymn = 4212562.5
! Model time step, dt. Should be the same increment as in the input
! data file. In seconds.
!!! (recommended default value: dt = user input required)
! One day.
! dt = 86400.0
! Six hours.
! dt = 21600.0
! Three hours.
! dt = 10800.0
! One hour.
dt = 3600.0
! Start year of input data file. Four digit year. Integer.
!!! (recommended default value: iyear_init = user input required)
iyear_init = 2013
! Start month of input data file. One or two digit month. Integer.
!!! (recommended default value: imonth_init = user input required)
imonth_init = 9
! Start day of input data file. One or two digit day. Integer.
!!! (recommended default value: iday_init = user input required)
iday_init = 1
! Start hour of input data file. Local time, like in solar time.
! Decimal hour. Each day the clock runs from 0.00 through 23.99.
! Real.
!!! (recommended default value: xhour_init = user input required)
xhour_init = 1.0
! xhour_init = 12.0
! Number of model iterations defines how many times to process.
!!! (recommended default value: max_iter = user input required)
max_iter = 6552
! max_iter = 8760
! max_iter = 1440
! MicroMet requires a met input file that has data in a specific
! format (see the MicroMet documentation). For the case of
! inputs from more than a single station, the input met file
! requires an initial number indicating the number of valid
! stations at a given time step. For the case of a single
! station, this number can be dropped (it doesn't have to be
! though). Identify whether to process as a single station
! without the valid station count (isingle_stn_flag = 1), or
! or to process with the count included (for multi stations
! and single stations with the number of stations included;
! isingle_stn_flag = 0).
!!! (recommended default value: isingle_stn_flag = user input
!!! required)
isingle_stn_flag = 0
! For the case of isingle_stn_flag = 1, the input file can be a GrADS
! binary file. Identify whether that is the case (= 1, else = 0).
!!! (recommended default value: igrads_metfile = 0)
igrads_metfile = 0
! Define the meteorologial input file name. Note that this input
! file has very specific input format requirements (see the
! MicroMet preprocessor). The required met variables are:
! Tair (deg C or K), rh (%), wind speed (m/s), wind direction
! (0-360 True N), and precipitation (mm/time_step).
!!! (recommended default value: met_input_fname = user input required)
met_input_fname = met/TUO_elev_mm.txt
! The number used as an undefined value for both inputs and outputs.
!!! (recommended default value: undef = -9999.0)
undef = -9999.0
! Define whether the topography and vegetation input files will
! be ARC/INFO ascii text (grid) files, or a GrADS binary file
! (ascii = 1.0, GrADS = 0.0).
!!! (recommended default value: ascii_topoveg = 1.0)
ascii_topoveg = 0.0
! Define the GrADS topography and vegetation input file name
! (record 1 = topo, record 2 = veg). Note that if you are using
! ascii files, you still cannot comment this line out (it is okay
! for it to point to something that doesn't exist) or you will
! an error message.
!!! (recommended default value: topoveg_fname = xxxxxx)
topoveg_fname = met/TUO_elev_25m_topo_veg.gdat
! For the case of using ascii text topography and vegetation files,
! provide the file names. Note that if you are using a grads
! file, you still cannot comment these two lines out (it is okay
! for it to point to something that doesn't exist) or you will
! an error message.
!!! (recommended default value: topo_ascii_fname = user input required)
!!! (recommended default value: veg_ascii_fname = user input required)
! topo_ascii_fname = xxxxxx
! veg_ascii_fname = xxxxxx
topo_ascii_fname = topo_veg/SnowModel_test_dem.dat
veg_ascii_fname = topo_veg/SnowModel_test_veg.dat
! The vegetation types are assumed to range from 1 through 30. The
! last 6 types are available to be user-defined vegetation types
! and vegetation snow-holding depths. The first 24 vegetation
! types, and the associated vegetation snow-holding depths
! (meters), are hard-coded to be:
!
! code description veg_shd example class
!
! 1 coniferous forest 15.00 spruce-fir/taiga/lodgepole forest
! 2 deciduous forest 12.00 aspen forest forest
! 3 mixed forest 14.00 aspen/spruce-fir/low taiga forest
! 4 scattered short-conifer 8.00 pinyon-juniper forest
! 5 clearcut conifer 4.00 stumps and regenerating forest
!
! 6 mesic upland shrub 0.50 deeper soils, less rocky shrub
! 7 xeric upland shrub 0.25 rocky, windblown soils shrub
! 8 playa shrubland 1.00 greasewood, saltbush shrub
! 9 shrub wetland/riparian 1.75 willow along streams shrub
! 10 erect shrub tundra 0.65 arctic shrubland shrub
! 11 low shrub tundra 0.30 low to medium arctic shrubs shrub
!
! 12 grassland rangeland 0.25 graminoids and forbs grass
! 13 subalpine meadow 0.25 meadows below treeline grass
! 14 tundra (non-tussock) 0.25 alpine, high arctic grass
! 15 tundra (tussock) 0.20 graminoid and dwarf shrubs grass
! 16 prostrate shrub tundra 0.20 graminoid dominated grass
! 17 arctic gram. wetland 0.20 grassy wetlands, wet tundra grass
!
! 18 bare 0.01 bare
!
! 19 water/possibly frozen 0.01 water
! 20 permanent snow/glacier 0.01 water
!
! 21 residential/urban 0.01 human
! 22 tall crops 0.40 e.g., corn stubble human
! 23 short crops 0.25 e.g., wheat stubble human
! 24 ocean 0.01 water
!
! 25 user defined (see below)
! 26 user defined (see below)
! 27 user defined (see below)
! 28 user defined (see below)
! 29 user defined (see below)
! 30 user defined (see below)
!
! Define the vegetation snow-holding depths (in meters) for each
! of the user-defined vegetation types. The numbers in the
! list below correspond to the vegetation-type numbers in the
! vegetation-type data array (veg type 25.0 -> veg_shd_25). Note
! that even if these are not used, they cannot be commented out
! or you will get an error message.
!!! (recommended default value: veg_shd_25 = 0.20)
!!! (recommended default value: veg_shd_26 = 0.20)
!!! (recommended default value: veg_shd_27 = 0.20)
!!! (recommended default value: veg_shd_28 = 0.20)
!!! (recommended default value: veg_shd_29 = 0.20)
!!! (recommended default value: veg_shd_30 = 0.20)
veg_shd_25 = 0.20
veg_shd_26 = 0.20
veg_shd_27 = 0.20
veg_shd_28 = 0.20
veg_shd_29 = 0.20
veg_shd_30 = 0.20
! Define whether the vegetation will be constant or defined by the
! topography/vegetation input file name (0.0 means use the file,
! 1.0 or greater means use a constant vegetation type equal to
! the number that is used). This will define the associated
! veg_shd that will be used. The reason you might use a constant
! vegetation type is to avoid generating a veg-distribution file.
!!! (recommended default value: const_veg_flag = 0.0)
! const_veg_flag = 12.0
const_veg_flag = 0.0
! For the case where you have vegetation height data, and want to
! use that instead of the tables above, you must also provide a
! file that defines the vegetation height (cm) of each grid cell.
! iveg_ht_flag = 0 means the file is not provided and the required
! array will be generated by filling it with the values listed in
! the above vegetation summary. iveg_ht_flag = -1 means the data
! file is a grads binary file with the name veg_ht.gdat.
! iveg_ht_flag = 1 means the data file is an ascii text file with
! the same format that ascii topo and veg files would have and with
! a name of veg_ht.asc. Note that the .gdat and .asc files are
! y-reversed (see ascii topo/veg notes). It is assumed that the
! file, if provided, is located in an 'topo_veg/' directory off
! of the main model directory. Note that this height information
! is primarily used as the vegetation snow-holding depth, thus the
! model is expecting average vegetation heights for each grid cell,
! not maximum heights.
!!! (recommended default value: iveg_ht_flag = 0)
iveg_ht_flag = 0
! The latitude of domain center (decimal degrees). This only needs
! to be approximate, since it is used to define some of the solar
! radiation calculations.
!!! (recommended default value: xlat = user input required)
xlat = 38.1
! For the case where your domain spans enough latitude that there
! is significant variation in solar radiation from the top to
! the bottom of the domain, you must also provide a file that
! defines the latitude (in decimal degrees) of the center of
! each grid cell. lat_solar_flag = 0 means the file is not
! provided and the required array will be generated by filling
! it with the constant xlat value listed above. lat_solar_flag
! = -1 means the data file is a grads binary file with the name
! grid_lat.gdat. lat_solar_flag = 1 means the data file is an
! ascii text file with the same format that ascii topo and veg
! files would have and with a name of grid_lat.asc. Note that
! the .gdat and .asc files are y-reversed (see ascii topo/veg
! notes). It is assumed that the file, if provided, is located
! in an 'extra_met/' directory off of the main model directory.
!!! (recommended default value: lat_solar_flag = 0)
lat_solar_flag = 0
! For the case where your domain spans enough lonitude that there
! is significant variation in solar radiation from the side to
! the side of the domain, you must also provide a file that
! defines the lonitude (in decimal degrees) of the center of
! each grid cell. In this case it also no longer makes sense
! to be running the model in local time, and UTC (or GMT) time
! is required. UTC_flag = 0.0 means the the model will be run
! in local time. UTC_flag = -1.0 means the longitude data file
! is a grads binary file with the name grid_lon.gdat. UTC_flag
! = 1 means the longitude data file is an ascii text file with
! the same format that ascii topo and veg files would have and
! with a name of grid_lon.asc. Note that the .gdat and .asc
! files are y-reversed from each other (see ascii topo/veg
! notes). It is assumed that the file, if provided, is located
! in an 'extra_met/' directory off of the main model directory.
! Note that if UTC_flag is non-zero, lat_solar_flag should
! probably also be non-zero.
!!! (recommended default value: UTC_flag = 0.0)
UTC_flag = 0.0
! Define which models that are going to run. A value of 1.0 means
! that you want to run the model (0.0 means don't run it).
! Currently the model is only configured to run the following
! combinations (micromet), (micromet, enbal), (micromet, enbal,
! snowpack), (micromet, snowtran), or (micromet, enbal, snowpack,
! snowtran).
!!! (recommended default value: run_micromet = user input required)
!!! (recommended default value: run_enbal = user input required)
!!! (recommended default value: run_snowpack = user input required)
!!! (recommended default value: run_snowtran = user input required)
run_micromet = 1.0
run_enbal = 1.0
run_snowpack = 1.0
run_snowtran = 0.0
! Define whether you are doing a standard model simulation, or a
! DATA ASSIMILATION RUN where you are going to assimilate
! observed snow water equivalent observations as part of the
! model integration. A data assimilation run can be used to
! correct precipitation inputs and/or melt rates to force the
! model towards your observed swe distributions. For a standard
! simulation, use irun_data_assim = 0, for a data assimilation
! run, use irun_data_assim = 1. Note that irun_data_assim = 1
! requires swe data and some extra input files. See the
! dataassim_user.f subroutine for details (read the comments in
! that subroutine to learn how to set up a data assimilation run.
! If you are using this feature, you will also need to run the
! model with "print_user = 1.0" defined below in this .par file.
!!! (recommended default value: irun_data_assim = user input
!!! required)
! irun_data_assim = 0
irun_data_assim = 1
! Define whether the simulation will be assimilated with snow
! depth (depth_assim = 1) instead of SWE (depth_assim = 0). If
! assimilating snow depth, will used modeled bulk density at that
! point to derive SWE. Will only be used if irun_data_assim = 1
depth_assim = 1
! Define whether want to implement the history restart option.
! This creates periodic output files that allow you to restart
! the simulation from somewhere other than the beginning. All
! of the required data arrays are saved to a grads file that is
! read back in when the simulation is restarted. The new
! simulation starts at the history restart iteration, with the
! initial conditions defined by the saved data arrays. The
! new simulation starts in the micromet file where the original
! simulation ended. This is also true of the output files,
! if the run has been set up to write continuously to a given
! output file. This option also assumes that you have not made
! any changes to the model setup; it does no error checking.
! ihrestart_flag = -2 turns this option off, ihrestart_flag = -1
! does the restart saves, and ihrestart_flag >= 0 runs a history
! restart where the number defines the restart iteration (e.g.,
! ihrestart = 720 will set iteration 720 as the intitial
! condition for the start of the new simulation. For the case
! where ihrestart_flag = 0, and i_dataassim_loop <= -1, the
! run will start at the begining of the second data assimilation
! loop.
!!! (recommended default value: ihrestart_flag = -2)
! ihrestart_flag = -2
! ihrestart_flag = -1
! ihrestart_flag = 3444
ihrestart_flag = 0
! For the case where you are running a history restart, define
! whether you want to restart the run during a standard run or
! the first loop of a data assimilation model run
! (i_dataassim_loop = 1) or during the second loop of a data
! assimilation run (i_dataassim_loop < 0). The value of this
! negative number is used to define how many obervation dates
! you have in your data assimilation run (e.g., -3 would mean
! you have 3 observation dates and nobs_dates = 3 in
! dataassim_user.f). Also note that to correctly run the history
! restart function for the case of a data assimilation run, you
! need to first set i_corr_factor = 0 and save a history restart
! at the end of that run before going on to the second half of
! the assimilation run.
!!! (recommended default value: i_dataassim_loop = 1)
! i_dataassim_loop = 1
i_dataassim_loop = -1
! If ihrestart_flag = -1, then define how often the restart
! files are generated. This is in iteration units (e.g., every
! 30 days for the model running at hourly time steps would be
! ihrestart_inc = 720). The history restart files will be
! placed in an 'hrestart/' directory off of the main model
! directory. In addition to this time increment, if the
! ihrestart_flag = -1, the last model iteration is always saved
! (so if you just want to save the last iteration, just set
! ihrestart_inc to a number bigger than your maximum iteration).
! Note that if you want to do history restarts with data
! assimilation this increment must be evenly divisible into
! the maximum interation; in other words, the simulation must
! at least do a write at the end of the first data assimilation
! loop.
!!! (recommended default value: ihrestart_inc = 0)
ihrestart_inc = 6552
! The code is set up to write out an individual data file for each
! sub-model (see the sub-model sections below). In addition, you
! can use a user-defined subroutine to output data in the format
! of your choice. Define whether you want the data written out
! to this file (print_user = 1.0, else 0.0). The name and
! location of the user-defined output file(s) will be defined
! within the subroutine. If you are using this feature, you
! will need to edit the outputs_user.f file.
!!! (recommended default value: print_user = 0.0)
print_user = 1.0
! For printing to the standard output files, define the iteration
! increment for each write to the files (e.g., iprint_inc = 1
! gives every time step, iprint_inc = 24 gives a write at the end
! of each day when using hourly time steps, etc.).
!!! (recommended default value: iprint_inc = 1)
! iprint_inc = 24
iprint_inc = 1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!! MICROMET MODEL SETUP
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Define which fields you want to process/distribute. 1 = do it,
! 0 = don't do it. As an example, if you are running SnowTran-3D
! with no melting, you don't need solar radiation. Also, MicroMet
! provides the ability to to read in an alternate wind dataset
! that has been previously generated with another program, like
! winds from NUATMOS. To do that set the flag to -1. See
! i_wind_flag = -1 in the code for an example of how to do this.
! J.PFLUG
! Micromet also provides the ability to explicitly read in snow
! and rain precipitation. To do that set the flag to -1. See
! i_prec_flag = -1 in the code for an example of how to do this.
! If mixed rain-snow is present for explicitly-defined simulations,
! then use multilayer simulations.
!!! (recommended default value: i_tair_flag = 1)
!!! (recommended default value: i_rh_flag = 1)
!!! (recommended default value: i_wind_flag = 1)
!!! (recommended default value: i_solar_flag = 1)
!!! (recommended default value: i_longwave_flag = 1)
!!! (recommended default value: i_prec_flag = 1)
i_tair_flag = 1
i_rh_flag = 1
i_wind_flag = 1
i_solar_flag = 1
i_longwave_flag = 1
i_prec_flag = -1
! END J.PFLUG
! Force the model to determine a value for every grid cell (= 1), or
! just define values for some specified "radius of influence" (= 0).
!!! (recommended default value: ifill = 1)
ifill = 1
! Let the model determine an appropriate "radius of influence" (= 0),
! or define the "radius of influence" you want the model to use (= 1).
! 1 = use obs interval below, 0 = use model generated interval.
!!! (recommended default value: iobsint = 0)
iobsint = 0
! The "radius of influence" or "observation interval" you want the
! model to use for the interpolation. In units of deltax, deltay.
!!! (recommended default value: dn = 1.0)
dn = 1.0
! The barnes station interpolation can be done two different ways:
! First, barnes_oi does the interpolation by processing all of
! the available station data for each model grid cell.
! Second, barnes_oi_ij does the interpolation by processing only
! the "n_stns_used" number of stations for each model grid cell.
! For small domains, with relatively few met stations (100's),
! the first way is best. For large domains (like the
! United States, Globe, Pan-Arctic, North America, Greenland)
! and many met stations (like 1000's), the second approach is the
! most efficient. But, the second approach carries the following
! restrictions: 1) there can be no missing data for the fields of
! interest; 2) there can be no missing stations (all stations
! must exist throughout the simulation period); and 3) the
! station met file must list the stations in the same order for
! all time steps. This second method works well for regridding
! atmospheric analyses/model datasets. Also, the MicroMet
! preprocessor can be used to fill in missing data segments.
! The second option now has the option to calculate the nearest
! "stations" at every time step. This is useful if you have
! stations (instead of just reanalyis grid points) in your model
! domain. It works with either line (snowmodel_line_flag = 1.0)
! or rectangular domain (snowmodel_line_flag = 0.0) configurations
! (see below). Use barnes_lg_domain = 0.0 for the first method,
! barnes_lg_domain = 1.0 for the second method with all of the
! restrictions listed above, and barnes_lg_domain = 2.0 for the
! second method with stations that come and go with valide data
! during the model simulation.
!!! (recommended default value: barnes_lg_domain = 0.0)
barnes_lg_domain = 0.0
! For the case where barnes_lg_domain = 1.0, define the number
! of nearest stations to be used in the interpolation (5 or
! less). If barnes_lg_domain = 0.0, n_stns_used is not used, but
! n_stns_used still needs to have some value.
!!! (recommended default value: n_stns_used = 5)
n_stns_used = 5
! The code has also been configured to run the model with all of
! grid cells of interest concatenated into a single line of grid
! cells. This is useful when large parts of a rectangular domain
! are not of interest in your simulation, for example, when you
! want to simulate snow processes over all of the glaciers in
! the Northern Hemisphere or all of the ice-free grid cells in
! Greenland. Because the grid cells in this configuration are
! not realistically connected on the x-y grid anymore, the blowing
! snow model (SnowTran-3D) cannot be used in this configuration.
! Also, the implementation assumes that you are running with
! barnes_lg_domain = 1.0 (see the notes above). To define the
! relationship between this line of grid cells and the original
! rectangular x-y domain, an indexing file is required. This
! is assumed to be called snowmodel_line_pts.dat, and to be
! located in the /extra_met/ directory. This data file has five
! columns: 1) a grid cell counter, 2) and 3) the i and j
! locations within the rectangular grid, and 4) and 5) the x and
! y SnowModel coordinates within the rectangular version of the
! domain. The number of rows in this file equals the number of
! grid cells in the line of grid cells. In addition to the
! requirements listed above, several preprocessing steps are
! required to generate the appropriate indexing for this
! implementation. These steps are highlighted in the
! /docs/concatenate_readme.txt file. 1.0 = run with a
! concatenated domain, 0.0 = run with a standard rectangular
! domain.
!!! (recommended default value: snowmodel_line_flag = 0.0)
snowmodel_line_flag = 0.0
! Define whether you want to check the met input file to make sure
! it contains (some) valid data for every time step. While this
! is generally a good idea to do, if you are running, for example,
! the model with 30 years of reanalysis data, it can take a very
! long time and may not be necessary. 1.0 = do the check, 0.0 =
! skip the check.
!!! (recommended default value: check_met_data = 1.0)
check_met_data = 1.0
! The curvature is used as part of the wind model. Define a length
! scale that the curvature calculation will be performed on. This
! has units of meters, and should be approximately one-half the
! wavelength of the topographic features within the domain.
!!! (recommended default value: curve_len_scale = x)
curve_len_scale = 200.0
! The curvature and wind_slope values range between -0.5 and +0.5.
! Valid slopewt and curvewt values are between 0 and 1, with
! values of 0.5 giving approximately equal weight to slope and
! curvature. I suggest that slopewt and curvewt be set such
! that slopewt + curvewt = 1.0. This will limit the total
! wind weight to between 0.5 and 1.5 (but this is not required).
!!! (recommended default value: slopewt = 0.42)
!!! (recommended default value: curvewt = 0.42)
slopewt = 0.25
curvewt = 0.75
! slopewt = x
! curvewt = x
! Impose a second, larger length scale, curvature affect on the
! snow distribution. Turning this flag on (= 1.0) will reduce the
! Utau_t threshold in regions of positive curvature in big
! mountains. The net effect of this is to increase the wind-
! related snow erosion on high, steep, mountain slopes. If = 1.0
! then the model will look in an 'extra_met/' directory off of
! the main model directory for a .gdat file of the weighing
! distribution (that has been created in preparation for the
! model run using the external program called make_lg_curve_wt.f).
! Turning this flag off (= 0.0) produces the default model and
! snow resistance to wind shear.
!!! (recommended default value: curve_lg_scale_flag = 0.0)
curve_lg_scale_flag = 0.0
! Avoid problems of zero (low) winds (for example, turbulence
! theory, log wind profile, etc., says that we must have some
! wind. Thus, some equations blow up when the wind speed gets
! very small). This number defines the value that any wind speed
! below this gets set to.
!!! (recommended default value: windspd_min = 1.0)
windspd_min = 1.0
! Define whether the model is to use the default monthly lapse
! rates (= 0) or user supplied monthly lapse rates (= 1). To use
! user supplied lapse rates, you have to edit the user lapse rate
! data array in micromet_code.f (subroutine get_lapse_rates).
! Note that this implementation currently only defines
! average-monthly lapse rates.
!!! (recommended default value: lapse_rate_user_flag = 0)
lapse_rate_user_flag = 0
! Define whether the precipitation adjustment factor, with units of
! km^-1 (kind of a precipitation lapse rate, used to adjust the
! precipitation for locations above and below the precipitation
! observing station(s)), is to use the default monthly lapse
! rates (= 0) or user supplied monthly lapse rates (= 1). To use
! user supplied lapse rates, you have to edit the user lapse rate
! data array in micromet_code.f (subroutine get_lapse_rates).
!!! (recommended default value: iprecip_lapse_rate_user_flag = 0)
iprecip_lapse_rate_user_flag = 0
! The model can also impose a wind speed increase with elevation,
! called here the "wind_lapse_rate". If wind_lapse_rate = 0.0,
! then nothing is done. Or you can define a wind_lapse_rate to
! equal the wind multiplier per km. So, for example, a rate = 1.5
! would give wind speeds at 1-km elevation above the wind speed
! observations that are 1.5 times those observations. Where this
! is useful is when you have all of your met stations in the
! valley bottoms, but you want higher wind speeds on the tops of
! the higher ridges. The elevation correction formulation follows
! that of precipitation (although there is no seasonal variation
! implemented). So this will have the effect of also making the
! wind speeds at lower elevations than the met stations less than
! the met station values.
!!! (recommended default value: wind_lapse_rate = 0.0)
wind_lapse_rate = 0.0
! Define whether you want the model to calculate, use, and output
! sub-forest-canopy windspeed, incoming solar and longwave
! radiation (= 1.0), or above canopy values (= 0.0).
!!! (recommended default value: calc_subcanopy_met = 1.0)
calc_subcanopy_met = 1.0
! Define the canopy gap fraction (0.2). This parameter accounts
! for solar radiation reaching the snow surface below the canopy,
! beyond that defined by the canopy transmissivity calculation.
! In effect, it allows additional solar radiation to penetrate
! the canopy (e.g., through gaps in the forest), thus inceasing
! melt rates, etc. A gap_frac = x produces the sub-canopy
! solar radiation using the default transmissivity calculation,
! a gap_frac = 1.0 (all gaps) produces sub_canopy radiation equal
! to the top-of-canopy radiation. If you want the snow in the
! forest to melt faster, increasing this value will do it.
!!! (recommended default value: gap_frac = x)
gap_frac = 0.4
! To handle the case, for example, of a met station located in
! an inversion layer recording high relative humidity, and the
! model producing anomolously high cloud-cover fractions, the
! cloud_frac_factor can be used to decrease the simulated cloud
! fraction. This number is multiplied by the calculated cloud
! fraction. For example, a cloud_frac_factor = x produces the
! simulated cloud fraction, a cloud_frac_factor = 0.5 produces
! the half the simulated cloud fraction, and a cloud_frac_factor
! = 0.0 forces the simulated cloud fraction to be zero.
!!! (recommended default value: cloud_frac_factor = x)
cloud_frac_factor = 0.9
! Define whether the simulation will assimilate shortwave radiation
! observations (no = 0.0, yes = 1.0). If yes, the model assumes
! there is a shortwave radation station data file, called
! shortwave.dat, in an 'extra_met/' directory off of the main
! model directory. See the micromet code for file format details.
!!! (recommended default value: use_shortwave_obs = 0.0)
use_shortwave_obs = 0.0
! Define whether the simulation will assimilate longwave radiation
! observations (no = 0.0, yes = 1.0). If yes, the model assumes
! there is a longwave radation station data file, called
! longwave.dat, in an 'extra_met/' directory off of the main model
! directory. See the micromet code for file format details.
!!! (recommended default value: use_longwave_obs = 0.0)
use_longwave_obs = 0.0
! Define whether the simulation will assimilate surface pressure
! observations (no = 0.0, yes = 1.0). If yes, the model assumes
! there is a surface pressure station data file, called
! sfc_pressure.dat, in an 'extra_met/' directory off of the main
! model directory. See the micromet code for file format details.
!!! (recommended default value: use_sfc_pressure_obs = 0.0)
use_sfc_pressure_obs = 0.0
! The code is set up to write out an individual data file for each
! sub-model. Define whether you want the data written out
! (print_micromet = 1.0, else 0.0), and the name of that output
! file.
!!! (recommended default value: print_micromet = 1.0)
!!! (recommended default value: micromet_output_fname =
!!! outputs/micromet.gdat)
print_micromet = 0.0
micromet_output_fname = outputs/micromet.gdat
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!! SNOWTRAN-3D MODEL SETUP
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Define whether the threshold surface shear velocity will be
! constant during the simulation (Utau_t_flag = 0.0), or whether
! it will evolve as a funtion of air temperature and wind speed
! (Utau_t_flag = 1.0).
!!! (recommended default value: Utau_t_flag = 0.0)
Utau_t_flag = 0.0
! Utau_t_flag = 1.0
! For the case of Utau_t_flag = 0.0, define what the threshold
! surface shear velocity (m/s) will be during the simulation.
!!! (recommended default value: Utau_t_const = 0.25)
Utau_t_const = 0.25
! Define whether you want to apply the Tabler subgrid algorithm.
! Flag = 0.0 is the original model (no subgrid redistribution, as
! in the original model), flag = 1.0 uses Tabler (1975) to define
! equilibrium profiles for topographic drift catchments. Note
! that the model has not been tested for grid increments less than
! 1.0 m deltax and deltay. Also note that this subgrid algorithm
! is not really appropriate for grid increments greater than
! 30.0 m. There is also a computational penalty for running with
! this turned on: the simulations can take as much as 35% longer
! when subgrid_flag = 1.0 (but it does produce more realistic
! drift profiles at the higher resolutions). If subgrid_flag = 1.0,
! you need to set topoflag = 0.0.
!!! (recommended default value: subgrid_flag = 0.0)
subgrid_flag = 0.0
! subgrid_flag = 1.0
! The implementation of Tabler (1975) allows the user to define
! the area immediately upwind of any Tabler drift trap to be an
! erosion area where no snow is allowed to accumulate. This area
! is defined in meters (the distance upwind of the drift trap lip
! that will not be allowed to accumulate snow). A value of 1.0 m
! or greater is required to simulate realistic drift profiles.
!!! (recommended default value: erosion_dist = 1.0)
erosion_dist = 1.0
! Define the Tabler snow accumulation surfaces to include the drift
! traps and some fraction of the initial snow depth and
! precipitation inputs. The "tabler precipitation scale",
! tp_scale, defines the fraction of the initial snow depth and
! precipitation that is added to the Tabler Surfaces. This is
! required so that precipitation accumulating on flat ground, for
! example, is not removed because it is higher than the Tabler
! Surface. Valid numbers are between 0.0 and 1.0, but values
! greater than 0.9 typically lead to unrealistic drift profiles.
! Values closer to 0.0 lead to drift profiles that equal the
! Tabler equilibrium drift profiles. In general, the higher the
! tp_scale value, the rougher the drift profile and the more
! sensitive the simulation is to the model wind parameters like
! curve_len_scale and slopewt and curvewt.
!!! (recommended default value: tp_scale = 0.9)
tp_scale = 0.9
! tp_scale = 0.5
! tp_scale = 0.2
! For subgrid_flag = 1.0, you have to define the dominant wind
! direction (one of the 8 primary wind directions) you want
! Tabler surfaces and drifts to be generated for.
!!! (recommended default value: user input required)
! tabler_dir = 0.0
! tabler_dir = 45.0
! tabler_dir = 90.0
! tabler_dir = 135.0
! tabler_dir = 180.0
! tabler_dir = 225.0
tabler_dir = 270.0
! tabler_dir = 315.0
! You can make adjustments to the slopes of the Tabler surfaces
! using the 'slope_adjust' parameter. This factor is multiplied by
! the calculated Tabler equilibrium drift surface slope to get the
! simulated slope. So, for example, if you want the simulated
! slope to be 50% of what Tabler calculated, use a value of 0.5; a
! value of 1.5 would give half again steeper than Tabler's original
! model.
!!! (recommended default value: slope_adjust = 1.0)
slope_adjust = 1.0
! Define whether you want two-layer accounting for soft (movable)
! and hard (unmovable) layers (flag = 0.0 = off, flag = 1.0 = on).
!!! (recommended default value: twolayer_flag = 1.0)
! twolayer_flag = 0.0
twolayer_flag = 1.0
! Define whether you want the upwind boundaries to have zero
! incoming transport flux, or the equilibrium transport flux.
! bc_flag = 0.0 corresponds to a zero flux, and bc_flag = 1.0
! corresponds to the equilibrium flux.
!!! (recommended default value: bc_flag = 0.0)
bc_flag = 0.0
! Input the height of the wind and rh observations. The model does
! not need an air temperature height and is not very sensitive to
! the relative humidity observation height.
!!! (recommended default value: ht_windobs = user input required)
!!! (recommended default value: ht_rhobs = user input required)
ht_windobs = 10.0
ht_rhobs = 2.0
! Snow density. This should be defined to be a typical snow density
! for the SnowTran-3D simulations. The snowpack sub-model will
! actually evolve the snow density over the period of the model
! simulation.
!!! (recommended default value: ro_snow = 300.0)
ro_snow = 350.0
! Define the initial snow-depth distributions.
!!! (recommended default value: snow_d_init_const = 0.0)
snow_d_init_const = 0.0
! Define whether the simulation will use a surface topography
! equal to ground topography (topoflag = 0.0), or equal to the
! snow surface (topoflag = 1.0).
!!! (recommended default value: topoflag = 1.0)
topoflag = 1.0
! Define whether you want the data written out.
! (print_snowtran = 1.0, else 0.0).
!!! (recommended default value: print_snowtran = 1.0)
!!! (recommended default value: snowtran_output_fname =
!!! outputs/snowtran.gdat)
print_snowtran = 0.0
snowtran_output_fname = outputs/snowtran.gdat
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!! ENBAL-2D MODEL SETUP
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Identify whether the surface energy balance calculation for
! this simulation will include a non-zero conduction term
! (icond_flag = 0 = no conduction, 1 = conduction). Note that
! icond_flag = 1 requires running the multi-layer snowpack model
! with at least 2 snow layers.
!!! (recommended default value: icond_flag = 0)
! icond_flag = 0
icond_flag = 1
! Define the albedo for a glacier surface (dry and melting).
!!! (recommended default value: albedo_glacier = 0.40)
albedo_glacier = 0.40
!J.PFLUG
! Indicate whether the albedo will be read from a file (albedo_flag=1).
! if so, name the file of albedo observations albedo.dat and place in
! the extra_met directory. This is for point simulations only (nx=ny=1)
! and requires an observation for each model timestep.
albedo_flag = 0
! Define the difference in albedo between the forest and clear
! areas (the albedo of the snow in the clearing always being larger)
!!! (recommended default value: albedo_diff = 0.25)
albedo_diff = 0.0
! Maximum allowable snow albedo value in the open
al_max = 0.80
! Minimum allowable snow albedo value in the open
al_min = 0.50
! Albedo decay rate in cold snow conditions (decay/day)
al_dec_cold = 0.000
! Albedo decay rate in melting snow conditions (decay/day)
al_dec_melt = 0.050
!END J.PFLUG
! The code is set up to write out an individual data file for each
! sub-model. Define whether you want the data written out
! (print_enbal = 1.0, else 0.0), and the name of that output
! file.
!!! (recommended default value: print_enbal = 1.0)
!!! (recommended default value: enbal_output_fname =
!!! outputs/enbal.gdat)
print_enbal = 0.0
enbal_output_fname = outputs/enbal.gdat
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!! SNOWPACK MODEL SETUP
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Define whether static-surface (non-blowing snow) sublimation will
! be included in the model calculations (sfc_sublim_flag = 1.0).
! To turn this off, set sfc_sublim_flag = 0.0. If sfc_sublim_flag
! is turned on, the latent heat flux (Qe) calculated in ENBAL is
! used to add/remove snow from the snowpack.
!!! (recommended default value: sfc_sublim_flag = 1.0)
sfc_sublim_flag = 1.0
! J.PFLUG
! Define a freezing curve parameter. This parameter (introduced by Jordan, 1991)
! relates the snow temperature and density to liqiud, ice, and air content. Higher
! parameters result in increased ice content and reduced liquid content.
!!! (values between 10 and 1000. Recommended = 500)
fc_param = 50
! average temperature of the snowpack.This needs to be defined for single-
! layers simulations ONLY.
!!! (recommended: maritime: t_avg = 273.16)
t_avg = 273.16
! END J.PFLUG
! The code is set up to write out an individual data file for each
! sub-model. Define whether you want the data written out
! (print_snowpack = 1.0, else 0.0), and the name of that output
! file.
!!! (recommended default value: print_snowpack = 1.0)
!!! (recommended default value: snowpack_output_fname =
!!! outputs/snowpack.gdat)
print_snowpack = 0.0
snowpack_output_fname = outputs/snowpack.gdat
! Define whether this is going to be a multi-layer snowpack run
! (multilayer_snowpack = 1, else 0). This option does not work
! with the history restart or data assimilation functions.
!!! (recommended default value: multilayer_snowpack = 0)
multilayer_snowpack = 1
! multilayer_snowpack = 0
! Define the time since last snowfall threshold, in hours. This
! sets how long you have to go without snow precipitation to
! start a new snow layer in the multi-layer snowpack model.
! Periods with zero snowfall at time gaps less than this threshold
! do not create a new snow layer. To force a single layer using
! this parameter, set tsls_threshold >= the number of hours in
! the simulation. Note the equation below can be used to
! calculate this number.
! tsls_threshold = dt * real(max_iter) / 3600.0
!!! (recommended default value: tsls_threshold = 24.0)
! tsls_threshold = 1.0
tsls_threshold = 24.0
! tsls_threshold = 12.0
! tsls_threshold = 144.0
! tsls_threshold = 8000.0
! Define the maximum number of snow layers you want to allow in
! the multi-layer snowpack model. Note that nz_max in the
! snowmodel.inc file must be at least 1 greater than max_layers.
! So, if you want to run the multi-layer snowpack model with a
! single snow layer, set nz_max = 2. If you want to run the
! original single-layer snowpack model, you can set nz_max = 1 in
! snowmodel.inc.
!!! (recommended default value: max_layers = 6)
! max_layers = 12
max_layers = 6
! max_layers = 1
! Define the minimum snow layer thickness (m) for the multi-layer
! snowpack model. 0.0.2 is an appropriate number. It is also
! okay to set this to be 0.0 which will allow the tracking of
! thin layers in the simulation.
!!! (recommended default value: dz_snow_min = 0.001)
dz_snow_min = 0.001
! dz_snow_min = 0.01
! dz_snow_min = 0.0
! The code is set up to write out an individual data file for each
! sub-model. Define whether you want the data written out
! (print_multilayer = 1.0, else 0.0), and the name of that output
! file.
!!! (recommended default value: print_multilayer = 0.0)
!!! (recommended default value: multilayer_output_fname =
!!! outputs/multilayer.gdat)
print_multilayer = 0.0
multilayer_output_fname = outputs/multilayer.gdat
! For multi-year simulations, sometimes it is desirable to zero
! out the snow cover arrays on a certain summer date. For
! example, to prevent glaciers from forming. Input that date
! here, in the form mmddhh. Set this to 999999 if you would
! like to disable this feature.
!!! (recommended default value: izero_snow_date = 999999)
izero_snow_date = 999999
! izero_snow_date = 073100
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!! SEAICE MODEL SETUP
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Define whether you want to simulate snow on sea ice. A land-only
! run (seaice_run = 0.0) means any snow on ocean grid cells
! (vegtype.eq.24.0) will be set to zero. A sea-ice-only run
! (seaice_run = 1.0) means any snow on land grid cells
! (vegtype.ne.24.0) will be set to zero. For a combined land
! and sea-ice run, seaice_run = 2.0.
!!! (recommended default value: seaice_run = 0.0)
seaice_run = 0.0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Define whether you want to run simulations with a precipitation
! perturbation. If perturbation = 1, no perturbation will be applied.
! Otherwise, value will be used as a scalar multiplier. Note: in
! Addition to the scalar multiplier, gaussian random 15% noise will be
! applied at each timestep
pertPrec = 1