7.1
general documentation
rayso.f90 File Reference

Compute solar fluxes for both clear and cloudy atmosphere following Lacis and Hansen (1974). The multiple diffusion is taken into account by an addition method and overlapping between water vapor and liquid water with k distribution method. Some improvements from original version concerns: More...

Functions/Subroutines

subroutine rayso (ivertc, k1, kmray, heuray, imer1, albe, qqv, qqqv, qqvinf, zqq, zray, qvray, qlray, fneray, romray, preray, temray, aeroso, fos, rayst, ncray)
 
double precision function rayuoz (zh)
 Computes ozone concentration for a given altitude. More...
 
double precision function raysve (y)
 Aborption function of the solar radiation by water vapor. More...
 
double precision function dzyama (y, dy)
 Aborption derivative-function of the solar radiation by water vapor. More...
 
double precision function raysoz (x)
 Aborption function of the solar radiation by ozone. More...
 
subroutine reftra (pioc, piaero, gasym, gaero, tauc, taua, ref, tra, epsc, dqqv)
 Compute reflexion and transmission. More...
 

Detailed Description

Compute solar fluxes for both clear and cloudy atmosphere following Lacis and Hansen (1974). The multiple diffusion is taken into account by an addition method and overlapping between water vapor and liquid water with k distribution method. Some improvements from original version concerns:

  • introduction of cloud fraction with hazardous recovering
  • introduction of aerosol diffusion in the same way as for cloud droplets but with specific optical properties for aerosols.

Function/Subroutine Documentation

◆ dzyama()

double precision function rayso::dzyama ( double precision, intent(in)  y,
double precision, intent(in)  dy 
)

Aborption derivative-function of the solar radiation by water vapor.

Parameters
[in]yoptical depth for water vapor
[in]dyTODO?

◆ rayso()

subroutine rayso ( integer  ivertc,
integer  k1,
integer  kmray,
double precision  heuray,
integer  imer1,
double precision  albe,
double precision, dimension(kmx+1)  qqv,
double precision, dimension(kmx+1)  qqqv,
double precision  qqvinf,
double precision, dimension(kmx+1)  zqq,
double precision, dimension(kmx)  zray,
double precision, dimension(kmx)  qvray,
double precision, dimension(kmx)  qlray,
double precision, dimension(kmx)  fneray,
double precision, dimension(kmx)  romray,
double precision, dimension(kmx)  preray,
double precision, dimension(kmx)  temray,
double precision, dimension(kmx)  aeroso,
double precision  fos,
double precision, dimension(kmx)  rayst,
double precision, dimension(kmx)  ncray 
)
Parameters
[in]ivertcindex of vertical profile
[in]k1index for ground level
[in]kmrayvertical levels number for radiation
[in]heurayUniversal time (Hour)
[in]imer1sea index
[in]albealbedo
[in]qqvoptical depth for water vapor (0,z)
[in]qqqvidem for intermediate levels
[in]qqvinfidem qqv but for altitude above 11000m
[in]zqqvertical levels
[in]zrayaltitude (physical mesh)
[in]qvrayspecific umidity for water vapor
[in]qlrayspecific humidity for liquid water
[in]fneraycloud fraction
[in]romrayair density
[in]preraypressure
[in]temraytemperature
[in]aerosoaerosol concentration in micro-g/m3
[out]fosglobal downward solar flux at the ground
[out]raystflux divergence of solar radiation

◆ raysoz()

double precision function rayso::raysoz ( double precision, intent(in)  x)

Aborption function of the solar radiation by ozone.

Parameters
[in]xoptical depth for ozone

◆ raysve()

double precision function rayso::raysve ( double precision, intent(in)  y)

Aborption function of the solar radiation by water vapor.

Parameters
[in]yoptical depth for water vapor

◆ rayuoz()

double precision function rayso::rayuoz ( double precision, intent(in)  zh)

Computes ozone concentration for a given altitude.

Parameters
[in]zhaltitude

◆ reftra()

subroutine reftra ( double precision, intent(in)  pioc,
double precision, intent(in)  piaero,
double precision, intent(in)  gasym,
double precision, intent(in)  gaero,
double precision, intent(in)  tauc,
double precision, intent(in)  taua,
double precision, intent(inout)  ref,
double precision, intent(inout)  tra,
double precision, intent(in)  epsc,
double precision, intent(in)  dqqv 
)

Compute reflexion and transmission.

Parameters
[in]piocAlbedo of simple diffusion for cloud (water)
[in]piaeroAlbedo of simple diffusion for aerosol
[in]gasymAsymmetry factor for clouds
[in]gaeroAsymmetry factor for aerosols
[in]taucOptical depth for clouds
[in]tauaOptical depth for aersols
[out]refReflexion
[out]traTransmission
[in]epscclipping threshold
[in]dqqvOptical depth for Water vapor