Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • hd-model/hd-couple
1 result
Show changes
Commits on Source (7)
#!/bin/sh
set -e
script_dir=`echo "$0" | sed 's@[^/]*$@@'`
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
cd "$script_dir"
exec autoreconf -fvi
......@@ -37,7 +37,7 @@ MODULE mo_coupling
#endif
#ifdef COUP_YAC
USE mo_yac_finterface
USE yac
USE mpi
#endif
......
......@@ -38,7 +38,7 @@ MODULE mo_coupling_hd
#ifdef COUP_YAC
USE mo_yac_finterface
USE yac
USE mpi
USE mo_coupling, ONLY: runoff_s, runoff_dr, fdir_hd, get_grid_dimensions, &
lcoupling_atm, lcoupling_oce, icpl_mask_tohd
......
......@@ -1352,15 +1352,10 @@ Optional Features:
[default=yes]
--enable-mpi enable MPI (parallelization) support [default=yes]
--enable-resolution build the model for the specific domain resolution.
Note that since HD V.5.2.2, domain info is read from the HD parameter file
so that the domain include file is obsolete. Executables are only different
for 0.5 degree and 5 Min. spatial resolution, but not for different regional domains.
The value of the argument must be one of the
following [default=05deg]:
0|05deg 0.5 degree global domain
1|5min 5min global domain
2|euro5min 5min European domain
3|aus5min 5min Australian domain
--enable-coupling enable coupling using the specific backend
[default=no]:
yes|yac use YAC coupler
......@@ -2043,10 +2038,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
##if test "`cd $srcdir && pwd`" != "`pwd`"
##then :
## as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
##fi
ac_ext=${ac_fc_srcext-f}
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
......@@ -3699,10 +3692,6 @@ then :
enable_resolution=05deg ;; #(
1|5min) :
enable_resolution=5min ;; #(
2|euro5min) :
enable_resolution=euro5min ;; #(
3|aus5min) :
enable_resolution=aus5min ;; #(
*) :
as_fn_error $? "unexpected value for the argument --enable-resolution='$enableval'; see the help message for the valid values of the argument" "$LINENO" 5 ;;
esac
......@@ -3716,20 +3705,11 @@ case $enable_resolution in #(
05deg) :
EXEC_FILE_NAME='hd_05.exe' ;; #(
5min) :
EXEC_FILE_NAME='hd_5min.exe' ;; #(
euro5min) :
EXEC_FILE_NAME='hd_5min.exe' ;; #(
aus5min) :
EXEC_FILE_NAME='hd_aus.exe' ;; #(
EXEC_FILE_NAME='hd_5min.exe'
as_fn_append FCFLAGS " ${FC_PP_DEF}HD_5MIN" ;; #(
*) :
as_fn_error $? "unexpected value for the domain resolution '$enable_resolution'; this is a bug in the configure script" "$LINENO" 5 ;;
esac
case $enable_resolution in #(
*5min) :
as_fn_append FCFLAGS " ${FC_PP_DEF}HD_5MIN" ;; #(
*) :
;;
esac
eval "set dummy $acx_lib_search_flags; shift"
......@@ -3996,31 +3976,31 @@ esac
fi
as_fn_append DEPGEN_EXTERNAL_MODS ',mo_yac_finterface'
as_fn_append DEPGEN_EXTERNAL_MODS ',yac'
YAC_FCFLAGS=${YAC_FCFLAGS-$acx_fc_YAC_inc_search_args}
FCFLAGS="$YAC_FCFLAGS $FCFLAGS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran module MO_YAC_FINTERFACE" >&5
printf %s "checking for Fortran module MO_YAC_FINTERFACE... " >&6; }
if test ${acx_cv_fc_module_MO_YAC_FINTERFACE+y}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran module YAC" >&5
printf %s "checking for Fortran module YAC... " >&6; }
if test ${acx_cv_fc_module_YAC+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat > conftest.$ac_ext <<_ACEOF
program main
use MO_YAC_FINTERFACE
use YAC
end
_ACEOF
if ac_fn_fc_try_compile "$LINENO"
then :
acx_cv_fc_module_MO_YAC_FINTERFACE=yes
acx_cv_fc_module_YAC=yes
else $as_nop
acx_cv_fc_module_MO_YAC_FINTERFACE=no
acx_cv_fc_module_YAC=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_cv_fc_module_MO_YAC_FINTERFACE" >&5
printf "%s\n" "$acx_cv_fc_module_MO_YAC_FINTERFACE" >&6; }
if test "x$acx_cv_fc_module_MO_YAC_FINTERFACE" = xyes
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_cv_fc_module_YAC" >&5
printf "%s\n" "$acx_cv_fc_module_YAC" >&6; }
if test "x$acx_cv_fc_module_YAC" = xyes
then :
acx_pkg_YAC_FCLIBS=
if test ${YAC_FCLIBS+y}
......@@ -4166,19 +4146,19 @@ fi
yac_LIBS=
pkg_failed=no
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yac" >&5
printf %s "checking for yac... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yac-mci" >&5
printf %s "checking for yac-mci... " >&6; }
if test -n "$yac_CFLAGS"; then
pkg_cv_yac_CFLAGS="$yac_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"yac\""; } >&5
($PKG_CONFIG --exists --print-errors "yac") 2>&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"yac-mci\""; } >&5
($PKG_CONFIG --exists --print-errors "yac-mci") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_yac_CFLAGS=`$PKG_CONFIG --cflags "yac" 2>/dev/null`
pkg_cv_yac_CFLAGS=`$PKG_CONFIG --cflags "yac-mci" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
......@@ -4190,12 +4170,12 @@ if test -n "$yac_LIBS"; then
pkg_cv_yac_LIBS="$yac_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"yac\""; } >&5
($PKG_CONFIG --exists --print-errors "yac") 2>&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"yac-mci\""; } >&5
($PKG_CONFIG --exists --print-errors "yac-mci") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_yac_LIBS=`$PKG_CONFIG --libs "yac" 2>/dev/null`
pkg_cv_yac_LIBS=`$PKG_CONFIG --libs "yac-mci" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
......@@ -4216,9 +4196,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
yac_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "yac" 2>&1`
yac_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "yac-mci" 2>&1`
else
yac_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "yac" 2>&1`
yac_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "yac-mci" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$yac_PKG_ERRORS" >&5
......@@ -4271,7 +4251,7 @@ then :
else $as_nop
cat > conftest.$ac_ext <<_ACEOF
program main
use MO_YAC_FINTERFACE, ONLY: yac_fget_version
use YAC, ONLY: yac_fget_version
implicit none
print *, 'YAC Version: ' // TRIM(yac_fget_version())
end
......@@ -4325,7 +4305,7 @@ fi
else $as_nop
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Fortran module 'MO_YAC_FINTERFACE' is not available
as_fn_error $? "Fortran module 'YAC' is not available
See \`config.log' for more details" "$LINENO" 5; }
fi
......@@ -5060,7 +5040,6 @@ esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_links="$ac_config_links"
config_commands="$ac_config_commands"
_ACEOF
......@@ -5086,9 +5065,6 @@ Usage: $0 [OPTION]... [TAG]...
Configuration files:
$config_files
Configuration links:
$config_links
Configuration commands:
$config_commands
......@@ -5226,7 +5202,6 @@ done
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
test ${CONFIG_LINKS+y} || CONFIG_LINKS=$config_links
test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
fi
......@@ -5416,7 +5391,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"
eval set X " :F $CONFIG_FILES :L $CONFIG_LINKS :C $CONFIG_COMMANDS"
eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS"
shift
for ac_tag
do
......@@ -5636,38 +5611,7 @@ which seems to be undefined. Please make sure it is defined" >&2;}
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:L)
#
# CONFIG_LINK
#
if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
:
else
# Prefer the file from the source tree if names are identical.
if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
ac_source=$srcdir/$ac_source
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5
printf "%s\n" "$as_me: linking $ac_source to $ac_file" >&6;}
if test ! -r "$ac_source"; then
as_fn_error $? "$ac_source: file not found" "$LINENO" 5
fi
rm -f "$ac_file"
# Try a relative symlink, then a hard link, then a copy.
case $ac_source in
[\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
*) ac_rel_source=$ac_top_build_prefix$ac_source ;;
esac
ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
ln "$ac_source" "$ac_file" 2>/dev/null ||
cp -p "$ac_source" "$ac_file" ||
as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5
fi
;;
:C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
;;
......
......@@ -101,14 +101,10 @@ AC_ARG_ENABLE([resolution],
The value of the argument must be one of the
following @<:@default=05deg@:>@:
0|05deg 0.5 degree global domain
1|5min 5min global domain
2|euro5min 5min European domain
3|aus5min 5min Australian domain],
1|5min 5min global domain],
[AS_CASE([$enableval],
[0|05deg], [enable_resolution=05deg],
[1|5min], [enable_resolution=5min],
[2|euro5min], [enable_resolution=euro5min],
[3|aus5min], [enable_resolution=aus5min],
[AC_MSG_ERROR([unexpected value for the argument dnl
--enable-resolution='$enableval'; see the help message for the valid values dnl
of the argument])])],
......@@ -119,15 +115,10 @@ AS_CASE([$enable_resolution],
[05deg],
[EXEC_FILE_NAME='hd_05.exe'],
[5min],
[EXEC_FILE_NAME='hd_5min.exe'],
[euro5min],
[EXEC_FILE_NAME='hd_5min.exe'],
[aus5min],
[EXEC_FILE_NAME='hd_5min.exe'],
[EXEC_FILE_NAME='hd_5min.exe'
AS_VAR_APPEND([FCFLAGS], [" ${FC_PP_DEF}HD_5MIN"])],
[AC_MSG_ERROR([unexpected value for the domain resolution dnl
'$enable_resolution'; this is a bug in the configure script])])
AS_CASE([$enable_resolution],
[*5min], [AS_VAR_APPEND([FCFLAGS], [" ${FC_PP_DEF}HD_5MIN"])])
eval "set dummy $acx_lib_search_flags; shift"
ACX_LANG_PACKAGE_INIT([NetCDF], ["$FC_INC_FLAG" "$FC_MOD_IN"], ["$@"])
......@@ -158,10 +149,10 @@ of the argument])])],
AS_CASE([$enable_coupling],
[yac],
[ACX_LANG_PACKAGE_INIT([YAC], ["$FC_MOD_IN"], [-L])
AS_VAR_APPEND([DEPGEN_EXTERNAL_MODS], [',mo_yac_finterface'])
AS_VAR_APPEND([DEPGEN_EXTERNAL_MODS], [',yac'])
YAC_FCFLAGS=${YAC_FCFLAGS-$acx_fc_YAC_inc_search_args}
FCFLAGS="$YAC_FCFLAGS $FCFLAGS"
ACX_FC_MODULE_CHECK([MO_YAC_FINTERFACE],
ACX_FC_MODULE_CHECK([YAC],
[dnl
dnl If YAC_FCLIBS is not set, try getting linker flags from yac.pc. The problem
dnl is that the flags returned by pkg-config are meant for the C compiler and
......@@ -184,7 +175,7 @@ dnl have names YAC_FCFAGS and YAC_FCLIBS, respectively. The value of the first
dnl one is already known and the second one we want to get:
yac_CFLAGS=$YAC_FCFAGS
yac_LIBS=
PKG_CHECK_MODULES([yac], [yac],
PKG_CHECK_MODULES([yac], [yac-mci],
[acx_pkg_YAC_FCLIBS=$yac_LIBS
AS_VAR_IF([enable_rpaths], [yes],
[ASX_EXTRACT_ARGS([acx_L_args], ["$acx_pkg_YAC_FCLIBS"],
......@@ -198,7 +189,7 @@ dnl one is already known and the second one we want to get:
["$acx_pkg_YAC_FCLIBS"],
[YAC_FCFLAGS=$acx_cv_fc_lib_func_YAC_FGET_VERSION
LIBS="$YAC_FCFLAGS $LIBS"], [],
[AC_LANG_PROGRAM([],[[ use MO_YAC_FINTERFACE, ONLY: yac_fget_version
[AC_LANG_PROGRAM([],[[ use YAC, ONLY: yac_fget_version
implicit none
print *, 'YAC Version: ' // TRIM(yac_fget_version())]])])])
AS_VAR_APPEND([FCFLAGS], [" ${FC_PP_DEF}COUP_YAC"])],
......
......@@ -78,6 +78,7 @@ x 55037 as 55036, but irf_vel=0, using forcing from JSBACH run 25288, 1979-2009
55044 as 55037 but using 0.5 degree version (Reference Vs. 1.9): 1979-2009
x 55045 as 55044 but using HD parameter file Vs. 1.10, incl. Overland flow k * 2, Baseflow k * 4
same factors for consisteny and showing impact of resolution.
used as forcing for ICON-Coast
55046 as 55041, but with Vs. 03 correction of ARF_K - mainstream: hdpara_vs4d_v03_euro5min.nc, 1999-2009
55047 as 55041, but with Vs. 04 correction of ARF_K - mainstream: hdpara_vs4d_v04_euro5min.nc, 1999-2009
x 55048 as 55037, but using MPI-HM (55010) forcing: 1979-2009
......@@ -93,6 +94,7 @@ o 55050 as 55037, but using JSBACH3-PF run 25410 as input, 1979-2009
with the last commit and run 62008
55055 as 55041, but using code of Oct. commit also used for 55054
o 55056 as 55048 but using MPI-HM (55011) forcing driven by GWSP3, 1901-2014 , Nov. 2018
--> Fabian
55057 as 55056 but using ERA5 forcing
55058 as 55056 but using MPI-HM (55012, without lakes) forcing driven by ERA5, 1979-2018
55059 as 55056 but using MPI-HM (55013, with lakes) forcing driven by ERA5, 1979-2018
......@@ -142,6 +144,7 @@ x 55086 as 55073 but with repeated HydroPy run (55026) --> Provided to KSD
55103 as 55102 but using EOBS20 forcing (55042)
55104 as 55102 but with HydroPy + Frozen soil changes (55043)
55105 as 55104 but using EOBS20 forcing (55044)
***** all above are saved *****
HD Model version 5.0
55111 European simulation using HydroPy 1.0 with ERA5 forcing (55051), 1979-2018
......@@ -207,7 +210,7 @@ Levante 1 year of discharge simulation: MPI and OpenMPI are binary ide
57020 as 55201 G but global. Restart: Running year 1940: 10
55204 as 55192 Test simulation: 1979
55207 as 57020 G but using hdpara_vs5_2b.nc, Restart from 57020, Start: 1970
HydroPy-based derived from CCLM/ICON-CLM
55184 as 55183 but using HydroPy-CCLM-euro5min run 57007 with restart from 55183: 2020-2021
......@@ -270,7 +273,7 @@ cdo info -sellonlatbox,10.86,10.88,53.2,53.26 7055049_meanflow_1999.nc | more
62009 as 62007 Input from Ronnys OpenFred F17 run: CCLM at 0.0625 degree 2002-2007, restart from 62008
62016 as 62008 but using HD 0.5 degree, 1979-2013
62017 as 62009 but using Ha's CCLM data for 2014-2016
62018 as 62008 Input from CoastDat III, 0.11°, using 62008 restart file, 1979-2016
62018 as 62008 x Input from CoastDat III, 0.11°, using 62008 restart file, 1979-2016
62019 as 62017 but using Ha's CCLM_sn for Set/Oct 2013, using 62008 restart file of 1.1.2013
62020 as 62019 but using Ha's CCLM0
62021 as 62019 but using Ha's CCLM1
......@@ -280,11 +283,11 @@ cdo info -sellonlatbox,10.86,10.88,53.2,53.26 7055049_meanflow_1999.nc | more
62025 as 62019 but using Ha's CCLM5
62026 HD version 5b using Burkhardts CCLM 0.44 degree run over Europe, 1999-2009
62027 as 62026 but using Burkhardts ICON-CLM run interplated to 0.44 degree over Europe, 1999-2009
62028 as 62018 but using HD version 5.0: 1979-2016. Note that a 1979 test simulation yielded
62028 as 62018 x but using HD version 5.0: 1979-2016. Note that a 1979 test simulation yielded
binary identical results for srv- and nc-input formats.
HD Vs. 5.1
62029 as 62028 but using HD version 5.1: 1979-2018
62030 HD Model Vs. 5.1 using REA6 forcing (1995-2018)
62030 x HD Model Vs. 5.1 using REA6 forcing (1995-2018)
62031 as 62030 but using ICON2.6.4 standalone run inuk009 on NuKLEUS domain
62032 as 62031 but using Ha's CCML 6.0 exp. 002
......@@ -315,6 +318,7 @@ HD Vs. 5.1
62058 EUR-11 ICON-CLM COPAT2 run C2I200/C2I200c with ERA5 forcing, 1979-1984/2002-2008
62059 ICON-CLM standalone run 2008-2018, Nukleus grid
62060 GCOAST-AHOI 2.0 coupled simulation: 2010-2018 using ICON-CLM from 62059
62061 ICON-CLM UDAG evaluation run 1950-2023, Nukleus grid
Australia
......
......@@ -13,13 +13,13 @@
#
# ***** HD and forcing Experiment nos. and HD settings ********************************
#
EXPINP=62061 # Exp. no. of forcing - used for CCLM, HydroPy, Remo
EXPINP=57020 # Exp. no. of forcing - used for CCLM, HydroPy, Remo
# ERA5 (55053/54) & JSBACH forcing (25288,25410)
EXP=70${EXPINP}
##EXP=7055204
##EXP=70${EXPINP}
EXP=7055207
typeset -Z4 YYYY
YYYY=1950 # First year of simulation
YYYY=1970 # First year of simulation
#
# *** Restart or Cold Start
if [ -e ${HDMAIN}/log/${EXP}.year ] ; then
......@@ -31,11 +31,11 @@ else
INEU=1
cstart='Cold-Start'
fi
YEND=1950 # Last year of simulation
YEND=1970 # Last year of simulation
IFORCE=3 # Forcing: 1 = HydroPy, 2 = JSBACH-PF, 3 = CCLM, 4 = REMO, 5=WRF, 6=ICON
IFORCE=1 # Forcing: 1 = HydroPy, 2 = JSBACH-PF, 3 = CCLM, 4 = REMO, 5=WRF, 6=ICON
# Note that JSBACH forcing must be shifted by cdo remapnn,grid_0_5.txt
HDRES=2 # HD Resolution: 0=0.5 Grad, 1=5 Min, 2= Euro 5 Min with 0.5° or 5 Min. input
HDRES=1 # HD Resolution: 0=0.5 Grad, 1=5 Min, 2= Euro 5 Min with 0.5° or 5 Min. input
# 3 = Australia, 4=SEA=South East Asia
FORCE_RES=99 # Forcing data resolution (original, without cdo), 99= any non-HD, (for IFORCE=1)
CFORM=nc # Format of forcing files: 'srv' = Service Format (Default), 'nc' = NetCDCF
......@@ -113,13 +113,14 @@ case ${HDRES} in
ulimit -s 102400
DNPARA="5min/hdpara_vs5_1.nc"
## DNPARA="5min/hdpara_vs5_1.nc"
DNPARA="5min/hdpara_vs5_2b_5min.nc"
HDSTART="5min/hdstart_5min.nc"
nhd_diag=7 # Log output for Elbe river on 5 Min.
#
# *** Examples if restart files from previous runs are used for initialization.
if (( $YYYY > 1979 )) ; then
HDSTART="hdstart/7055116/7055116_hdrestart_${YYYY}01.nc"
if (( $YYYY > 1940 )) ; then
HDSTART="hdstart/7057020/7057020_hdrestart_${YYYY}01.nc"
IZIP_START=1
elif (( $YYYY == 1940 )) ; then
HDSTART="5min/7057020_hdrestart_194001.nc"
......
......@@ -104,8 +104,8 @@
! 4 As 3, but with both masks prescribed
CHARACTER (len=2) :: cin ! Command line input parameter for source mouth mask
INTEGER :: isrc = 2 ! Source data ID:
! 1 HD model Vs. 4
! 2 HD model Vs. 5
! 1 HD model Vs. 5 - Global 5 Min.
! 2 HD model Vs. 5 - Europe 5 Min.
! 3 HD model Vs. 1.11
! 4 mHm
! 5 Utes standard input
......@@ -355,7 +355,7 @@
CHARACTER (len=20), DIMENSION(isrcmax) :: cname_src ! Source model names
CHARACTER (len=20), DIMENSION(iocmax) :: cname_oc ! Ocean model names
!
DATA cname_src / 'hd_vs4', 'hd_vs5', 'hd_vs1_1x', 'mhm_vs2', 'ute', 'mpiom-bgc', 'mpiom' /
DATA cname_src / 'hd_vs5-glob', 'hd_vs5-euro', 'hd_vs1_1x', 'mhm_vs2', 'ute', 'mpiom-bgc', 'mpiom' /
DATA cname_oc / 'nemo', 'ecosmo3', 'SCHISM', 'ecosmo2', 'iconomip', &
'nsea', 'icon-coast', 'nemo_vs4', 'trim', 'nemo-med7km', &
'hd_vs4', 'hd_vs5', 'hd_vs1_11', 'mom', 'nemo_nss' /
......@@ -480,7 +480,8 @@
IX(6) = 262 ; IY(6) = 324 ; INEWX(6) = 50 ; INEWY(6) = 142 ! Maass -> Separation from Rhine
CALL define_separation(IX(6), IY(6), 250, 325) ! Separation of Maass from Rhine
mask_src%value(IX(6), IY(6)) = 1
ELSE IF (isrc.EQ.1 .OR. isrc.EQ.2) THEN ! HD Vs. 4 & 5 - Euro 5 Min. source
!1 ELSE IF (isrc.EQ.1 .OR. isrc.EQ.2) THEN ! HD Vs. 4 & 5 - Euro 5 Min. source
ELSE IF (isrc.EQ.2) THEN ! isrc=1 is now the global 5 Min. grid - Jan. 2025
NCORR=9
ALLOCATE(IX(NCORR)) ; ALLOCATE(IY(NCORR))
ALLOCATE(INEWX(NCORR)) ; ALLOCATE(INEWY(NCORR))
......@@ -498,11 +499,9 @@
IREMX(8) = 20 ; IREMY(8) = 167 ! French coast (too much runoff)
!
! *** Correction
IF (isrc.EQ.1) THEN
IX(1) = 251 ; IY(1) = 222 ; INEWX(1) = 78 ; INEWY(1) = 120 ! Elbe
ELSE IF (isrc.EQ.2) THEN
IX(1) = 246 ; IY(1) = 220 ; INEWX(1) = 78 ; INEWY(1) = 120 ! Elbe
ENDIF
!! IF (isrc.EQ.1) THEN ! Correction for Vs 4. Europe
!! IX(1) = 251 ; IY(1) = 222 ; INEWX(1) = 78 ; INEWY(1) = 120 ! Elbe
IX(1) = 246 ; IY(1) = 220 ; INEWX(1) = 78 ; INEWY(1) = 120 ! Elbe
IX(2) = 200 ; IY(2) = 233 ; INEWX(2) = 57 ; INEWY(2) = 128 ! Ijssel (before 54, 134)
IX(3) = 393 ; IY(3) = 75 ; INEWX(3) = 158 ; INEWY(3) = 7 ! Lule (before 161, 4)
IX(4) = 81 ; IY(4) = 175 ; INEWX(4) = 5 ; INEWY(4) = 83 ! Ness
......@@ -558,8 +557,8 @@
! ***********************************************************************************
INTEGER, INTENT(in) :: isrc ! Source data model ID:
! 1 HD model Vs. 4
! 2 HD model Vs. 5
! 1 HD model Vs. 5 - Global
! 2 HD model Vs. 5 - Europe
! 3 HD model Vs. 1.10
! 4 mHm
! 5 Utes standard input
......@@ -602,6 +601,10 @@
IF (iocean.EQ.3) map_char%dist_max=40000. ! Necessary in Northern Russia
IF (iocean.EQ.4) map_char%dist_max=100000. ! ECOSMO-10 km ocean coast very smooth --> 200 km
IF (iocean.EQ.6) map_char%dist_max=57000. ! N Sea model: Rhine are in, Baltc Sea out
IF (iocean.EQ.7) THEN
map_char%dist_max_prime=60000. !
map_char%dist_max=600000. !
ENDIF
IF (iocean.EQ.9) map_char%dist_max=200000. ! TRIM ocean coast is smooth --> 200 km
IF (iocean.EQ.10) map_char%dist_max=80000. ! Necessary in Greece
IF (iocean.EQ.14) map_char%dist_max=50000. !
......@@ -621,7 +624,7 @@
map_char%dist_max_prime=60000. ! 60 km for primary mask
map_char%dist_max=200000. ! 200 km for secondary mask (default if 1 mask)
ENDIF
WRITE(*,*) "Ocean model ", icocean, " Inflow resolution: ", res_src ! , ' =?', 0.5/6.
WRITE(*,*) "Ocean model ", iocean, " Inflow resolution: ", res_src ! , ' =?', 0.5/6.
WRITE(*,*) "Maximum distances: Primary = ", map_char%dist_max_prime
WRITE(*,*) " Secondary = ", map_char%dist_max
WRITE(*,*) " Boundary = ", map_char%deg_max_bound
......
......@@ -45,7 +45,7 @@ if [ "$IOCEAN" = "" ] && [ "$ISRC" = "" ]; then
echo " -i <7-digit ID>, ID = Source exp. no., Default: Last Exp. no. "
echo " -b <BGC mode>, 0=No data conversion, 1=Discharge only (Def.), 2=1 or more tracers"
echo " 3=Bias corrected discharge, 4=Bias corrected tracer flow (planned)"
echo " -s <Source>, 1=HD4, 2=HD5 (Def), 3=HD1.10, 4=mHm, 5=Ute, 6=MPIOM-BGC, 7=MPIOM"
echo " -s <Source>, 1=HD5-glob, 2=HD5-euro (Def), 3=HD1.10, 4=mHm, 5=Ute, 6=MPIOM-BGC, 7=MPIOM"
echo " -u <mouth file> optional: mouth mask on source grid"
echo " -o <Ocean target>, 1=NEMO3.6, 2=ECOSMO3, 3=SCHISM, 4=ECOSMO2, 5=ICON, 6=Nils, 7=ICON-C "
echo " 8=NEMO4.0, 9=TRIM,10=NEMO-med, 11=HD4, 12=HD5, 13=HD1.10, 14=MOM, 15=NEMO-NSS"
......@@ -120,8 +120,8 @@ if [ "$ISRC" = "" ]; then
ISRC=2 ; HDVS=vs5_1 ; CHD=hd5_1
else
case $ISRC in
1 ) echo "Source data: HD Model Vs. 4" ; CHD=hd4 ; HDVS=vs4 ;;
2 ) echo "Source data: HD Model Vs. 5" ; CHD=hd5_1 ; HDVS=vs5_1 ;;
1 ) echo "Source data: HD Model Vs. 5-glob" ; CHD=hd5-glob ; HDVS=vs5_1 ;;
2 ) echo "Source data: HD Model Vs. 5-euro" ; CHD=hd5-euro ; HDVS=vs5_1 ;;
3 ) echo "Source data: HD Model Vs. 1.11" ; CHD=hd1_11 ; HDVS=vs1_11 ;;
4 ) echo "Source data: mHm Vs. 2" ; CHD=mhm ; HDVS=mhm ;;
5 ) echo "Source data: Utes standard input" ; CHD=usid ; HDVS=ute ;;
......@@ -133,7 +133,8 @@ fi
#
# *** Is mask file for the mouths on the source grid provided.
if [ "$dn_src_mouth" = "" ]; then
echo " No mouth mask on source grid provided - defintion in script expected "
echo " No mouth mask on source grid provided "
echo " Mask is obtained from HD parameter variable FDIR, or it must be defined in the script"
else
if [ -s $dn_ocean ] ; then
echo " Mouth mask on source grid: " $dn_src_mouth
......@@ -305,7 +306,8 @@ fi
cd $DRUN
case $ISRC in
1 ) DNHDPARA=${DIN}/euro5min/hdpara_vs4d_euro5min.nc ; cgr='5-Min.' ;; # cgr is currently a dummy
1 ) DNHDPARA=${DIN}/5min/hdpara_${HDVS}.nc ; cgr='5-Min.' # cgr is currently a dummy
ulimit -s 200000 ;;
2 ) DNHDPARA=${DIN}/euro5min/hdpara_${HDVS}_euro5min.nc ; cgr='5-Min.' ;; # e.g. HDVS=vs5_0
# 3 ) DNHDPARA=${DIN}/05deg/hdpara_vs1_10_ext.nc ; cgr='0.5' ;;
3 ) DNHDPARA=${DIN}/05deg/hdpara_${HDVS}.nc ; cgr='0.5' ;;
......@@ -514,7 +516,8 @@ esac
# *** Allocate HD mouths
${F90} ${DSRC}/mo_grid.f90 ${DSRC}/mo_time.f90 ${DSRC}/mo_flow_inout.f90 ${DSRC}/mo_interpol.f90 ${DSRC}/mo_convert.f90 ${DSRC}/convert_discharge.f90 -o convert.exe $NC_INCLUDE $NC_LIB
#
case $ISRC in
if [ "$dn_src_mouth" = "" ]; then
case $ISRC in
[123] ) cdo setctomiss,0. -eqc,0. -selvar,FDIR $DNHDPARA hdmouth_mask.nc
cdo setvar,FMOUTH hdmouth_mask.nc rivmouth_source.nc
rm hdmouth_mask.nc ;;
......@@ -533,7 +536,18 @@ case $ISRC in
rm t[12345].nc ;;
[67] ) cdo setvar,FMOUTH $DNHDPARA rivmouth_source.nc ;;
* ) echo 'Treatment of mouth mask needs to be specified -> STOP' ; exit ;;
esac
esac
else
case $ISRC in
[1234] ) cdo -selvar,FDIR $DNHDPARA ts.nc
cdo setvar,FMOUTH -setgrid,ts.nc $dn_src_mouth rivmouth_source.nc
rm ts.nc ;;
5 ) cdo -selvar,lon $DNHDPARA ts.nc
cdo setvar,FMOUTH -setgrid,ts.nc $dn_src_mouth rivmouth_source.nc
rm ts.nc ;;
* ) cdo setvar,FMOUTH $dn_src_mouth rivmouth_source.nc ;;
esac
fi
#
# *** Run the Program to create data that will be used for the remapping of mouth points
# *** --> Creates files hd_to_ocean_mouth.nc, hdmouth_on_oceangrid.nc
......@@ -549,7 +563,21 @@ fi
#
# Add script settings to coupling file
ncatted -O -h -a Settings,global,o,c,"IMODE = $IMODE, ISRC=$ISRC, IOCEAN=$IOCEAN, IBGC=$IBGC" $DNOUT
if [ "$dn_src_mouth" != "" ]; then
ncatted -O -h -a Source_mask,global,o,c,"River mouth mask on source grid: $dn_src_mouth" $DNOUT
fi
YEAR=$YBEG
while [ $YEAR -le $YEND ] ; do
DNOUTFLOW=${DATA_OUT}/${CFLOW}_${CDIS}_on_${OM}${OVS}_${YEAR}.nc
ncatted -O -h -a Settings,global,o,c,"IMODE = $IMODE, ISRC=$ISRC, IOCEAN=$IOCEAN, IBGC=$IBGC" $DNOUTFLOW
if [ "$dn_src_mouth" != "" ]; then
ncatted -O -h -a Source_mask,global,o,c,"River mouth mask on source grid: $dn_src_mouth" $DNOUTFLOW
fi
if [ $IMODE -eq 4 ]; then
ncatted -O -h -a Primary_mask,global,o,c,"Preset primary mouth mask on ocean grid: $DN_OMOUTH_PRESET" $DNOUTFLOW
fi
YEAR=`expr $YEAR + 1`
done
#
if [ $ISRC -eq 6 ] ; then
mv $DNOUT ${DIN}/${OM}/${EXP}_$DNOUT
......