\documentclass[10pt]{article}

\usepackage{fullpage}
\usepackage{setspace}
\usepackage{parskip}
\usepackage{titlesec}
\usepackage[section]{placeins}
\usepackage{xcolor}
\usepackage{breakcites}
\usepackage{lineno}
\usepackage{hyphenat}





\PassOptionsToPackage{hyphens}{url}
\usepackage[colorlinks = true,
            linkcolor = blue,
            urlcolor  = blue,
            citecolor = blue,
            anchorcolor = blue]{hyperref}
\usepackage{etoolbox}
\makeatletter
\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{%
  \errmessage{\noexpand\@combinedblfloats could not be patched}%
}%
\makeatother


\usepackage{natbib}




\renewenvironment{abstract}
  {{\bfseries\noindent{\abstractname}\par\nobreak}\footnotesize}
  {\bigskip}

\titlespacing{\section}{0pt}{*3}{*1}
\titlespacing{\subsection}{0pt}{*2}{*0.5}
\titlespacing{\subsubsection}{0pt}{*1.5}{0pt}


\usepackage{authblk}


\usepackage{graphicx}
\usepackage[space]{grffile}
\usepackage{latexsym}
\usepackage{textcomp}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{booktabs,array,multirow}
\usepackage{amsfonts,amsmath,amssymb}
\providecommand\citet{\cite}
\providecommand\citep{\cite}
\providecommand\citealt{\cite}
% You can conditionalize code for latexml or normal latex using this.
\newif\iflatexml\latexmlfalse
\providecommand{\tightlist}{\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}%

\AtBeginDocument{\DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}}

\usepackage[utf8]{inputenc}
\usepackage[english]{babel}



\usepackage{float}








\begin{document}

\title{Coupling Hydrologic Models with Data Services in an Interoperable
Modeling Framework}



\author[1]{Mark Piper}%
\author[2]{Richard McDonald}%
\author[1]{Eric Hutton}%
\author[2]{Steven Markstrom}%
\author[2]{Parker Norton}%
\author[1]{Gregory Tucker}%
\affil[1]{University of Colorado at Boulder}%
\affil[2]{USGS}%


\vspace{-1em}



  
  \date{May 22, 2024}


\begingroup
\let\center\flushleft
\let\endcenter\endflushleft
\maketitle
\endgroup





\selectlanguage{english}
\begin{abstract}
Computational models of flood inundation, precipitation-runoff, and
groundwater have traditionally been developed within their individual
scientific fields. Increasingly, there is a desire and need to couple
these models into an integrated system to solve complex problems and aid
studies in water resources; for example, the impact of land-use change
or climate variability on surface and subsurface flow in watersheds
could be simulated by linking a precipitation-runoff model to a
groundwater model. In this collaborative project, we factored the U.S.
Geological Survey (USGS) Precipitation-Runoff Modeling System (PRMS)
into four independent process components: surface, soil, groundwater,
and streamflow. Each process component, written in Fortran, has a Basic
Model Interface (BMI), which gives the model a standardized set of
functions allowing it to be queried, modified, and updated in time. When
compiled through Cython, the BMI-equipped components become Python
packages, and can then be imported into Python with the Python Modeling
Toolkit (pymt), which provides a framework and tools for running and
coupling models. The addition of a Python interface for PRMS makes it
easier to use, especially for researchers lacking experience in
compiling and linking Fortran code, and pymt provides an easy
collaboration platform for developing and prototyping complex integrated
models. In the next phase of the project, we developed a Python package
for a data service to access gridMET climatological data distributed
over the web by the University of Idaho. The data service has a BMI, so
it can be used directly with pymt for model-data coupling. Finally,
using pymt, we coupled the PRMS process components and drove the coupled
system with climate data from the gridMET data component. As a simple
test, we were able to reproduce the results from running the standalone
PRMS model. (The figure shows that outflow for the last stream segment
in the coupled model system equals that from standalone PRMS.) This
project was a fruitful collaboration between USGS and University of
Colorado researchers, showing that research and operational models
written in different languages can be wrapped in Python and coupled in
an integrated modeling framework, making them more easily accessible for
a new generation of researchers.%
\end{abstract}%



\sloppy




\selectlanguage{english}
\FloatBarrier
\end{document}

