A detailed installation instruction for Steps 1 and 2 are available at here.
Complete the online form and gain the instructions for downloading DART. Note that be sure to get the Manhattan version.
Once the DART package is downloaded, in your DART directory {DART}, open the make makefile template in {DART}/manhattan/build_templates/mkmf.template
. Then, modify the following information:
MPIFC = # the mpif90 utility
MPILD = # the mpif90 utility
FC = # the Fortran compiler
LC = # the name of the loader; typically, the same as the Fortran compiler
Next, modify the location of your NetCDF installation containing netcdf.mod
and typesizes.mod
in the include
subdirectory (if you installed netcdf-fortran using conda virtual environment, the NETCDF
location is the path for the virtual environment, e.g., [parentdir_of_anaconda3]/anaconda3/envs/dart-pflotran
):
NETCDF = # the location of your netCDF installation
Enable the permission of using the following files by entering:
chmod +x {DART}/manhattan/build_templates/mkmf
chmod +x {DART}/manhattan/assimilation_code/modules/utilities/fixsystem
Replace the following files in DART:
- first, replace
{DART}/manhattan/observations/obs_converters/utilities/obs_utilities_mod.f90
with{DART-PFLOTRAN}/smoother/obs_utilities_mod.f90
; - second, replace
{DART}/manhattan/assimilation_code/modules/utilities/types_mod.f90
with{DART-PFLOTRAN}/smoother/types_mod.f90
.
The new files contains the following changes in the original DART Manhattan version to allow the usage of the DART-PFLOTRAN interface:
-
Modifying
{DART}/manhattan/observations/obs_converters/utilities/obs_utilities_mod.f90
, to allow the subroutineset_obs_def_location()
to read cartesian 3D grids by replacing:type(obs_def_type) :: obs_def call set_obs_def_location(obs_def, set_location(lon, lat, vval, vkind)) call set_obs_def_type_of_obs(obs_def, okind)
with
type(obs_def_type) :: obs_def real(r8) :: loc_info(4) loc_info(1) = lat loc_info(2) = lon loc_info(3) = vval loc_info(4) = real(vkind) call set_obs_def_location(obs_def, set_location(loc_info)) call set_obs_def_type_of_obs(obs_def, okind)
-
Modifying
{DART}/manhattan/assimilation_code/modules/utilities/types_mod.f90
, to increase the maximum allowed observation type name length by replacing:integer, parameter :: obstypelength = 31
with
integer, parameter :: obstypelength = 64