Subroutine : |
|
xy_SurfAlbedo(0:imax-1, 1:jmax) : | real(DP), intent(in )
|
xyz_Press(0:imax-1, 1:jmax, 1:kmax) : | real(DP), intent(in )
|
xyr_Press(0:imax-1, 1:jmax, 0:kmax) : | real(DP), intent(in )
|
xyz_Temp(0:imax-1, 1:jmax, 1:kmax) : | real(DP), intent(in )
|
xyz_QH2OVap(0:imax-1, 1:jmax, 1:kmax) : | real(DP), intent(in )
: | $ q $ . 混合比. Mass mixing ratio of constituents (1)
|
|
xyz_QH2OLiq(0:imax-1, 1:jmax, 1:kmax) : | real(DP), intent(in )
|
xyz_Height(0:imax-1, 1:jmax, 1:kmax) : | real(DP), intent(in )
|
xy_SurfTemp(0:imax-1, 1:jmax) : | real(DP), intent(in )
|
xyr_RadSFlux(0:imax-1, 1:jmax, 0:kmax) : | real(DP), intent(out)
|
xyr_RadLFlux(0:imax-1, 1:jmax, 0:kmax) : | real(DP), intent(out)
|
xyra_DelRadLFlux(0:imax-1, 1:jmax, 0:kmax, 0:1) : | real(DP), intent(out)
|
subroutine RadiationDcpamEV2Flux( xy_SurfAlbedo, xyz_Press, xyr_Press, xyz_Temp, xyz_QH2OVap, xyz_QH2OLiq, xyz_Height, xy_SurfTemp, xyr_RadSFlux, xyr_RadLFlux, xyra_DelRadLFlux )
! USE statements
!
! メッセージ出力
! Message output
!
use dc_message, only: MessageNotify
! O3 分布の設定
! Set O3 distribution
!
use set_o3, only: SetO3
!!$ ! dcpam 地球大気向け短波放射モデル Ver. 2
!!$ ! dcpam short wave radiation model for the Earth's atmosphere Ver. 2
!!$ !
!!$ use radiation_dcpam_E_SW_V2, only: RadiationDcpamESWV2Flux
! dcpam 地球大気向け短波放射モデル Ver. 2.1
! dcpam short wave radiation model for the Earth's atmosphere Ver. 2.1
!
use radiation_dcpam_E_SW_V2_1, only: RadiationDcpamESWV21Flux
!!$ ! dcpam 地球大気向け長波放射モデル Ver. 2
!!$ ! dcpam long wave radiation model for the Earth's atmosphere Ver. 2
!!$ !
!!$ use radiation_dcpam_E_LW_V2, only : RadiationDcpamELWV2Flux
!!$
!!$ ! dcpam 地球大気向け長波放射モデル Ver. 2.1
!!$ ! dcpam long wave radiation model for the Earth's atmosphere Ver. 2.1
!!$ !
!!$ use radiation_dcpam_E_LW_V2_1, only : RadiationDcpamELWV21Flux
!!$
!!$ ! dcpam 地球大気向け長波放射モデル Ver. 2.2
!!$ ! dcpam long wave radiation model for the Earth's atmosphere Ver. 2.2
!!$ !
!!$ use radiation_dcpam_E_LW_V2_2, only : RadiationDcpamELWV22Flux
! dcpam 地球大気向け長波放射モデル Ver. 2.3
! dcpam long wave radiation model for the Earth's atmosphere Ver. 2.3
!
use radiation_dcpam_E_LW_V2_3, only : RadiationDcpamELWV23Flux
real(DP), intent(in ) :: xy_SurfAlbedo (0:imax-1, 1:jmax)
real(DP), intent(in ) :: xyz_Press (0:imax-1, 1:jmax, 1:kmax)
real(DP), intent(in ) :: xyr_Press (0:imax-1, 1:jmax, 0:kmax)
real(DP), intent(in ) :: xyz_Temp (0:imax-1, 1:jmax, 1:kmax)
real(DP), intent(in ) :: xyz_QH2OVap (0:imax-1, 1:jmax, 1:kmax)
! $ q $ . 混合比. Mass mixing ratio of constituents (1)
real(DP), intent(in ) :: xyz_QH2OLiq (0:imax-1, 1:jmax, 1:kmax)
real(DP), intent(in ) :: xyz_Height (0:imax-1, 1:jmax, 1:kmax)
real(DP), intent(in ) :: xy_SurfTemp (0:imax-1, 1:jmax)
real(DP), intent(out) :: xyr_RadSFlux (0:imax-1, 1:jmax, 0:kmax)
real(DP), intent(out) :: xyr_RadLFlux (0:imax-1, 1:jmax, 0:kmax)
real(DP), intent(out) :: xyra_DelRadLFlux(0:imax-1, 1:jmax, 0:kmax, 0:1)
! Work variables
!
real(DP) :: xyz_QH2OSol(0:imax-1, 1:jmax, 1:kmax)
! Amount of water ice is assumed to be zero, for the moment.
! In future, this value will be an argument of this subroutine.
!
xyz_QH2OSol = 0.0_DP
! 初期化
! Initialization
!
if ( .not. radiation_dcpam_E_V2_inited ) call RadiationDcpamEV2Init
! O3 分布の設定
! Setting of O3 distribution
!
call SetO3( xyz_Press, xyz_QO3 )
!!$ select case ( SWVer )
!!$ case ( 0 )
!!$ ! dcpam 地球大気向け短波放射モデル Ver. 2
!!$ ! dcpam short wave radiation model for the Earth's atmosphere Ver. 2
!!$ !
!!$ call RadiationDcpamESWV2Flux( &
!!$ & xy_SurfAlbedo, &
!!$ & xyz_Press, xyr_Press, xyz_Temp, xyz_QH2OVap, xyz_QO3, xyz_Height, &
!!$ & xyr_RadSFlux &
!!$ & )
!!$ case ( 1 )
! dcpam 地球大気向け短波放射モデル Ver. 2.1
! dcpam short wave radiation model for the Earth's atmosphere Ver. 2.1
!
call RadiationDcpamESWV21Flux( xy_SurfAlbedo, xyz_Press, xyr_Press, xyz_Temp, xyz_QH2OVap, xyz_QH2OLiq, xyz_QH2OSol, xyz_QO3, xyr_RadSFlux )
!!$ case default
!!$ call MessageNotify( 'E', module_name, 'SW model version %d is not supported.', i = (/ LWVer /) )
!!$ end select
!!$ select case ( LWVer )
!!$ case ( 0 )
!!$ call RadiationDcpamELWV2Flux( &
!!$ & xyz_Press, xyr_Press, xyz_Temp, xy_SurfTemp, & ! (in )
!!$ & xyz_QH2OVap, xyz_QO3, & ! (in )
!!$ & xyr_RadLFlux, xyra_DelRadLFlux & ! (out)
!!$ & )
!!$ case ( 1 )
!!$ call RadiationDcpamELWV21Flux( &
!!$ & xyz_Press, xyr_Press, xyz_Temp, xy_SurfTemp, & ! (in )
!!$ & xyz_QH2OVap, xyz_QO3, & ! (in )
!!$ & xyr_RadLFlux, xyra_DelRadLFlux & ! (out)
!!$ & )
!!$ case ( 2 )
!!$ call RadiationDcpamELWV22Flux( &
!!$ & xyz_Press, xyr_Press, xyz_Temp, xy_SurfTemp, & ! (in )
!!$ & xyz_QH2OVap, xyz_QO3, & ! (in )
!!$ & xyr_RadLFlux, xyra_DelRadLFlux & ! (out)
!!$ & )
!!$ case ( 3 )
call RadiationDcpamELWV23Flux( xyz_Press, xyr_Press, xyz_Temp, xy_SurfTemp, xyz_QH2OVap, xyz_QH2OLiq, xyz_QH2OSol, xyz_QO3, xyr_RadLFlux, xyra_DelRadLFlux )
!!$ case default
!!$ call MessageNotify( 'E', module_name, 'LW model version %d is not supported.', i = (/ LWVer /) )
!!$ end select
end subroutine RadiationDcpamEV2Flux