61 logical (c_bool),
intent(in) :: is_cell_active(:,:)
62 integer (c_int),
intent(in) :: landuse_index(:)
65 integer (c_int) :: istat
67 integer (c_int) :: iindex
68 integer (c_int) :: inx
69 integer (c_int) :: iny
70 integer (c_int),
allocatable :: ilandusecodes(:)
71 integer (c_int) :: inumberoflanduses
72 logical (c_bool) :: larelengthsequal
76 call parameter_list%append(
"LU_Code" )
77 call parameter_list%append(
"Landuse_Code" )
79 call params%get_parameters( slkeys=parameter_list, ivalues=ilandusecodes )
80 inumberoflanduses = count( ilandusecodes > 0 )
82 call parameter_list%clear()
83 call parameter_list%append(
"Septic_system_discharge" )
84 call parameter_list%append(
"SEPTIC_DISCHARGE" )
85 call parameter_list%append(
"Daily_septic_discharge" )
96 call assert( istat==0,
"Problem allocating memory", __file__, __line__ )
104 if ( .not. larelengthsequal ) &
105 call warn( smessage=
"The number of landuses does not match the number of annual direct" &
106 //
" recharge rate values.", smodule=__file__, iline=__line__, lfatal=.
true._c_bool )
109 call assert( istat==0,
"Problem allocating memory", __file__, __line__ )
112 do iindex=lbound( landuse_index, 1 ), ubound( landuse_index, 1 )
118 call parameter_list%clear()
119 call parameter_list%append(
"ANNUAL_septic_system_discharge" )
120 call parameter_list%append(
"ANNUAL_SEPTIC_DISCHARGE" )
121 call parameter_list%append(
"ANNUAL_septic_discharge" )
132 call assert( istat==0,
"Problem allocating memory", __file__, __line__ )
140 if ( .not. larelengthsequal ) &
141 call warn( smessage=
"The number of landuses does not match the number of annual direct" &
142 //
" recharge rate values.", smodule=__file__, iline=__line__, lfatal=.
true._c_bool )
145 call assert( istat==0,
"Problem allocating memory", __file__, __line__ )
148 do iindex=lbound( landuse_index, 1 ), ubound( landuse_index, 1 )
164 real (c_float),
intent(inout) :: direct_soil_moisture
165 logical (c_bool),
intent(in) :: is_cell_active(:,:)
166 integer (c_int),
intent(in) :: indx
169 integer (c_int) :: ijulianday
170 integer (c_int) :: imonth
171 integer (c_int) :: iday
172 integer (c_int) :: iyear
173 integer (c_int) :: idaysinmonth
174 integer (c_int) :: inumdaysfromorigin
175 integer (c_int) :: iindex
176 real (c_float) :: ffactor
180 associate( dt =>
sim_dt%curr )
200 direct_soil_moisture = 0.0_c_float
202 if (
allocated(
fseptic_discharge) ) direct_soil_moisture = direct_soil_moisture &
subroutine, public warn(smessage, smodule, iline, shints, lfatal, iloglevel, lecho)