Data Format B-6 Apply Cell Properties via Polygons: Assign Value Using Vertical Profiles
This file is used to assign a vertical and horizontally variable initial condition field for any of the water column parameters. The data is basically a series of vertical profiles at any number of locations. The following summarizes the input format for one location. This can be repeated for as many locations as needed.
Line0: Data file description
Loop over the number of vertical profile locations
Line 1: ID (any user defined ID)
Line 2: Xc, Yc, nPts (nPts in vertical profile)
Loop over nPts
Input Depth (Positive depths below the water surface, m)
End Loop
Loop over nPts
Input Parameter_Value (units dependent on the parameter)
End Loop
End Loop
Data Format B-7 Time series observation data file structure
Data file containing observation data (.wq,.dat) | Description |
10993 USGS_Speedy, Salinity, PPT | First line: 10993: number (N) of data points; USGS_Speedy, Name, Units: title for some meaning (here: station name, water temperature in Celsius degree). This text is only used for labeling. |
Data Format B-8 Vertical Profile for Calibration/Validation Profiles.
SE 03, Unknown (Unknown) @ 573370.8125, 3009112 | First line: Title for some meaning (here: station name, coordinate) This field is not used by EE. |
Data Format B-9 Polygon DSM Format
The "Polygon" Digital Sediment Model (DSM) format is a file that contains any number of polygons that define an area followed by a data block that contains the sediment data. The polygon ID and the data block ID's must match. The data block consists of a line for each depth (beginning at the surface or 0.0 depth) for which data exists. On each line, the user must include the depth (m), thickness (m), porosity, and then the grain size. The number of grain size classes and the associated size breaks are determined by the space-delimited data of the label line (see example). The number of grain size classes and their sizes must be the same for every sediment data block in the file. However, the size classes can vary from file to file or project to project to meet the project needs.
Example
Data Format B-10 Sediment Cores with Grainsize DSM Format
The "Sediment Cores with Grainsize" Digital Sediment Model (DSM) format is a file that contains any number of cores. Each core can have any number of samples at depths below the top of the core. For each core, the user must locate the core in horizontal (XY) space. The "Z" requested is the top of the core elevation (i.e. the bottom elevation at the core location).
Title Line
"Discrete" Flag: Used to determine the data file format
Loop over groupings of cores (Loop Terminated by the "END" statement)
ID, #Cores
X Y Z #Depths
Loop over #Depths
Thickness, Porosity, SpecGrav, nFractions
Loop over nFractions
Max Grainsizes (um)
EndLoop
Loop over nFractions
%Finer
EndLoop
EndLoop
END --> End Core Definitions with an "END"
Example --------------------------------------------------------------------
Tra Khuc Soil Sampling Results
Discrete
Core01 2
265814.3 1673167.4 5.90 4
0.25 56.00 2.66 9
20000 15000 7500 3500 1250 375 175 75 30
100.00 94.40 89.50 84.10 79.00 36.00 16.50 10.00 2.20
0.65 56.00 2.66 6
1250 375 175 75 30 8
100.00 90.80 70.20 33.00 17.80 9.00
5.00 56.00 2.65 7
7500 3500 1250 375 175 75 30
100.00 96.80 84.80 24.70 11.30 4.10 0.90
8.20 56.00 2.66 7
7500 3500 1250 375 175 75 30
100.00 97.60 87.60 29.30 13.90 5.20 1.00 ! *** End of 1st Core
265808.1 1673613.9 0.13 20.25 56.00 2.66 9
20000 15000 7500 3500 1250 375 175 75 30
100.00 94.40 89.50 84.10 79.00 36.00 16.50 10.00 2.20
0.85 56.00 2.65 7
7500 3500 1250 375 175 75 30
100.00 96.50 83.10 27.70 17.10 4.20 0.00 ! *** End of 2nd Core
Data Format B-11 Water Quality Point Source Loading Concentration Time Series File
C ** Caloosahatchee TMDL, WQPSLC Concentration Time Series FILE, DDD 5/27/2008 10:28:34 AM
C ** This file is only used by EE to generate mass loadings for EFDC
C ** INPUT UNITS (mg/l) EXCEPT: TAM(mol/l), FCB(MPN/l).
C **
C ** MWQPSR(NS) TCPSER(NS) TAPSER(NS) RMULADJ(NS) ADDADJ(NS)
C ** TWQPSER(M,NS) WQPSSER(M,NWV= 1: 7,NS)
C ** WQPSSER(M,NWV= 8:14,NS)
C ** WQPSSER(M,NWV=15:22,NS)
C **
C ** Time CHC CHD CHG ROC LOC DOC ROP
C ** LOP DOP P4D RON LON DON NHX
C ** NOX SUU SAA COD DOX TAM FCB MAC
C **
732 86400 0 1 0 ! *** S79
2922.000 0.0000 0.0000 0.1958 1.3686 1.3686 10.9485 0.0096
0.0113 0.0113 0.0944 0.1130 0.4181 0.5989 0.0585
0.2984 0.0000 0.0000 0.0000 6.2596 0.0000 49.9881 0.0000
2923.500 0.0000 0.0000 0.1988 1.3360 1.3360 10.6880 0.0105
0.0123 0.0123 0.1139 0.1220 0.4514 0.6465 0.0612
0.3824 0.0000 0.0000 0.0000 6.5626 0.0000 49.9881 0.0000
2924.500 0.0000 0.0000 0.2007 1.3255 1.3255 10.6037 0.0104
0.0121 0.0121 0.1073 0.1214 0.4490 0.6432 0.0543
0.3633 0.0000 0.0000 0.0000 6.4734 0.0000 49.9881 0.0000
2925.500 0.0000 0.0000 0.2027 1.3934 1.3934 11.1468 0.0109
0.0127 0.0127 0.0994 0.1212 0.4484 0.6423 0.0554
0.3291 0.0000 0.0000 0.0000 6.3515 0.0000 49.9881 0.0000
2926.500 0.0000 0.0000 0.2047 1.4910 1.4910 11.9281 0.0118
0.0138 0.0138 0.0910 0.1234 0.4565 0.6538 0.0605
0.2974 0.0000 0.0000 0.0000 6.4037 0.0000 49.9881 0.0000
Data Format B-12 External Windwaves
C ** Tra Khuc, FILE: WAVE.INP
C ** Version: EFDC_Explorer7.1.1 : Ver 140606
C ** Specify Information For Wave-Current Boundary Layer and Wave Induced Flow
C **
C ** I J WVHEI WANGLE WVPER WVLEN WVDISP
C **
C ** I,J Cell Indices
C **
C ** WVHEI = Wave Height (m)
C ** WANGLE = Wave Angle (Degrees from East)
C ** WVPER = Wave Period (seconds)
C ** WVLEN = Wave Length (meters)
C ** WVDISP = Wave Energy Dissipation In (m/s)**3
C **
52 3 0.0000 0.0000 0.0000 0.0000 -0.0090
53 3 0.0000 0.0000 0.0000 0.0000 0.0000
54 3 0.0000 0.0000 0.0000 0.0000 0.0000
55 3 0.0000 0.0000 0.0000 0.0000 0.0000
56 3 0.0000 0.0000 0.0000 0.0000 -0.0090
57 3 0.0000 0.0000 0.0000 0.0000 -0.0090
58 3 0.0000 0.0000 0.0000 0.0000 -0.0090
59 3 0.0000 0.0000 0.0000 0.0000 -0.0090
60 3 0.0000 0.0000 0.0000 0.0000 -0.0090
61 3 0.0000 0.0000 0.0000 0.0000 -0.0090
62 3 0.0000 0.0000 0.0000 0.0000 0.0000
63 3 0.0000 0.0000 0.0000 0.0000 -0.0090
64 3 0.0000 0.0000 0.0000 0.0000 -0.0090
65 3 0.0000 0.0000 0.0000 0.0000 0.0000
Data Format B-13 External Windwaves
C ** JULIAN DAYS CORRESPONDING TO EXTR. WIND FILES
C ** FOR SWAN MODEL RUN IN CASE OF UNSTEADY WAVES
225.0000
225.0417
225.0833
225.1250
225.1667
225.2083
225.2500
225.2917
225.3333
225.3750
225.4167
225.4583
225.5000
Data Format B-14 Harmonic Constants (harcont.ee)
C ** NSTA = Number stations
C ** MTIDE = Number of tidal harmonic constants of this station
C ** xcoord = Longitude / X - coordinate
C ** ycoord = Latitude / Y - coordinate
C ** DATUM = Datum in meters
C ** TIMEZONE = Time zone
C ** AMPCON = Conversion factor to convert amplitude to meters
C ** PHACON = Conversion factor to convert amplitude to degrees
C ** NAME = Station name
C ** NSTA
C ** MTIDE XCOORD YCOORD DATUM TIMEZONE AMPCON PHACON NAME
C ** ID CONSTITUENT AMP(cm) PHA(deg)
2 38 0 0 1.77799999713898 8 .01 1 Johor
92 M2 2232.0000 21.00
108 S2 2635.0000 48.90
80 N2 3275.0000 358.30
43 K1 3481.0000 204.30
150 M4 3661.0000 82.20
28 O1 2874.0000 209.20
184 M6 3884.0000 138.80
134 MK3 4096.0000 97.70
160 S4 3603.0000 258.50
146 MN4 4925.0000 192.70
83 NU2 2428.0000 351.20
197 S6 4315.0000 228.90
76 MU2 2168.0000 10.90
75 2N2 2165.0000 335.00
Data Format B-15 ISER.INP for ISICE = 1
C ** PROJECT NAME, ISER.INP TIME SERIES FILE
C ** FILE ISER.INP - EXTERNALLY SPECIFIED ICE COVER
C ** CONTROL AND TIME SERIES DATA REPEATING NISER TIMES.
C ** HEADER: MISER(NISER), TCISER(NISER),TAISER(NISER),RMULADJC,RMULADJT
C ** MISER = NUMBER OF DATA, TCISER=TIME CONVERSION TO SEC, TAISER=ADDITIVE TIME ADJ
C **
4 86400 0 1 0
240.001 0.3500
240.010 0.5500
240.020 0.7500
240.030 0.6000
6 86400 0 1 0
20.000 0.0000
238.000 0.4000
252.000 0.5700
283.000 0.7200
290.000 0.5500
320.000 0.3400
Data Format B-16 ICEMAP.INP for ISICE = 1
C ** , icemap.inp , Ice time series weightings for each cell and NISER Series
C **
C **
C I J Weighting Fraction by Series
1
5113.000 5478.000
2 107 3 0.000159 0.999672 0.000170
3 108 3 0.000159 0.999671 0.000170
4 109 3 0.000159 0.999671 0.000170
5 110 3 0.000160 0.999670 0.000170
6 107 4 0.000231 0.999520 0.000249
7 108 4 0.000232 0.999519 0.000249
8 109 4 0.000232 0.999518 0.000250
9 110 4 0.000233 0.999517 0.000250
10 107 5 0.000313 0.999346 0.000341
11 108 5 0.000315 0.999344 0.000341
12 109 5 0.000316 0.999342 0.000342
13 110 5 0.000317 0.999340 0.000343
14 107 6 0.000413 0.999135 0.000453
Data Format B-17 ISTAT.INP for ISICE = 2
C ** ISTAT FILE
C ** TIME SERIES ON THE STATUS OF ICE ON/OFF VIA ICECOVER
C ** FIRST DATA LINE: MISER(N),TCISER(N),TAISER(N),N=1(only one)
C ** NEXT DATA LINES: TISER(M,N),RICECOVS(M,N), M=1:MISER
C ** TISER: TIME, RICECOVS = 1: ON/0:OFF
5 86400 0
0.000 0.0000
240.000 1.0000
242.000 0.0000
243.000 1.0000
300.000 0.0000
Data Format B-18 ICE.INP for ISICE = 3 & 4
* ICE THICKNESS INITIAL CONDITIONS
* I J THICKNESS[m]
3 207 0.300
3 208 0.300
3 209 0.300
3 210 0.300
3 211 0.300
3 212 0.300
4 207 0.300
4 208 0.300
4 209 0.300
4 210 0.300
4 211 0.300
4 212 0.300
5 207 0.300
5 208 0.300
Data Format B-19 Windmap
C ** WIND MAP FILE GENERATED BY EE, Ver=82
C ** NMAP
C ** BEGTIME ENDTIME (EFM(NS),NS=1,NSER)
C ** I, J, (WNDWHT(L,N),N=1,NSER)
3
5113.000 5140.000 1.000 1.000 1.000
107 3 0.00016 0.99968 0.00017
108 3 0.00016 0.99968 0.00017
109 3 0.00016 0.99967 0.00017
110 3 0.00016 0.99967 0.00017
107 4 0.00022 0.99953 0.00024
108 4 0.00023 0.99953 0.00024
109 4 0.00023 0.99953 0.00025
110 4 0.00023 0.99952 0.00025
107 5 0.00030 0.99937 0.00033
108 5 0.00031 0.99936 0.00033
109 5 0.00031 0.99936 0.00033
Data Format B-20 East West Connectors
C FILE MAPPGEW.INP PROVIDES INFORMATION FOR MAKING MANUAL GRID CONNECTIONS
C IN THE EAST-WEST (I+1 AND I-1) DIRECTION
C
C NPEWBP = NUMBER OF EAST-WEST CONNECTIONS
C IWPEW,JWPEW = I,J INDICES OF THE CELL CONNECTED AT THE WEST FACE
C IEPEW,JEPEW = I,J INDICES OF THE CORRESPONDING CELL CONNECTED AT THE EAST FACE
C
C IWPEW JWPEW IEPEW JEPEW (REPEATED NPEWBP TIMES)
9
55 77 11 19
55 76 11 20
55 75 11 21
55 74 11 22
55 73 11 23
55 72 11 24
55 71 11 25
55 70 11 26
55 69 11 27
Data Format B-21 SEDZLJ Input Files: BED.SDF
# VAR_BED Bedload Nequil LAYMAX ISEDTIME IMORPH IFWAVE MAXDEPLIM#
1 1 0 7 1 0 0 1.0
# ITBM NSICM Array Parameters #
8 8
# ZBSKIN (>0 sets Zo in [um]) TAUCONST [dynes/cm^2] (> 0 to set constant) ISSLOPE #
10.0 0.0 0
# D50 of Size Class D50(K) [um] #
10.0 22.0 222.0 375.0 750.0 4000.0 22.0 222.0
# Critical Shear for Erosion TAUCRS(K) [dynes/cm^2] #
1.0 2.2 1.6 2.4 3.8 30.8 2.2 1.6
# Critical Shear for Suspension TCRDPS(K) [dynes/cm^2] #
1.0 2.2 2.4 3.5 12.5 98.8 2.2 2.4
# Sediment Bed Size (um) Tables #
2.0 222.0 432.0 1020.0 2400.0 2600.0 3360.0 6000.0 8520.0
# Critical Shear for Erosion of Bed Surface [dynes/cm^2] #
0.50 2.27 2.96 4.17 5.88 6.07 6.72 8.48 9.75
# Erosion rates for active and deposited Layers [cm/s] #
1.00E-09 5.97E-05 5.97E-04 5.96E-03 5.95E-02 5.94E-01 5.94E+00 5.93E+01 ! 2 Micron
1.00E-09 5.97E-05 5.97E-04 5.96E-03 5.95E-02 5.94E-01 5.94E+00 5.93E+01 ! 222 Micron
1.00E-09 3.65E-04 2.16E-03 1.27E-02 7.49E-02 4.42E-01 2.61E+00 1.54E+01 ! 432 Micron
1.00E-09 2.01E-04 1.14E-03 6.51E-03 3.71E-02 2.11E-01 1.20E+00 6.85E+00 ! 1020 Micron
1.00E-09 1.12E-05 8.40E-05 6.28E-04 4.70E-03 3.51E-02 2.63E-01 1.96E+00 ! 2400 Micron
1.00E-09 7.94E-06 6.01E-05 4.55E-04 3.45E-03 2.61E-02 1.98E-01 1.50E+00 ! 2600 Micron
1.00E-09 2.11E-06 1.67E-05 1.31E-04 1.04E-03 8.17E-03 6.44E-02 5.08E-01 ! 3360 Micron
1.00E-09 2.03E-08 1.67E-07 1.44E-06 1.24E-05 1.07E-04 9.28E-04 8.02E-03 ! 6000 Micron
1.00E-09 1.19E-09 2.75E-09 1.69E-08 1.47E-07 1.33E-06 1.22E-05 1.11E-04 ! 8250 micron
Data Format B-22 SEDZLJ Input Files: ERATE.SDF
# Layer Thicknesses #
0.00 0.00 15.00 15.00 15.00 15.00 15.00
# Active layer thickness multiplier
2.0
# Core 1 - Riverine Sediments - Critical Shear Stress (dynes/cm^2) #
3.0 3.0 3.0 3.5 4.0 5.0 999.0
# Bulk Density (g/cm^3) #
1.35 1.40 1.45 1.50 1.55 1.60 1.60
# Water and sediment density (g/cm^3) #
1.0 2.65
# Particle Size Distribution #
13. 57. 24. 5. 1. 0. 0. 0.
13. 57. 24. 5. 1. 0. 0. 0.
13. 57. 24. 5. 1. 0. 0. 0.
13. 57. 24. 5. 1. 0. 0. 0.
13. 57. 24. 5. 1. 0. 0. 0.
13. 57. 24. 5. 1. 0. 0. 0.
13. 57. 24. 5. 1. 0. 0. 0.
# Initial Bed Erosion Rates #
0.0
1.000E-09 1.000E-09 1.000E-09 1.000E-09 1.000E-09 1.000E-09 1.000E-09 1.000E-09 1.000E-09 1.000E-09
2.0
2.460E-09 2.460E-09 2.460E-09 1.706E-04 8.020E-05 2.260E-05 3.700E-09 3.700E-09 3.700E-09 3.700E-09
4.0
1.460E-03 1.460E-03 1.460E-03 5.790E-04 2.120E-04 7.980E-05 7.660E-08 7.660E-08 7.660E-08 7.660E-08
8.0
8.680E-03 8.680E-03 8.680E-03 1.910E-03 5.580E-04 2.820E-04 1.580E-06 1.580E-06 1.580E-06 1.580E-06
16.0
5.150E-02 5.150E-02 5.150E-02 6.280E-03 1.470E-03 9.950E-04 3.280E-05 3.280E-05 3.280E-05 3.280E-05
32.0
3.060E-01 3.060E-01 3.060E-01 2.070E-02 3.890E-03 3.510E-03 6.770E-04 6.770E-04 6.770E-04 6.770E-04
64.0
1.820E+00 1.820E+00 1.820E+00 6.820E-02 1.030E-02 1.240E-02 1.400E-02 1.400E-02 1.400E-02 1.400E-02
128.0
1.080E+01 1.080E+01 1.080E+01 2.250E-01 2.710E-02 4.380E-02 2.900E-01 2.900E-01 2.900E-01 2.900E-01
Data Format B-23 SEDZLJ Input Files: ENSIGHT.SDF
#
C Input file for Ensight output
C values of 1 turns on the variable and 0 turns off the variable
C 1 U - X velocity
C 2 V - Y velocity
C 3 TAU - Shear Stress on active layer
C 4 D50 - Averaged particle size
C 5 CBL - Bedload concentration
C 6 SED - Suspended sediment concentration
C 7 CHC - cyanobacteria
C 8 CHG - diatom algae
C 9 CHD - green algae
C 10 ROC - refractory particulate organic carbon
C 11 LOC - labile particulate organic carbon
C 12 DOC - dissolved organic carbon
C 13 ROP - refractory particulate organic phosphorus
C 14 LOP - labile particulate organic phosphorus
C 15 DOP - dissolved organic phosphorus
C 16 P4D - total phosphate
C 17 RON - refractory particulate organic nitrogen
C 18 LON - labile particulate organic nitrogen
C 19 DON - dissolved organic nitrogen
C 20 NHX - ammonia nitrogen
C 21 NOX - nitrate nitrogen
C 22 SUU - particulate biogenic silica
C 23 SAA - dissolved available silica
C 24 COD - chemical oxygen demand
C 25 DOX - dissolved oxygen
C 26 TAM - total active metal
C 27 FCB - fecal coliform bacteria
C 28 CO2 - Dissolved Carbon Dioxide
C 29 MAC - macroalgae
C 30 HEAT- Heat Content
C 31 TEMP- Temperature (K)
C U V TAU D50 CBL SED
C CHC CHD CHG ROC LOC DOC ROP LOP DOP P4D RON LON DON
C NHX NOX SUU SAA COD DOX TAM FCB CO2 MAC HEAT TEMP
1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
Data Format B-24 SEDZLJ Input Files: CORE_FIELD.SDF
9 ! Number of Sedflume cores
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 8 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Data Format B-25 Atmospheric Forcing Files: ASER.INP
C aser.inp file, in free format across line, repeats naser=1 times, lake okeechobee
C
C ATMOSPHERIC FORCING FILE, USE WITH 28 JULY 96 AND LATER VERSIONS OF EFDC
C
C MASER =NUMBER OF TIME DATA POINTS
C TCASER =DATA TIME UNIT CONVERSION TO SECONDS
C TAASER =ADDITIVE ADJUSTMENT OF TIME VALUES SAME UNITS AS INPUT TIMES
C IRELH =0 VALUE TWET COLUMN VALUE IS TWET, =1 VALUE IS RELATIVE HUMIDITY
C RAINCVT =CONVERTS RAIN TO UNITS OF M/SEC,inch/hour=0.0254 m/3600 s=7.0556E-6m/s
C EVAPCVT =CONVERTS EVAP TO UNITS OF M/SEC, IF EVAPCVT<0 EVAP IS INTERNALLY COMPUTED, *abs(evapcvt) in calqvs.for for TestWQ, Ji, 9/22/02
C SOLRCVT =CONVERTS SOLAR SW RADIATION TO JOULES/SQ METER
C CLDCVT =MULTIPLIER FOR ADJUSTING CLOUD COVER
C IASWRAD =O DISTRIBUTE SW SOL RAD OVER WATER COL AND INTO BED, =1 ALL TO SURF LAYER
C REVC =1000*EVAPORATIVE TRANSFER COEF, REVC<0 USE WIND SPD DEPD DRAG COEF
C RCHC =1000*CONVECTIVE HEAT TRANSFER COEF, REVC<0 USE WIND SPD DEPD DRAG COEF
C SWRATNF =FAST SCALE SOLAR SW RADIATION ATTENUATION COEFFCIENT 1./METERS
C SWRATNS =SLOW SCALE SOLAR SW RADIATION ATTENUATION COEFFCIENT 1./METERS
C FSWRATF =FRACTION OF SOLSR SW RADIATION ATTENUATED FAST 0<FSWRATF<1
C DABEDT =DEPTH OR THICKNESS OF ACTIVE BED TEMPERATURE LAYER, METERS
C TBEDIT =INITIAL BED TEMPERATURE
C HTBED1 =CONVECTIVE HT COEFFCIENT BETWEEN BED AND BOTTOM WATER LAYER NO DIM
C HTBED2 =HEAT TRANS COEFFCIENT BETWEEN BED AND BOTTOM WATER LAYER M/SEC
C PATM =ATM PRESS MILLIBAR
C TDRY/TEQ =DRY ATM TEMP ISOPT(2)=1 OR EQUIL TEMP ISOPT(2)=2
C TWET/RELH =WET BULB ATM TEMP IRELH=0, RELATIVE HUMIDITY IRELH=1
C RAIN =RAIN FALL RATE LENGTH/TIME
C EVAP =EVAPORATION RATE IS EVAPCVT>0.
C SOLSWR =SOLAR SHORT WAVE RADIATION AT WATER SURFACE ENERGY FLUX/UNIT AREA
C CLOUD =FRATIONAL CLOUD COVER
C **
C **
C **
EE EFDC_DSI_VER: 7.301
C **
C ** TASER(D) PATM(MB) TDRY(C) TWET(C) RAIN(M/D) EVAP(M/D) SOLSWR(W/M2) CLOUD
C **
C ** MASER TCASER TAASER IRELH RAINCVT EVAPCVT SOLRCVT CLDCVT ! *** ID
9547 86400.0 0.0 1 1.1574E-05 1.1574E-05 1.0 1.0 ! ASER_1
0.000 1012.0000 22.2720 0.8550 0.0000 0.0000 0.0000 0.1000
0.062 1012.0000 21.8340 0.8550 0.0000 0.0000 0.0000 0.1000
0.104 1012.0000 21.6670 0.8480 0.0000 0.0000 0.0000 0.1000
0.140 1012.0000 21.5670 0.8490 0.0000 0.0000 0.0000 0.1000
0.188 1012.0000 21.4980 0.8460 0.0000 0.0000 0.0000 0.1000
0.229 1012.0000 21.4970 0.8540 0.0000 0.0000 0.0000 0.1000
0.266 1012.0000 21.3850 0.8560 0.0000 0.0000 15.6000 0.1000
0.312 1012.0000 21.6400 0.8180 0.0000 0.0000 160.2000 0.1000
0.354 1012.0000 21.6970 0.7980 0.0000 0.0000 259.8000 0.1000
0.391 1012.0000 21.9650 0.8000 0.0000 0.0000 375.6000 0.1000
0.438 1012.0000 22.6700 0.7850 0.0000 0.0000 478.8000 0.1000
0.479 1012.0000 23.6500 0.7480 0.0000 0.0000 516.6000 0.1000
0.516 1012.0000 24.2000 0.7120 0.0000 0.0000 529.2000 0.1000
Data Format B-26 Time and Spatial Varying Fields (TVF)
ASCII File Format for TVF
The ASCII File Format of TVF data contains two parts, firstly the file header and then the actual data. Example of an ASCII File Format:
* TIME VARIABLE FORCING FIELD DATA - Version: XX * Project Title: XXX * * INPT: Input format = 0: ((VALUES(T,N,L,K), K=1,KC), L=2,LA), N=1,NC) * = 1: L,I,J, (((VALUES(T,N,L,K), K=1,KC), L=1,NL), N=1,NC) * NT: Number of time steps * NC: Number of components (e.g., 1 for pressure, 2 for wind-X, wind-Y) * NL: Number of cells (Should = LA - 1 OR LC - 2) * NK: Number of layers (Default = 1) * ITRP: Interpolation between time steps (0 = No interp., 1 = Linear interp.) * IUPD: Flag to direct how to update the current cell value with the field value * 0: Cell value will be replaced by the field value * 1: Cell value will be added with the field value * 2: Cell value will be the min. of the current value and the field value * 3: Cell value will be the max. of the current value and the field value * IDST: Data operation after interpolation * 0: Cell value = field value * 1: Cell value = field value multiplies cell area * NODAT: No data. No update for cells with this field value * TSCL: Time conversion factor to seconds (should > 0, default 86400) * TSHF: Time shift (the same units as times, default 0) * VSCL: Value conversion factor to model units (should > 0, default 1) * VSHF: Value shift (the same units as values, default 0) * YY MM DD: Base date * * INPT NT NC NL NK ITRP IUPD IDST NODAT TSCL TSHF VSCL VSHF YY MM DD 0 721 1 3372 1 1 0 0 -999 86400 0 1 0 2005 01 01 234.875000 3372 1.00969e+3 1.00969e+3 1.00969e+3 1.00969e+3 1.00969e+3 1.00969e+3 1.00968e+3 1.00968e+3 1.00968e+3 1.00968e+3 1.00968e+3 1.00968e+3 1.00968e+3 1.00967e+3 1.00967e+3 1.00967e+3 1.00967e+3 1.00967e+3 1.00967e+3 1.00967e+3 1.00966e+3 1.00966e+3 1.00966e+3 1.00966e+3 1.00966e+3 1.00966e+3 1.00966e+3 1.00966e+3 1.00965e+3 1.00965e+3 … |
a) ASCII File Header for TVF
The file header may start with comment lines which begin with an asterisk for descriptive information. The file header ends with one data line contains information on the TVF data as follows:
Explanation of the header fields:
Table 1: Description of the data field in TVF file header
INPT | Input format: INPT = 0: The number of values and its order for each component the field in each time step is the same as grid cells. INPT = 1: The number of values each component the field in each time step can be less than the number of the grid cells but the data lines should have cell indices (NL, IC, JC) in front of data values. |
NT | Number of time steps. |
NC | Number of components. NC=1 for bathymetry, bottom roughness, barometric pressure, etc. NC=2 for wind fields (X and Y components of wind speed). |
NL | Number of grid cells. This is for QC to ensure the data matches the model grid. |
NK | number of vertical layers (NK = 1 for this version). |
ITRP | Interpolation option: ITRP = 0: no interpolation, direct field applied at each time step. ITRP = 1: linear interpolation between time steps. |
IUPD | Flag to direct EFDC on how to update the current cell value with the reading value. IUPD = 0: The cell value will be replaced by the reading value. IUPD = 1: The cell value will be added with the reading value. IUPD = 2: The cell value will be the min. of the current cell value and the reading value. IUPD = 3: The cell value will be the max. of the current cell value and the reading value. |
IDST | Specific option for data operation after interpolation IDST = 0: Cell value = field value IDST = 1: Cell value = field value multiplies cell area |
TSCL | Conversion factor to convert time values to seconds (default 86400) |
TSHF | Time offset having the same unit as time values (default 0) |
VSCL | Conversion factor to convert the field values to the same units as in EFDC (default 1) |
VSHF | Value offset having the same unit as the field values (default 0) |
NODAT | No data value. Cells having this value will not change/not be updated by reading values. |
YY | The year of the base date |
MM | The month of the base date |
DD | The day of the base date |
b) ASCII File Data Blocks for TVF
Each data block for one time step begins with the time value (in Julian days from the base date) and a number of grid cells to which the data will be applied (should be the same as NL for INPT = 0).
For INPT = 0, the number of the data values in each block should be NC × NL × NK values and the FORTRAN command to read the data is as follows
READ(UNIT) TIMES(T), NL READ(UNIT) (((VALUES(T,N,L,K), K=1,NK), L=2,LA), N=1,NC) |
For INPT = 1, the number of the data values in each block can vary and the FORTRAN command to read the data is as follows
READ(UNIT) TIMES(T), NLA READ(UNIT) L,I,J,(((VALUES(T,N,L,K), K=1, NK), LL=1, NLA), N=1,NC) |
Binary File Format for TVF
The values and their orders in the binary file format are the same as the ASCII file format except it has no comments but a specific signature for this file format.
a) Binary File Header
The file header has a length of 80 bytes with the data fields are as the table bellows:
Description of the data field in a binary TVF file header
Byte Offset | Length (bytes) | Data type | Description |
0 | 4 | Integer | SIGNATURE (integer value 826559558 or hexadecimal value 0x31444C46 or characters "FLD1") |
4 | 4 | Integer | INPT |
8 | 4 | Integer | NT |
12 | 4 | Integer | NC |
16 | 4 | Integer | NL |
20 | 4 | Integer | NK |
24 | 4 | Integer | ITRP |
28 | 4 | Integer | IUPD |
32 | 4 | Integer | IDST |
36 | 4 | Float | NODAT |
40 | 4 | Float | TSCL |
44 | 4 | Float | TSHF |
48 | 4 | Float | VSCL |
52 | 4 | Float | VSHF |
56 | 4 | Integer | YY |
60 | 4 | Integer | MM |
64 | 4 | Integer | DD |
68 | 4 | Integer | Reserved |
72 | 4 | Integer | Reserved |
76 | 4 | Integer | Reserved |
b) Binary Data Blocks for TVF
The data blocks of the binary format contain values the same as the ASCII file format.
For INPT = 0, the number of the data values in each block should be NC × LC × NK values and the FORTRAN command to read the data is as follows
Byte Offset | Length (bytes) | Data type | Description |
0 | 8 | Double | Time |
8 | 4 | Integer | Number of grid cells (NL) |
12 | 4*NK*NL*NC | Single | Values |
For INPT = 1, the number of the data values in each block can vary and the FORTRAN command to read the data is as follows
Byte Offset | Length (bytes) | Data type | Description |
0 | 8 | Double | Time |
8 | 4 | Integer | Number of grid cells having data in the block (NLA) |
12 | 4 | Integer | Cell index L |
16 | 4 | Integer | Cell index I |
20 | 4 | Integer | Cell index J |
24 | 4*NK*NLA*NC | Single | Values |
Data series from an individual cell prior to EE generating field file.
C #time steps, series ID,
C time step, value.
74496 L001
0.00000000000 4.785
0.01041666666 4.785
0.02083333334 4.785
0.03125000000 4.785
0.04166666666 4.785
0.05208333334 4.785
0.06250000000 4.785
This is the ASCII *FLD.INP files that EE generates from this data.
* ITYPE NT NC LC NK ITOPT IUPDATE IFLAG NODATA
0 2413 1 2121 1 0 0 0 -999
237.000000
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992 1009.992
c) Examples of Code Used for Writing the Binary TVF File
FORTRAN code
!**************************************************************************** ! ! PROGRAM: WriteField ! ! PURPOSE: Example code to write the TVF (Time Varying Field) binary format ! used with EFDC+/EFDC_Explorer 10. ! !**************************************************************************** program WriteField implicit none ! Variables integer :: signature, INPT, NT, NC, NL, NK, ITRP, IUPD, IDST, YY, MM, DD real*4 :: NODAT real*8, allocatable :: times(:) real*4, allocatable :: values(:,:,:,:) character*80 :: fileName integer :: i,j,k,l,n, intVal
INPT = 0 ! Input format (0 = all cells) NT = 3 ! NUMBER OF TIME STEPS NC = 1 ! Number of components NL = 29632 ! Number of cells (active cell count = LA - 1 = LC - 2) NK = 1 ! Number of layers ITRP = 1 ! Interpolation between time steps (0 = No, 1 = Linear) IUPD = 0 ! Update option (0 = replace, 1 = add, 2 = min, 3 = max) IDST = 1 ! Distribution option (0 = flux, 1 = multiplied by cell area) NODAT = -999. ! No data. Ignore updating for cells with this value TSCL = 86400. ! Time conversion factor to seconds (default 86400) TSHF = 0. ! Time shift, same unit as time values (default 0) VSCL = 1. ! Value conversion factor (default 1) VSHF = 0. ! Value offset, same unit as field values (default 0) YY=2005 ! Base date's year MM=9 ! Base date's month DD=30 ! Base date's day ! Test data allocate(times(NT), values(NT,NC,NL,NK)) fileName = 'evapfld.fld' # Write binary format signature = 826559558 ! 'FLD1' intVal = 0 ! Reserved open(1,file=fileName, form='binary') write(1) signature write(1) INPT write(1) NT write(1) NC write(1) NL write(1) NK write(1) ITRP write(1) IUPD write(1) IDST write(1) NODAT write(1) TSCL write(1) TSHF write(1) VSCL write(1) VSHF write(1) YY write(1) MM write(1) DD write(1) intVal write(1) intVal write(1) intVal
do i=1,NT write(1) times(i) if (INPT == 0) then ! *** write all grid cells write(1) NL write(1) (((values(i,j,l,k), k=1,NK), l=1,NL), j=1,NC) else ! *** write only specific cells (NLA <= NL) !write(1) NLA !do n=1,NLA ! write(1) cell(n).L ! write(1) cell(n).I ! write(1) cell(n).J ! write(1) ((values(i,j,n,k), k=1,NK), j=1,NC) !enddo endif enddo close(1) print *, 'Hello World' deallocate(times, values)
end program WriteField |
MATLAB code
INPT = 0; % Input format (0 = all cells) NT = 3; % Number of time steps NC = 1; % Number of components (e.g., 2 for wind-X, wind-Y) NL = 29632; % Number of cells (active cell count = LA - 1 = LC - 2) NK = 1; % Number of layers ITRP = 1; % Interpolation between time steps (0 = No., 1 = Linear.) IUPD = 0; % Update option (0 = replace, 1 = add, 2 = min, 3 = max) IDST = 1; % Distribution option (0 = flux, 1 = multiplied by cell area) NODAT = -999; % No data. Ignore updating for cells with this value TSCL = 86400; % Time conversion factor to seconds (default 86400) TSHF = 0; % Time shift, same unit as time values (default 0) VSCL = 1; % Value conversion factor (default 1) VSHF = 0; % Value offset, same unit as field values (default 0) YY = 2005; % Base date's year MM = 9; % Base date's month DD = 30; % Base date's day %% Test data times = [1, 2, 3]; values = zeros(NK,NL,NC,NT); fileName = 'evapfld.fld'; % Write binary format signature = 826559558; % 'FLD1' intVal = 0; % Reserved fo = fopen(fileName,'w'); fwrite(fo,signature,'uint32'); fwrite(fo,INPT,'uint32'); fwrite(fo,NT,'uint32'); fwrite(fo,NC,'uint32'); fwrite(fo,NL,'uint32'); fwrite(fo,NK,'uint32'); fwrite(fo,ITRP,'uint32'); fwrite(fo,IUPD,'uint32'); fwrite(fo,IDST,'uint32'); fwrite(fo,NODAT,'float32'); fwrite(fo,TSCL,'float32'); fwrite(fo,TSHF,'float32'); fwrite(fo,VSCL,'float32'); fwrite(fo,VSHF,'float32'); fwrite(fo,YY,'uint32'); fwrite(fo,MM,'uint32'); fwrite(fo,DD,'uint32'); fwrite(fo,intVal,'uint32'); fwrite(fo,intVal,'uint32'); fwrite(fo,intVal,'uint32'); for i=1:NT, fwrite(fo,times(i),'double'); if (INPT == 0), % *** write all grid cells fwrite(fo,NL,'uint32'); fwrite(fo,values(:,:,:,i),'float32'); % for j=1:NC, % for n=1:NLA, % for k=1:NK, % fwrite(fo,values(k,n,j,i),'float32'); % end; % end; % end; else % *** write only specific cells (NLA <= NL) % fwrite(fo,NLA,'uint32'); % for n=1:NLA, % fwrite(fo,cell(n).L,'uint32'); % fwrite(fo,cell(n).I,'uint32'); % fwrite(fo,cell(n).J,'uint32'); % for j=1:NC, % for k=1:NK, % fwrite(fo,values(k,n,j,i),'float32'); % end; % end; % end; end; end; fclose(fo); |
Python code
import numpy as np from array import array INPT = 0 # Input format (0 = all cells) NT = 3 # Number of time steps NC = 1 # Number of components (e.g., 2 for wind-X, wind-Y) NL = 29632 # Number of cells (active cell count = LA - 1 = LC - 2) NK = 1 # Number of layers ITRP = 1 # Interpolation between time steps (0 = No, 1 = Linear) IUPD = 0 # Update option (0 = replace, 1 = add, 2 = min, 3 = max) IDST = 1 # Distribution option (0 = flux, 1 = multiplied by cell area) NODAT = -999 # No data. Ignore updating for cells with this value TSCL = 86400 # Time conversion factor to seconds (default 86400) TSHF = 0 # Time shift, same unit as time values (default 0) VSCL = 1 # Value conversion factor (default 1) VSHF = 0 # Value offset, same unit as field values (default 0) YY=2005 # Base date's year MM=9 # Base date's month DD=30 # Base date's day # Test data times = [1, 2, 3] values = np.zeros(NC*NL*NK) fileName = 'evapfld.fld' # Write binary format fo = open(fileName, 'wb') signature = bytearray([70, 76, 68, 49]) intVal = 0 % Reserved fo.write(signature) fo.write(np.uint32(INPT)) fo.write(np.uint32(NT)) fo.write(np.uint32(NC)) fo.write(np.uint32(NL)) fo.write(np.uint32(NK)) fo.write(np.uint32(ITRP)) fo.write(np.uint32(IUPD)) fo.write(np.uint32(IDST)) fo.write(np.float32(NODAT)) fo.write(np.float32(TSCL)) fo.write(np.float32(TSHF)) fo.write(np.float32(VSCL)) fo.write(np.float32(VSHF)) fo.write(np.uint32(YY)) fo.write(np.uint32(MM)) fo.write(np.uint32(DD)) fo.write(np.uint32(intVal)) fo.write(np.uint32(intVal)) fo.write(np.uint32(intVal)) for t in range(0,NT): fo.write(np.float64(times[t])) fo.write(np.uint32(NL)) #for n in range(0,NC): # for i in range(0,NL): # for k in range(0,NK): # fo.write(np.float32(values[n,i,k])) fo.write(np.float32(values)) fo.close() |
C# code
public void WriteFileBinary(string workPath, string fileName) { int Signature = 0x31444C46, intVal = 0; fileName = Path.ChangeExtension(fileName, ".fld"); string filePath = Path.Combine(workPath, fileName.ToLower()); using (BinaryWriter fo = new BinaryWriter(File.Open(filePath, FileMode.Create))) { fo.Write(Signature); fo.Write(INPT); fo.Write(NT); fo.Write(NC); fo.Write(NL); fo.Write(NK); fo.Write(ITRP); fo.Write(IUPD); fo.Write(IDST); fo.Write(NODAT); fo.Write(TSCL); fo.Write(TSHF); fo.Write(VSCL); fo.Write(VSHF); fo.Write((int)BaseDate.Year); fo.Write((int)BaseDate.Month); fo.Write((int)BaseDate.Day); fo.Write((int)intVal); fo.Write((int)intVal); fo.Write((int)intVal); for (int i = 0; i < NT; i++) { fo.Write(Times[i]); if (INPT == 0) { fo.Write(NL); for (int n = 0; n < NC; n++) { for (int j = 0; j < NL; j++) { for (int k = 0; k < NK; k++) { fo.Write(Values[i][n][j][k]); } } } } else { int cellCnt = 0; for (int j = 0; j < NL; j++) { bool hasValue = false; for (int n = 0; n < NC; n++) { for (int k = 0; k < NK; k++) { if (!float.IsNaN(Values[i][n][j][k]) && { hasValue = true; break; } } if (hasValue) { break; } } if (hasValue) { cellCnt++; } } fo.Write(cellCnt); for (int j = 0; j < NL; j++) { Cell cell = Model.Grid.Cells[j]; fo.Write(cell.ID); fo.Write(cell.Col); fo.Write(cell.Row); for (int n = 0; n < NC; n++) { for (int k = 0; k < NK; k++) { fo.Write(!float.IsNaN(Values[i][n][j][k]) ? } } } } } fo.Flush(); } } |