Commit 596f5940 authored by Agrineer.org's avatar Agrineer.org

upgrade to WRF4.1 and ETo fix

parent b5aecde3
......@@ -30,6 +30,7 @@ RUN apt-get -y update \
cron \
curl \
emacs \
git \
iputils-ping \
net-tools \
openssh-client \
......@@ -91,19 +92,13 @@ WORKDIR /home/agrineer/wrf
# get UCAR-BSD License and place in /home/agrineer/wrf
RUN curl -SL https://ral.ucar.edu/sites/default/files/public/projects/ncar-docker-wrf/ucar-bsd-3-clause-license.pdf > UCAR-BSD-3-Clause-License.pdf
# get WRF source
RUN curl -SLO http://www2.mmm.ucar.edu/wrf/src/WRFV4.0.TAR.gz \
&& sha256sum -c checksums --ignore-missing \
&& tar xfz WRFV4.0.TAR.gz \
&& rm WRFV4.0.TAR.gz
# get current WRF source
RUN git clone https://github.com/wrf-model/WRF
# get WPS source
RUN curl -SLO http://www2.mmm.ucar.edu/wrf/src/WPSV4.0.TAR.gz \
&& sha256sum -c checksums --ignore-missing \
&& tar xfz WPSV4.0.TAR.gz \
&& rm WPSV4.0.TAR.gz
# get current WPS source
RUN git clone https://github.com/wrf-model/WPS
# get static geo files, WPS_GEOG
# get static geo files, WPS_GEOG (about 30-40 minutes)
RUN curl -SLO http://www2.mmm.ucar.edu/wrf/src/wps_files/geog_high_res_mandatory.tar.gz \
&& sha256sum -c checksums --ignore-missing \
&& tar xfvz geog_high_res_mandatory.tar.gz \
......@@ -112,23 +107,17 @@ RUN curl -SLO http://www2.mmm.ucar.edu/wrf/src/wps_files/geog_high_res_mandatory
# build WRF first
WORKDIR /home/agrineer/wrf/WRF
# modify ./Registry/Registry.EM_COMMON for
# additional data on ET and soil moisture
# these are not used in our calculations but for comparisons
RUN sed -i 's/state real potevp ij dyn_em 1 - r /state real potevp ij dyn_em 1 - rh/' ./Registry/Registry.EM_COMMON
RUN sed -i 's/state real MAVAIL ij misc 1 - r /state real MAVAIL ij misc 1 - rh/' ./Registry/Registry.EM_COMMON
RUN sed -i 's/state real SFCEVP ij misc 1 - r /state real SFCEVP ij misc 1 - rh/' ./Registry/Registry.EM_COMMON
# first modify Registry files to reduce output data
# NOTE: should you want the default output (about 2.4GB/domain)
# comment out the registry copy below
RUN cp -Rp Registry Registry.ORG && cp ../Registry/* Registry
# set up environment variables and build WRF
RUN cp ../run_wrf_configure .
RUN ./run_wrf_configure
RUN cp ../run_wrf_configure . && ./run_wrf_configure
# next build WPS
WORKDIR /home/agrineer/wrf/WPS
RUN cp ../run_wps_configure .
RUN ./run_wps_configure
RUN cp ../run_wps_configure . && ./run_wps_configure
# populate sector geo directories
WORKDIR /home/agrineer/wrf
......
Brief Description:
This tiny code constructs a huge [Docker container](https://www.docker.com) for implementing a [Weather, Research, and Forecast](http://www2.mmm.ucar.edu/wrf/users) (WRF) data generator for Agrineer.org's [Soil Moisture Estimator](https://agrineer.org/sme/sme.php) (SME) project.
The container allows for multi-core WRF application on an automated basis providing daily modeled weather data for the SME project.
This container allows for multi-core WRF application on an automated basis in order to provide daily modeled data for the SME project.
Please read contents below before building the container.
Requirements:
......@@ -15,10 +19,16 @@ Requirements:
- data capacity depends on maintenance practice.
- OS platform which supports Docker software.
- Time to construct: about 2 hours.
- Time to construct: about 2 hours, depending on number of sectors implemented.
License:
Gnu Public License 3.0 (GPLv3)
-------------------------------------------------
Changes since last release:
- Implementing WRF 4.1 version with parameters addressing wind (gravity wind drag and topographic effects).
- ETo calculation bug found and corrected. Previous version over-estimated the ETo. See the preliminary weather station comparsion results for more detail.
- Reduced WRF output from 2.4GB to 49MB per domain by tailoring Registry files. You can edit these to your needs.
-------------------------------------------------------------
......@@ -27,7 +37,7 @@ a non-container version by following the Docker commands step-by-step.
-----------------------------------------------------------------
NOTE: In this package, the agrineer and wrf directories are stubbed out with links and folders which get filled in as the container is constructed.
NOTE: The agrineer and wrf directories are stubbed out with links and folders which get filled in as the container is constructed.
-----------------------------------------------------------------
......@@ -69,8 +79,9 @@ Replace:
with your time zone. Look in /usr/share/zoneinfo to find your time zone.
You will need to restart the cron daemon once inside the container, see instructions below.
----------------------------------------------
All currently defined sectors are provided in wrf/sectors. You can construct the container faster by removing the sectors (directory) you are not interested in.
----------------------------------------------------------------
NOTE: All currently defined sectors are provided in wrf/sectors. You can construct the container faster by removing the sectors (directory) you are not interested in.
----------------------------------------------
Data delivery to the SME project:
......@@ -103,8 +114,9 @@ and invoke as needed to reclaim disk space.
-----------------------------------------------------------------
Build the container:
```bash
$ docker build -t mint19_wrf4.0 . | tee build.txt
$ docker build -t mint19_wrf4.1 . | tee build.txt
```
You can use any container tag (name) you like, almost. For example, something like "-t mymint19_b20181125:ver2" would say that it was built on 2018-11-25, version 2, with the Mint 19 updates for that date. Note: beginning character must be lower case. Also note that on every build the image is up-to-date on packages.
......@@ -137,13 +149,13 @@ $ docker volume inspect wrf_output
```
Follow the volume mount point to do maintenance (backup, removes, etc.) on the host.
Finally, to use the volumes in the container (per container name above) use:
To use the volumes in the container (per container name above) use:
```bash
$ docker run -v gfs_0.25:/home/agrineer/wrf/gfs_0.25 -v wrf_output:/home/agrineer/wrf/output -it mint19_wrf4.0
$ docker run -v gfs_0.25:/home/agrineer/wrf/gfs_0.25 -v wrf_output:/home/agrineer/wrf/output -it mint19_wrf4.1
```
If you choose not to use the persistent volumes just use:
```bash
$ docker run -it mint19_wrf4.0
$ docker run -it mint19_wrf4.1
```
------------------------------------------------------------
How to link the docker directory to a partition that can accomodate the docker container:
......@@ -173,7 +185,7 @@ Inside the container:
The above docker command will give you a root login into the container.
Because the cron daemon started on UTC time, restart the cron daemon to sync up to local timezone (see above on how to change timezones):
Because the cron daemon started on UTC time, restart the cron daemon to sync up to local timezone (see above on how to change timezones) DO NOT SKIP THIS:
```bash
$ service cron stop
$ service cron start
......@@ -203,7 +215,7 @@ $ wrf/scripts/getdata_gfs.py 20190101
Note: Warnings such as "No such directory 'pub/data/nccf/com/gfs/prod/gfs.2019011118' can be ignored as the script is asking for a future file.
Note: The Global Forecasting System server only holds data for about 10 days.
Note: The Global Forecasting System server only holds data for about 9 days.
-----------------------------------------------------------------
......@@ -273,6 +285,7 @@ When running, the program metgrid.exe will issue some warnings, visible in the s
----------------------------------------------------------------
Tar'ed output for each run can be found in wrf/output/SECTOR/YYYYMMDD. If you are a data contributor to Agrineer.org's server then the data will be zipped and uploaded as well.
The WRF output can be saved for future reference. Look in the runwrf.py script to specify which domain is to be kept.
-----------------------------------------------------------------
Licenses
......
#!/bin/sh
# bourne shell script to run wrf cron jobs
HOME=/home/agrineer/wrf
WRFHOME=/home/agrineer/wrf
SCRIPTS=$WRFHOME/scripts
GFSHOME=$WRFHOME/gfs_0.25
LOGDIR=$WRFHOME/log
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib
export NCARG_ROOT=/usr/local/ncarg
......@@ -13,11 +15,11 @@ ulimit -s unlimited
# run with today's date
if [ $# -eq 1 ];
then
$HOME/scripts/run_wrfgfs.py -s $1 -b 06 -d $HOME/gfs_0.25 > $HOME/log/$1.log 2>&1 &
$SCRIPTS/run_wrfgfs.py -s $1 -b 06 -d $GFSHOME > $LOGDIR/$1.log 2>&1 &
fi
# run with given date
if [ $# -eq 2 ];
then
$HOME/scripts/run_wrfgfs.py -s $1 -b 06 -d $HOME/gfs_0.25 -r $2 > $HOME/log/$1.log 2>&1 &
$SCRIPTS/run_wrfgfs.py -s $1 -b 06 -d $GFSHOME -r $2 > $LOGDIR/$1.log 2>&1 &
fi
2a31a38e8f2c84e8e2d011833d5a71a4334a90d63739a17aa342cb81a15c712e jasper-1.900.2.tar.gz
89b026b9db0a03c0c995e53b4a1d99663af1f6bda21b3b34c3c2c07386da5493 geog_high_res_mandatory.tar.gz
This diff is collapsed.
......@@ -2,7 +2,7 @@
# getdata_gfs.py
#
# Copyright (C) 2016-2018 Scott L. Williams.
# Copyright (C) 2016-2019 IndieCompLabs, LLC.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -18,7 +18,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
copyright = 'getdata_gfs.py Copyright (c) 2016-2018 Scott L. Williams ' + \
copyright = 'getdata_gfs.py Copyright (c) 2016-2019 IndieCompLabs, LLC. ' + \
'released under GNU GPL V3.0'
import os
......
......@@ -2,7 +2,7 @@
# merge.py
#
# Copyright (c) 2018 IndieCompLabs, LLC.
# Copyright (c) 2018-2019 IndieCompLabs, LLC.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -19,7 +19,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# or visit https://www.gnu.org/licenses/gpl-3.0-standalone.html
#
merge_copyright = 'merge.py Copyright (c) 2018 IndieCompLabs, LLC. ' + \
merge_copyright = 'merge.py Copyright (c) 2018-2019 IndieCompLabs, LLC. ' + \
'released under GNU GPL V3.0'
import os
......@@ -39,7 +39,7 @@ from netCDF4 import Dataset
## calculation then merge the output ETo data.
## Make reprojectable by keeping GMT (general mapping tool ) format.
## @author Scott L. Williams
## @copyright Copyright (c) 2018 IndieCompLabs, LLC. All Rights Reserved.
## @copyright Copyright (c) 2018-2019 IndieCompLabs, LLC. All Rights Reserved.
## @license Released under GNU General Public License V3.0
## @results netCDF4 file
......@@ -246,10 +246,12 @@ class merge():
raise IOError( '"RAINNC" variable is not in WRF file' )
# extract accumulated rains and add
ac_rainc = wvars['RAINC'][24]
ac_rainc = wvars['RAINC'][24] # 0-index
ac_rainnc = wvars['RAINNC'][24]
ac_rain = ac_rainc + ac_rainnc
# TODO: factor snow precip with SNOWNC variable
# make PRECIP variable
precip = self.clone_var( 'PRECIP','RAINC' )
precip.setncattr( 'description', 'DAILY PRECIPITATION, mm' )
......
#!/bin/sh
# bourne shell script to run wrf cron jobs
HOME = /home/agrineer/wrf
SCRIPTS = $HOME/scripts
GFSHOME = $HOME/gfs_0.25
LOGDIR = $HOME/log
WRFHOME=/home/agrineer/wrf
SCRIPTS=$WRFHOME/scripts
GFSHOME=$WRFHOME/gfs_0.25
LOGDIR=$WRFHOME/log
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib
export NCARG_ROOT=/usr/local/ncarg
......@@ -21,5 +21,5 @@ fi
# run with given date
if [ $# -eq 2 ];
then
$SCIPTS/run_wrfgfs.py -s $1 -b 06 -d $GFSHOME -r $2 > $LOGDIR/$1.log 2>&1 &
$SCRIPTS/run_wrfgfs.py -s $1 -b 06 -d $GFSHOME -r $2 > $LOGDIR/$1.log 2>&1 &
fi
......@@ -2,7 +2,7 @@
# run_wrfgfs.py
#
# Copyright (C) 2016-2018 Scott L. Williams.
# Copyright (C) 2016-2019 IndieCompLabs, LLC.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -19,7 +19,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
copyright = 'run_wrfgfs.py Copyright (c) 2016-2018 Scott L. Williams ' + \
copyright = 'run_wrfgfs.py Copyright (c) 2016-2019 IndieCompLabs, LLC. ' + \
'released under GNU GPL V3.0'
import os
import sys
......@@ -187,23 +187,24 @@ if __name__ == '__main__':
for f in glob.glob( 'ETo*.npy' ):
os.remove( f )
# should move these files offline, but is too expensive to store
# for now zap domains
for f in glob.glob( 'wrfout_d0[1-3]*' ):
# should move these files offline, but can be too expensive to store
# depending WRF Registry variable output.
# for now zap domains 1 and 2, keep domain 3 (3.3km) for future analysis
for f in glob.glob( 'wrfout_d0[1-2]*' ):
os.remove( f )
#'''upload to web server
'''upload to web server
status = os.system( script_dir + 'upload.sh -s ' + sector +
' -r ' + rundate )
if status != 0:
eprint('upload failed.')
sys.exit(2)
eprint('upload completed.')
#'''
'''
os.chdir( outdir + sector )
time.sleep(5) # attempt to make tar more robust;
# seems to fail occasionally
# tar seems to fail occasionally
status = os.system( 'tar cvfz ' + rundate + '.tar.gz ' + rundate )
if status != 0:
eprint('tarball failed.')
......
......@@ -2,7 +2,7 @@
# wrfGFS.py hindcast version
#
# Copyright (C) 2017-2018 Scott L. Williams
# Copyright (C) 2017-2019 Scott L. Williams
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -19,7 +19,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
copyright = 'wrfGFS.py Copyright (c) 2016-2018 Scott L. Williams ' + \
copyright = 'wrfGFS.py Copyright (c) 2016-2019 Scott L. Williams ' + \
'released under GNU GPL V3.0'
# gfs wrf run from yesterday's 06:00 zulu to today's 06:00 zulu
......
&share
wrf_core = 'ARW',
max_dom = 3,
start_date = '2016-10-12_06:00:00', '2016-10-12_06:00:00', '2016-10-12_06:00:00',
end_date = '2016-10-13_06:00:00', '2016-10-13_06:00:00', '2016-10-13_06:00:00',
start_date = '2016-10-12_06:00:00', '2013-10-16_06:00:00', '2016-10-12_06:00:00',
end_date = '2016-10-13_06:00:00', '2013-10-16_06:00:00', '2016-10-13_06:00:00',
interval_seconds = 21600,
io_form_geogrid = 2,
/
......@@ -14,7 +14,7 @@
j_parent_start = 1,58,58,
e_we = 172,172,172,
e_sn = 172,172,172,
geog_data_res = 'default','default','default',
geog_data_res = '20m+default','20m+default','20m+default',
dx = 30000,
dy = 30000,
map_proj = 'lambert',
......
......@@ -14,7 +14,7 @@
j_parent_start = 1,58,58,
e_we = 172,172,172,
e_sn = 172,172,172,
geog_data_res = 'default','default','default',
geog_data_res = '20m+default','20m+default','20m+default',
dx = 30000,
dy = 30000,
map_proj = 'lambert',
......
......@@ -4,14 +4,14 @@
run_minutes = 0,
run_seconds = 0,
start_year = 2018, 2018, 2018,
start_month = 09, 09, 09,
start_day = 04, 04, 04,
start_month = 07, 07, 07,
start_day = 27, 27, 27,
start_hour = 06, 06, 06,
start_minute = 00, 00, 00,
start_second = 00, 00, 00,
end_year = 2018, 2018, 2018,
end_month = 09, 09, 09,
end_day = 05, 05, 05,
end_month = 07, 07, 07,
end_day = 28, 28, 28,
end_hour = 06, 06, 06,
end_minute = 00, 00, 00,
end_second = 00, 00, 00,
......@@ -61,14 +61,18 @@
sf_surface_physics = 2, 2, 2,
bl_pbl_physics = 1, 1, 1,
bldt = 0, 0, 0,
cu_physics = 1, 1, 0,
cu_physics = 1, 1, 1,
cudt = 5, 5, 5,
isfflx = 1,
ifsnow = 1,
icloud = 1,
surface_input_source = 1,
icloud = 3,
surface_input_source = 3,
num_soil_layers = 4,
sf_urban_physics = 0, 0, 0,
slope_rad = 1, 1, 1,
topo_shading = 1, 1, 1,
shadlen = 25000,
topo_wind = 1, 1, 1,
/
&fdda
......@@ -89,7 +93,8 @@
kvdif = 0, 0, 0,
non_hydrostatic = .true., .true., .true.,
moist_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
gwd_opt = 1,
/
&bdy_control
......
......@@ -61,14 +61,18 @@
sf_surface_physics = 2, 2, 2,
bl_pbl_physics = 1, 1, 1,
bldt = 0, 0, 0,
cu_physics = 1, 1, 0,
cu_physics = 1, 1, 1,
cudt = 5, 5, 5,
isfflx = 1,
ifsnow = 1,
icloud = 1,
surface_input_source = 1,
icloud = 3,
surface_input_source = 3,
num_soil_layers = 4,
sf_urban_physics = 0, 0, 0,
slope_rad = 1, 1, 1,
topo_shading = 1, 1, 1,
shadlen = 25000,
topo_wind = 1, 1, 1,
/
&fdda
......@@ -89,7 +93,8 @@
kvdif = 0, 0, 0,
non_hydrostatic = .true., .true., .true.,
moist_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
gwd_opt = 1,
/
&bdy_control
......
......@@ -14,7 +14,7 @@
j_parent_start = 1,58,58,
e_we = 172,172,172,
e_sn = 172,172,172,
geog_data_res = 'default','default','default',
geog_data_res = '20m+default','20m+default','20m+default',
dx = 30000,
dy = 30000,
map_proj = 'lambert',
......
......@@ -14,7 +14,7 @@
j_parent_start = 1,58,58,
e_we = 172,172,172,
e_sn = 172,172,172,
geog_data_res = 'default','default','default',
geog_data_res = '20m+default','20m+default','20m+default',
dx = 30000,
dy = 30000,
map_proj = 'lambert',
......
......@@ -4,14 +4,14 @@
run_minutes = 0,
run_seconds = 0,
start_year = 2018, 2018, 2018,
start_month = 09, 09, 09,
start_day = 04, 04, 04,
start_month = 07, 07, 07,
start_day = 27, 27, 27,
start_hour = 06, 06, 06,
start_minute = 00, 00, 00,
start_second = 00, 00, 00,
end_year = 2018, 2018, 2018,
end_month = 09, 09, 09,
end_day = 05, 05, 05,
end_month = 07, 07, 07,
end_day = 28, 28, 28,
end_hour = 06, 06, 06,
end_minute = 00, 00, 00,
end_second = 00, 00, 00,
......@@ -61,14 +61,18 @@
sf_surface_physics = 2, 2, 2,
bl_pbl_physics = 1, 1, 1,
bldt = 0, 0, 0,
cu_physics = 1, 1, 0,
cu_physics = 1, 1, 1,
cudt = 5, 5, 5,
isfflx = 1,
ifsnow = 1,
icloud = 1,
surface_input_source = 1,
icloud = 3,
surface_input_source = 3,
num_soil_layers = 4,
sf_urban_physics = 0, 0, 0,
slope_rad = 1, 1, 1,
topo_shading = 1, 1, 1,
shadlen = 25000,
topo_wind = 1, 1, 1,
/
&fdda
......@@ -89,7 +93,8 @@
kvdif = 0, 0, 0,
non_hydrostatic = .true., .true., .true.,
moist_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
gwd_opt = 1,
/
&bdy_control
......
......@@ -61,14 +61,18 @@
sf_surface_physics = 2, 2, 2,
bl_pbl_physics = 1, 1, 1,
bldt = 0, 0, 0,
cu_physics = 1, 1, 0,
cu_physics = 1, 1, 1,
cudt = 5, 5, 5,
isfflx = 1,
ifsnow = 1,
icloud = 1,
surface_input_source = 1,
icloud = 3,
surface_input_source = 3,
num_soil_layers = 4,
sf_urban_physics = 0, 0, 0,
slope_rad = 1, 1, 1,
topo_shading = 1, 1, 1,
shadlen = 25000,
topo_wind = 1, 1, 1,
/
&fdda
......@@ -89,7 +93,8 @@
kvdif = 0, 0, 0,
non_hydrostatic = .true., .true., .true.,
moist_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
gwd_opt = 1,
/
&bdy_control
......
......@@ -14,7 +14,7 @@
j_parent_start = 1,58,58,
e_we = 172,172,172,
e_sn = 172,172,172,
geog_data_res = 'default','default','default',
geog_data_res = '20m+default','20m+default','20m+default',
dx = 30000,
dy = 30000,
map_proj = 'lambert',
......
......@@ -14,7 +14,7 @@
j_parent_start = 1,58,58,
e_we = 172,172,172,
e_sn = 172,172,172,
geog_data_res = 'default','default','default',
geog_data_res = '20m+default','20m+default','20m+default',
dx = 30000,
dy = 30000,
map_proj = 'lambert',
......
......@@ -4,14 +4,14 @@
run_minutes = 0,
run_seconds = 0,
start_year = 2018, 2018, 2018,
start_month = 09, 09, 09,
start_day = 04, 04, 04,
start_month = 07, 07, 07,
start_day = 27, 27, 27,
start_hour = 06, 06, 06,
start_minute = 00, 00, 00,
start_second = 00, 00, 00,
end_year = 2018, 2018, 2018,
end_month = 09, 09, 09,
end_day = 05, 05, 05,
end_month = 07, 07, 07,
end_day = 28, 28, 28,
end_hour = 06, 06, 06,
end_minute = 00, 00, 00,
end_second = 00, 00, 00,
......@@ -61,14 +61,18 @@
sf_surface_physics = 2, 2, 2,
bl_pbl_physics = 1, 1, 1,
bldt = 0, 0, 0,
cu_physics = 1, 1, 0,
cu_physics = 1, 1, 1,
cudt = 5, 5, 5,
isfflx = 1,
ifsnow = 1,
icloud = 1,
surface_input_source = 1,
icloud = 3,
surface_input_source = 3,
num_soil_layers = 4,
sf_urban_physics = 0, 0, 0,
slope_rad = 1, 1, 1,
topo_shading = 1, 1, 1,
shadlen = 25000,
topo_wind = 1, 1, 1,
/
&fdda
......@@ -89,7 +93,8 @@
kvdif = 0, 0, 0,
non_hydrostatic = .true., .true., .true.,
moist_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
gwd_opt = 1,
/
&bdy_control
......
......@@ -61,14 +61,18 @@
sf_surface_physics = 2, 2, 2,
bl_pbl_physics = 1, 1, 1,
bldt = 0, 0, 0,
cu_physics = 1, 1, 0,
cu_physics = 1, 1, 1,
cudt = 5, 5, 5,
isfflx = 1,
ifsnow = 1,
icloud = 1,
surface_input_source = 1,
icloud = 3,
surface_input_source = 3,
num_soil_layers = 4,
sf_urban_physics = 0, 0, 0,
slope_rad = 1, 1, 1,
topo_shading = 1, 1, 1,
shadlen = 25000,
topo_wind = 1, 1, 1,
/
&fdda
......@@ -89,7 +93,8 @@
kvdif = 0, 0, 0,
non_hydrostatic = .true., .true., .true.,
moist_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
scalar_adv_opt = 1, 1, 1,
gwd_opt = 1,
/
&bdy_control
......
......@@ -14,7 +14,7 @@
j_parent_start = 1,58,58,
e_we = 172,172,172,
e_sn = 172,172,172,
geog_data_res = 'default','default','default',