Tank_TankModelClassClass Module



Interfaces

public interface simulate

  • public function simulate_Tank_TankModelClass(tanks, GLs, dt, rainfall) result(waterhead)

    Arguments

    Type IntentOptional Attributes Name
    type(Tank_), intent(inout) :: tanks(:)
    real(kind=real64), intent(in) :: GLs(:)
    real(kind=real64), intent(in) :: dt
    real(kind=real64), intent(in) :: rainfall(:)

    Return Value real(kind=real64), allocatable, (:,:)

public interface optimize

  • public function optimize_Tank_TankModelClass(tanks, rainfall, waterheads, GLs, dt, debug) result(final_params)

    Arguments

    Type IntentOptional Attributes Name
    type(Tank_), intent(inout) :: tanks(:)
    real(kind=real64), intent(in) :: rainfall(:)
    real(kind=real64), intent(in) :: waterheads(:,:)
    real(kind=real64), intent(in) :: GLs(:)
    real(kind=real64), intent(in) :: dt
    logical, intent(in), optional :: debug

    Return Value real(kind=real64), allocatable, (:)

public interface get_params

  • public function get_params_tank_TankModelClassclass(tanks) result(params)

    Arguments

    Type IntentOptional Attributes Name
    type(Tank_), intent(in) :: tanks(:)

    Return Value real(kind=real64), allocatable, (:)

public interface operator(.with.)

  • public function tanks_with_parameters(tanks, params) result(ret_tanks)

    Arguments

    Type IntentOptional Attributes Name
    type(Tank_), intent(in) :: tanks(:)
    real(kind=real64), intent(in) :: params(:)

    Return Value type(Tank_), allocatable, (:)

public interface to_Tank

  • public function to_tank_TankModelClass(coeff, height, GL_bottom, name) result(ret_tank)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: coeff(:)
    real(kind=real64), intent(in) :: height(:)
    real(kind=real64), intent(in) :: GL_bottom
    character(len=*), intent(in) :: name

    Return Value type(Tank_)


Derived Types

type, public ::  Tank_

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: name
real(kind=real64), public, allocatable :: coeff(:)
real(kind=real64), public, allocatable :: height(:)
real(kind=real64), public, allocatable :: runoff(:)
real(kind=real64), public :: P = 0.0d0
real(kind=real64), public :: E = 0.0d0
real(kind=real64), public :: S_n = 0.0d0
real(kind=real64), public :: S = 0.0d0
real(kind=real64), public :: out_coeff = 0.0d0
real(kind=real64), public :: out_height = 0.0d0
type(Tank_), public, pointer :: out => null()
real(kind=real64), public :: GL_bottom = 0.0d0
type(Tank_), public, pointer :: in => null()

Type-Bound Procedures

procedure, public :: init => initTank_TankModelClass
procedure, public :: connect => connectTank_TankModelClass
procedure, public :: update => updateTank_TankModelClass
procedure, public :: to_waterhead => to_waterhead_Tank_TankModelClass

type, public ::  TankModel_

Components

Type Visibility Attributes Name Initial
type(Tank_), public, allocatable :: tanks(:)

Type-Bound Procedures

procedure, public :: init => initTankModel_TankModelClass
procedure, public, pass :: addTankModel_TankModelClass
generic, public :: add => addTankModel_TankModelClass
procedure, public :: connect => connectTankModel_TankModelClass
procedure, public :: optimize => optimizeTankModel_TankModelClass
procedure, public :: simulate => simulateTankModel_TankModelClass
procedure, public :: setParams => setParamsTankModel_TankModelClass
procedure, public :: showUnit => showUnit_TankModelClass
procedure, public :: show => show_TankModelClass

Functions

public function to_tank_TankModelClass(coeff, height, GL_bottom, name) result(ret_tank)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: coeff(:)
real(kind=real64), intent(in) :: height(:)
real(kind=real64), intent(in) :: GL_bottom
character(len=*), intent(in) :: name

Return Value type(Tank_)

public function optimizeTankModel_TankModelClass(this, rainfall, waterheads, GLs, dt) result(params)

Arguments

Type IntentOptional Attributes Name
class(TankModel_), intent(inout) :: this
real(kind=real64), intent(in) :: rainfall(:)
real(kind=real64), intent(in) :: waterheads(:,:)
real(kind=real64), intent(in) :: GLs(:)
real(kind=real64), intent(in) :: dt

