respec / HSPsquared

Hydrologic Simulation Program Python (HSPsquared)
GNU Affero General Public License v3.0
43 stars 17 forks source link

specl: UVQUAN (parser and code) #107

Open rburghol opened 1 year ago

rburghol commented 1 year ago

Tasks

UCI

UCI Data Structure

image

UCI Examples

Example from HSPF_v12.2_manual

*** User-Defined Variable Quantity Lines
***                           addr
***                        <------>
*** kwd  varnam optyp  opn  vari  s1 s2 s3 tp multiply  lc ls ac as agfn ***
  <****> <----> <----> <-> <----><-><-><-><-><--------> <><-> <><-> <--> ***
  UVQUAN prec   PERLND   1 PREC             3                 DY  1 SUM

TEST13.UCI

From fortran HSPF base tests:

Hurricane Isabel

***Action Lines for INFEXP IF (precx1 > 6.000) THEN PERLND 1 3 INFEXP = 8.0000000 ELSE PERLND 1 3 INFEXP = 2.0000000 END IF



### hdf5 Data Model
- hdf5 Path: `/SPEC_ACTIONS/UVQUAN/table`
  - Column Names (see *DEF* below): UVQNAM, OPTYP, OPTNO, VNAME, CSUB1, CSUB2, CSUB3, ADDR, TYPCOD, UVQMUL, CTCODE1, TSTEP1, CTCODE2, TSTEP2, CTRAN

#### DEF: Table Definition
- NOT YET COMPLETE: this is from ACTIONS #105

| index|UVQNAM| OPTYP| OPTNO| VNAME| CSUB1| CSUB2| CSUB3| TYPCOD| UVQMUL| CTCODE1| TSTEP1| CTCODE2 | TSTEP2| CTRAN|
|-----:|:------|:------|:------|:-----|:--|:----|:--|:--|:--|:--|--:|:----|:--|:--|
| 0 | prec | PERLND | 1 | PREC  |   |   |    |  3   |  | | |  DY | 1 | SUM |

### Execution Code
- Fortran version [SUBROUTINE PSPACT in 12.2](https://github.com/respec/FORTRAN/blob/cb2cbf8ec09f11eb290b01fe7646295fcfcdbf1a/lib3.0/SRC/HSPF122/Specact.FOR#L2285)