MESH-Model / MESH-Dev

This repository contains the official MESH development code, which is the basis for the 'tags' listed under the MESH-Releases repository. The same tags are listed under this repository. Legacy branches and utilities have also been ported from the former SVN (Subversion) repository. Future developments must create 'forks' from this repository.
Other
2 stars 3 forks source link

WR_Runoff and WR_Recharge #4

Open mee067 opened 1 year ago

mee067 commented 1 year ago

I ran MESH using RUNMODE runrte saving WR_Runoff and WR_Recharge (using OUTFILESFLAG) as csv, r2c, and nc format at hourly time step to be able to run later in routing mode only (RUNMODE nolss runrte). There are a few issues: 1 - The resulting outputs had to be renamed from RFF and RCHG to WR_Runoff and WR_Recharge to be read by MESH 2- MESH still read the met forcing files 3- MESH was only able to read WR_Runoff and WR_Recharge in nc format, both csv and r2c crashed giving memory segmentation faults, aren't these formats supported for input? 4- BASEFLOWFLAG wf_lzs was causing crashes when left on when in run in routing mode only - should give a warning instead of crashing. 5- Streamflow results coming out from the routing-only run (using nc WR_Runoff and WR_Recharge) are almost double those of the original run (CLASS + RTE). Is there a unit problem, time step problem, or maybe RFF includes RCHG and we need only RFF?

mee067 commented 1 year ago

WR_RUNOFF and WR_RECHARGE are outputted as depths in (mm) not rates (mm/s). If these are used to force the model in routing mode only (e.g. RUNMODE nolss runrte), the time step has to be set to 1 hour as they are hourly depths. This resolves #5 above. I added a warning to the MODELOUTFILESFLAG to that effect.

dprincz commented 1 year ago

You need to configure the BASIN* flags. The input files should be the same or an equivalent format as you used originally (e.g., nc if using nc). To create, enable OUTFILESFLAG with these fields specified in outputs_balance.txt

RFF     H                       r2c
RCHG    H                       r2c

To use:

BASINFORCINGFLAG         no_clim start_date=20020602
BASINRUNOFFFLAG          r2c
BASINRECHARGEFLAG        r2c
TIMESTEPFLAG          60
RUNMODE                  nolss runrte

I suggest turning off OUTFILESFLAG in that run, so as to not replace those files. Perhaps you're missing to change the model time-stepping to 60 minutes, which could be why you're getting double-values. If the files are named different, use the file name option on the respective BASIN* flag to tell it what file to look for, same for variable if it's named differently in nc format.

mee067 commented 1 year ago

Re the csv format (point #3), and in comparison to "asc" format, line 278 (for "csv") had this:

dim_names = (/DIM_NAME_M, DIM_NAME_T/)

while line 290 had this (for "asc"):

dim_names = (/DIM_NAME_N, DIM_NAME_T/)

Changing line 278 to use DIM_NAME_N seems to have solved the issue with csv. N seems to be used for grids; M seems to try to use tiles. The memory allocation statement on line 611 is used for the M case while we need to use 6012 for the N case (grids).

dprincz commented 1 year ago

This is by design. The CSV forcing format is specified to provide values by GRU, and should not change in the code. If your file contains output by grid, specify the asc format and provide the fname=field.csv (double-check what the field should be called) on BASIN* flag to point it to that particular file. N = grid, M = GRU, K = tile

mee067 commented 1 year ago
  1. What does it mean by GRU? Same across all grids?
  2. This is not documented anywhere, and is not in harmony with what is mentioned for OUTFILESFLAG. BASINFORCINGFLAG does not even mention "txt" or "asc" as possible input formats for forcing.
  3. "asc" is space delimited (actually for OUTFILESFLAG it is called "txt" - confusing) while csv is comma delimited. Will it ignore the delimiter?