Return Value real(kind=real64), allocatable, (:)

public function simulateTankModel_TankModelClass(this, rainfall, GLs, dt) result(waterheads)

Arguments

Type IntentOptional Attributes Name
class(TankModel_), intent(inout) :: this
real(kind=real64), intent(in) :: rainfall(:)
real(kind=real64), intent(in) :: GLs(:)
real(kind=real64), intent(in) :: dt

Return Value real(kind=real64), allocatable, (:,:)

public function simulate_Tank_TankModelClass(tanks, GLs, dt, rainfall) result(waterhead)

Arguments

Type IntentOptional Attributes Name
type(Tank_), intent(inout) :: tanks(:)
real(kind=real64), intent(in) :: GLs(:)
real(kind=real64), intent(in) :: dt
real(kind=real64), intent(in) :: rainfall(:)

Return Value real(kind=real64), allocatable, (:,:)

public function optimize_Tank_TankModelClass(tanks, rainfall, waterheads, GLs, dt, debug) result(final_params)

Arguments

Type IntentOptional Attributes Name
type(Tank_), intent(inout) :: tanks(:)
real(kind=real64), intent(in) :: rainfall(:)
real(kind=real64), intent(in) :: waterheads(:,:)
real(kind=real64), intent(in) :: GLs(:)
real(kind=real64), intent(in) :: dt
logical, intent(in), optional :: debug

Return Value real(kind=real64), allocatable, (:)

public function tanks_with_parameters(tanks, params) result(ret_tanks)

Arguments

Type IntentOptional Attributes Name
type(Tank_), intent(in) :: tanks(:)
real(kind=real64), intent(in) :: params(:)

Return Value type(Tank_), allocatable, (:)

public function get_params_tank_TankModelClassclass(tanks) result(params)

Arguments

Type IntentOptional Attributes Name
type(Tank_), intent(in) :: tanks(:)

Return Value real(kind=real64), allocatable, (:)

public function to_waterhead_Tank_TankModelClass(this, GL) result(waterhead_mm)

Arguments

Type IntentOptional Attributes Name
class(Tank_), intent(in) :: this
real(kind=real64), intent(in) :: GL

Return Value real(kind=real64)


Subroutines

public subroutine initTank_TankModelClass(this, coeff, height, GL_bottom, name)

Arguments

Type IntentOptional Attributes Name
class(Tank_), intent(inout) :: this
real(kind=real64), intent(in) :: coeff(:)
real(kind=real64), intent(in) :: height(:)
real(kind=real64), intent(in) :: GL_bottom
character(len=*), intent(in) :: name

public subroutine initTankModel_TankModelClass(this)

Arguments

Type IntentOptional Attributes Name
class(TankModel_), intent(inout) :: this

public subroutine addTankModel_TankModelClass(this, tank)

Arguments

Type IntentOptional Attributes Name
class(TankModel_), intent(inout) :: this
type(Tank_), intent(in) :: tank

public subroutine connectTankModel_TankModelClass(this, tankIdx, coeff, height)

Arguments

Type IntentOptional Attributes Name
class(TankModel_), intent(inout) :: this
integer(kind=int32), intent(in) :: tankIdx(1:2)
real(kind=real64), intent(in) :: coeff
real(kind=real64), intent(in) :: height

public subroutine setParamsTankModel_TankModelClass(this, params)

Arguments

Type IntentOptional Attributes Name
class(TankModel_), intent(inout) :: this
real(kind=real64), intent(in) :: params(:)

public subroutine connectTank_TankModelClass(this, tank, coeff, height)

Arguments

Type IntentOptional Attributes Name
class(Tank_), intent(inout), target :: this
type(Tank_), intent(inout), target :: tank
real(kind=real64), intent(in) :: coeff
real(kind=real64), intent(in) :: height

public subroutine updateTank_TankModelClass(this, dt)

Arguments

Type IntentOptional Attributes Name
class(Tank_), intent(inout) :: this
real(kind=real64), intent(in) :: dt

public subroutine showUnit_TankModelClass(this)

Arguments

Type IntentOptional Attributes Name
class(TankModel_), intent(in) :: this

public subroutine show_TankModelClass(this)

Arguments

Type IntentOptional Attributes Name
class(TankModel_), intent(in) :: this