Module containing processes relating to the rivers.
time_manager_mod
diag_manager_mod
mpp_mod
mpp_domains_mod
mpp_io_mod
fms_mod
constants_mod
land_types_mod
land_properties_mod
numerics_mod
subroutine rivers_init & ( Rivers, gblon, gblat, garea, gfrac, time, dt_fast, dt_slow, domain, & id_lon, id_lat ) type(rivers_type), intent(inout) :: Rivers ! data to initialize real, intent(in) :: gblon(:) ! lon boundaries of the grid cells real, intent(in) :: gblat(:) ! lat boundaries of the grid cells real, intent(in) :: garea(:,:) ! total area of each grid cell real, intent(in) :: gfrac(:,:) ! fraction of the cell covered by land type(time_type), intent(in) :: time ! current time type(time_type), intent(in) :: dt_fast ! fast time step type(time_type), intent(in) :: dt_slow ! slow time step type(domain2d), intent(in) :: domain ! our domain integer, intent(in) :: id_lon ! ID of land longitude (X) diag axis integer, intent(in) :: id_lat ! ID of land latitude (Y) diag axis
call rivers_init ( Rivers, gblon, gblat, garea, gfrac, time, dt_fast, dt_slow, domain, id_lon, id_lat )
subroutine rivers_end(Rivers) type(rivers_type), intent(inout) :: Rivers ! data to deallocate/finish
call rivers_end (Rivers)
subroutine init_routing ( glonb, glatb, gfrac, is,ie, js,je, i_dest,j_dest ) real, intent(in) :: glonb(:) ! lon boundaries of the global grid real, intent(in) :: glatb(:) ! lat boundaries of the global grid real, intent(in) :: gfrac(:,:) ! global array of land fractional area integer, intent(in) :: is,ie,js,je ! boundaries of our domain integer, intent(out) :: i_dest(is:ie,js:je) ! lon index of dest points integer, intent(out) :: j_dest(is:ie,js:je) ! lat index of dest points
call init_routing ( glonb, glatb, gfrac, is,ie, js,je, i_dest,j_dest )
logical function is_coastal(i, j, gfrac) integer, intent(in) :: i, j ! coordinates of the point in question real, intent(in) :: gfrac(:,:) ! fractional area of the land
value= is_coastal (i, j, gfrac)
subroutine init_rivers_diag ( id_lon, id_lat, Time) integer, intent(in) :: id_lon ! ID of land longitude (X) diag axis integer, intent(in) :: id_lat ! ID of land latitude (Y) diag axis type(time_type), intent(in) :: Time ! current time
call init_rivers_diag ( id_lon, id_lat, Time)
subroutine update_rivers_fast ( Rivers ) type(rivers_type), intent(inout) :: Rivers ! data to update
call update_rivers_fast ( Rivers )
subroutine calc_discharge ( rivers, runoff, discharge ) type(rivers_type), intent(in) :: rivers ! data to update real, intent(in) :: runoff(rivers%is:,rivers%js:) ! runoff, kg/m2/s real, intent(out) :: discharge(rivers%is:,rivers%js:) ! resulting discharge, kg/s
call calc_discharge ( rivers, runoff, discharge )
subroutine update_rivers_slow ( rivers, runoff_w, runoff_s ) type(rivers_type), intent(inout) :: rivers ! river data to update real, intent(in) :: runoff_w(:,:) ! runoff of liquid water, kg/(m2 s) real, intent(in) :: runoff_s(:,:) ! snow runoff, kg/(m2 s)
call update_rivers_slow ( rivers, runoff_w, runoff_s )
subroutine update_rivers_bnd_slow ( rivers, bnd ) type(rivers_type), intent(in) :: rivers ! river data to update type(land_data_type), intent(inout) :: bnd ! land boundary data
call update_rivers_bnd_slow ( rivers, bnd )
subroutine diag_slow ( rivers ) type(rivers_type), intent(in) :: rivers ! river data to update
call diag_slow ( rivers )
subroutine diag_static ( rivers ) type(rivers_type), intent(in) :: rivers ! river data
call diag_static ( rivers )
subroutine print_error_mesg(mod_name, message, mode, file, line) character(len=*), intent(in) :: mod_name ! module name character(len=*), intent(in) :: message ! error message integer, intent(in) :: mode ! error mode character(len=*), intent(in) :: file ! file containing error integer, intent(in) :: line ! line number or error
call print_error_mesg (mod_name, message, mode, file, line)
Diagnostic fields for module name identifier:
field name |
field description (units) |