Merge remote-tracking branch 'origin/release-v4.5'
[WRF.git] / doc / README.hydro
blobdd6277f14ae1983980b4500c7c9ea8aa3a6d1d9e
2 1. Building
4 1) General description
5 WRF-Hydro is a coupling architecture designed to simplify the coupling of terrestrial 
6 hydrological models with the WRF model. The WRF-Hydro system is compiled as an independent 
7 library to link with the WRF model and called by the WRF model as a function. The calling 
8 of WRF-Hydro within the WRF model is controlled by a macro definition that is specified 
9 as an environment setting during the compiling process. When WRF-Hydro is not activated 
10 within the environment setting before the WRF configuration process, the entire system 
11 defaults to the standard WRF model. To compile the WRF-Hydro system, the user needs to set 
12 the "WRF_HYDRO" environment variable to 1 and then follow the standard WRF model 
13 configure and compile process.
15 2) Environment settings
16 The following environment variables need to be set before configuring and compiling the WRF-HYDRO model:
18 setenv WRF_HYDRO 1
19 "1" is to activate WRF-Hydro. "0" or no definition will default to the WRF model only.
21 setenv HYDRO_D 1
22 A "1" for HYDRO_D results in WRF-Hydro producing some run-time diagnostic information. 
23 When HYDRO_D is set to "0 "or not defined, the additional diagnostic information will not be produced. 
25 You can explicitly set the "NETCDF_INC" and "NETCDF_LIB" environment variables or just set "NETCDF".  
26 If you only set "NETCDF" environment variable, the default NETCDF_INC and NETCDF_LIB inside WRF-Hydro 
27 will be "$NETCDF/include" and "NETCDF/lib".
29 setenv NETCDF_INC   "$path/netcdf/include"
30 setenv NETCDF_LIB   "$path/netcdf/lib"
32 "NETCDF_INC" and "NETCDF_LIB" are defined for the WRF-Hydro only and can be different from those 
33 set for the WRF model. WRF-Hydro has two netcdf libraries for Fortran and C respectively: 
34 libnetcdff and libnetcdf. If the user's netcdf library combined them together (only has one), 
35 the user will need to manually change this part in order to successfully compile WRF-Hydro. 
36 See the section below on porting about how to change this.
38 3) Configuring and compiling
39 On the following platforms, the configuring and compiling commands are the same as WRF model 
40 after the user has set up the above four environment variables. The default supported platform 
41 is Linux with the PGI (Portland Group) compiler.  The compiler options IBM AIX with xlf fortran, 
42 Linux with GFORTRAN and Intel are not fully tested yet and may not readily work.  As stated above, 
43 the WRF-Hydro system is called as a function inside the WRF model and thus only one executable 
44 is created when WRF-Hydro is compiled with WRF.  If user compiles the system successfully, 
45 only a single "wrf.exe" file will be created.
47 2. Running
49 The fully coupled WRF/WRF-Hydro system has the same running or execution command as that of WRF.  
50 Generally the same parameters and initial files are used as when normally running WRF.  However, 
51 WRF-Hydro has an additional namelist called "hydro.namelist" as well as some additional parameter 
52 files (.TBL files) that are located under the "hydro/Run" directory. Users need to copy those 
53 files to the directory where the "wrf.exe" is going to be executed. 
55 Depending upon the physics options selected for WRF-Hydro, a number of other domain and parameter
56 files may be required. These are usually stored in a DOMAIN directory within the run directory. 
57 For more information regarding these files consult the WRF-Hydro documentation.
59 When running WRF-Hydro from restart file, the user needs to uncomment RESTART_FILE from 
60 "hydro.namelist" by removing "!" and provide the exact name for the existing restart file 
61 to be used.  Running from a restart condition is common and an example of where this can be useful
62 is when the land surface and other hydro components have been `spun-up' by running WRF-Hydro in an
63 offline or `uncoupled' capacity prior to running the coupled modeling system.
65 3. Porting
67 The WRF-Hydro does not presently support OpenMP. The default support platform is Linux 
68 with the Intel Fortran compiler, PGI Fortran compiler, or GNU Fortran compiler. However, WRF-Hydro
69 should be fairly easy to port to other systems.  
71 The basic steps to do so are as follows:
73 1) Edit "hydro/configure", and add "exit(0);" to the second line so that "configure" will not be executed.
74 2) Edit "hydro/macros" to set desired compiling options. 
75 3) Under hydro/CPL/WRF_cpl directory:
76 "make -f Makefile.cpl clean"
77 "make -f Makefile.cpl "
79 If there is no error, then user can compile the fully coupled WRF and WRF-Hydro model on the new platform.