interface
subroutine atm_setup(inversion,error)
use atm_version
!---------------------------------------------------------------------
! @ public
! Set the ATM version to be used. Supported versions are 1985,
! and 2009. 'OLD' (resp. 'NEW') is an alias for 1985 (resp. 2009).
!---------------------------------------------------------------------
character(len=*), intent(in) :: inversion ! User input version
logical, intent(inout) :: error ! Error flag
end subroutine atm_setup
!
subroutine atm_atmosp_get(ctype_out,humidity_out,wvsh_out,tlr_out,top_out, &
p_step_out,p_step_factor_out,error)
use atm_version
!---------------------------------------------------------------------
! @ public
! Public entry point to:
! 1) get the C++ global variables into the Fortran-SIC ones,
! 2) return these latter ones.
! Warning: these variables make sense only with ATM 2009. Return ATM
! 2009 values even if it is not currently used (not an error).
!---------------------------------------------------------------------
character(len=*), intent(out) :: ctype_out ! Atmospheric type (as a string)
real(4), intent(out) :: humidity_out ! [%] Ground Relative Humidity (indication)
real(4), intent(out) :: wvsh_out ! [km] Water vapor scale height
real(4), intent(out) :: tlr_out ! [K/km] Tropospheric lapse rate
real(4), intent(out) :: top_out ! [km] Upper atm. boundary for calculations
real(4), intent(out) :: p_step_out ! [mb] Primary pressure step
real(4), intent(out) :: p_step_factor_out ! [] Pressure step ratio between two consecutive layers
logical, intent(inout) :: error ! Logical error flag
end subroutine atm_atmosp_get
!
subroutine atm_atmosp_set(ctype_in,humidity_in,wvsh_in,tlr_in,top_in, &
p_step_in,p_step_factor_in,error)
use atm_version
!---------------------------------------------------------------------
! @ public
! Public entry point to:
! 1) set the Fortran-SIC global variables values,
! 2) set the C++ global variables from these values.
! Warning: these variables make sense only with ATM 2009. Nothing
! will be done if ATM 2009 is not the version in use (not an error).
! NB: 'ctype_in' is not case-sensitive, and can be shorten as long
! as it is not ambiguous.
!---------------------------------------------------------------------
character(len=*), intent(in) :: ctype_in ! Atmospheric type (as a string)
real(4), intent(in) :: humidity_in ! [%] Ground Relative Humidity (indication)
real(4), intent(in) :: wvsh_in ! [km] Water vapor scale height
real(4), intent(in) :: tlr_in ! [K/km] Tropospheric lapse rate
real(4), intent(in) :: top_in ! [km] Upper atm. boundary for calculations
real(4), intent(in) :: p_step_in ! [mb] Primary pressure step
real(4), intent(in) :: p_step_factor_in ! [] Pressure step ratio between two consecutive layers
logical, intent(inout) :: error ! Logical error flag
end subroutine atm_atmosp_set
!
subroutine atm_atmosp(t0,p0,h0)
use atm_version
!---------------------------------------------------------------------
! @ public
! Setup the atmospheric structure
!---------------------------------------------------------------------
real(4), intent(in) :: t0 ! Ground temperature [K]
real(4), intent(in) :: p0 ! Ground pressure [hPa]
real(4), intent(in) :: h0 ! Altitude of the site [km]
end subroutine atm_atmosp
!
subroutine atm_transm(water,airmass,freq,temi,tatm,tauox,tauw,taut,ier)
use atm_version
!---------------------------------------------------------------------
! @ public
! Return the atmospheric temperatures and opacities given the amount
! of water and the frequency, for current atmosphere previously set
! with 'atm_atmosp()'
!---------------------------------------------------------------------
real(4), intent(in) :: water ! Precipitable water vapor [mm]
real(4), intent(in) :: airmass ! Number of air masses []
real(4), intent(in) :: freq ! Frequency [GHz]
real(4), intent(out) :: temi ! Atmospheric emission [K]
real(4), intent(out) :: tatm ! Mean temperature [K]
real(4), intent(out) :: tauox ! Opacity (dry component) [neper]
real(4), intent(out) :: tauw ! Opacity (wet component) [neper]
real(4), intent(out) :: taut ! Total opacity [neper]
integer(4), intent(out) :: ier ! Error status
end subroutine atm_transm
!
subroutine atm_path(water,airmass,freq,path,ier)
use atm_version
!---------------------------------------------------------------------
! @ public
! Integrated optical length of current atmosphere
!---------------------------------------------------------------------
real(4), intent(in) :: water ! Precipitable water vapor [mm]
real(4), intent(in) :: airmass ! Number of air masses []
real(4), intent(in) :: freq ! Frequency [GHz]
real(4), intent(out) :: path ! Optical length [cm]
integer(4), intent(out) :: ier ! Error status
end subroutine atm_path
!
end interface