-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path2_Model.R
53 lines (51 loc) · 1.85 KB
/
2_Model.R
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
source('GetReady.R')
outpath=file.path('output', paste0(prjname,'.out') )
inpath = file.path('input', prjname)
shud.env(prjname, inpath, outpath)
go.calib <- function(){
cfg.calib = shud.calib()
cfg.calib$TS_PRCP = 1
names(cfg.calib)
# [1] "GEOL_KSATH" "GEOL_KSATV" "GEOL_KMACSATH" "GEOL_MACVF" "GEOL_THETAS"
# [6] "GEOL_THETAR" "GEOL_DMAC" "SOIL_KINF" "SOIL_KMACSATV" "SOIL_DINF"
# [11] "SOIL_ALPHA" "SOIL_BETA" "SOIL_MACHF" "LC_VEGFRAC" "LC_ALBEDO"
# [16] "LC_ROUGH" "LC_DROOT" "LC_ISMAX" "LC_IMPAF" "LC_SOILDGD"
# [21] "TS_PRCP" "TS_LAI" "TS_SFCTMP+" "ET_ETP" "ET_IC"
# [26] "ET_TR" "ET_SOIL" "RIV_ROUGH" "RIV_KH" "RIV_SINU"
# [31] "RIV_CWR" "RIV_BEDTHICK" "RIV_BSLOPE+" "RIV_DPTH+" "RIV_WDTH+"
# [36] "IC_GW+" "IC_RIV+" "AQ_DEPTH+"
cfg.calib['ET_ETP']=0
cfg.calib['ET_TR']=0
cfg.calib['ET_IC']=0
cfg.calib['ET_SOIL']=0
# cfg.calib['KSATH']=0
# cfg.calib['KSATV']=0
# cfg.calib['KINF']=0
# cfg.calib['KMACSATH']=000
# cfg.calib['KMACSATV']=0
# cfg.calib['RIV_KH']=0
write.config(cfg.calib, file=shud.filein()['md.calib'], backup = F )
}
go.para<- function(){
cfg.para=shud.para()
print(cfg.para)
dt.model = 1
dt.out = max(dt.model, 1)
cfg.para['MAX_SOLVER_STEP'] = dt.model
cfg.para['END'] = 1
id=which(grepl('DT_', names(cfg.para)))
cfg.para[id]=dt.out;
write.config(cfg.para, file=shud.filein()['md.para'], backup = F )
}
go.init<-function(){
x=readic()
x$minit
x$rinit = x$rinit *0
write.ic(x, file = shud.filein()['md.ic'], backup=FALSE)
}
go.calib()
go.para()
go.init()
file.copy(from='/Users/leleshu/Dropbox/SHUD/github/SHUD/Build/Products/Debug/shud',
to='./shud', overwrite=T)
system(paste('./shud ', prjname), wait = TRUE, ignore.stdout = F)