Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ncol | input dimensions |
||
integer, | intent(in) | :: | nlay | input dimensions |
||
integer, | intent(in) | :: | nbnd | input dimensions |
||
integer, | intent(in) | :: | ngpt | input dimensions |
||
integer, | intent(in) | :: | nflav | table dimensions |
||
integer, | intent(in) | :: | neta | table dimensions |
||
integer, | intent(in) | :: | npres | table dimensions |
||
integer, | intent(in) | :: | ntemp | table dimensions |
||
integer, | intent(in) | :: | nPlanckTemp | table dimensions |
||
real(kind=wp), | intent(in), | dimension(ncol,nlay ) | :: | tlay | temperature at layer centers (K) |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay+1) | :: | tlev | temperature at interfaces (K) |
|
real(kind=wp), | intent(in), | dimension(ncol ) | :: | tsfc | surface temperture |
|
integer, | intent(in) | :: | sfc_lay | index into surface layer |
||
real(kind=wp), | intent(in), | dimension(2,2,2,ncol,nlay,nflav) | :: | fmajor | interpolation weights for major gases - computed in interpolation() |
|
integer, | intent(in), | dimension(2, ncol,nlay,nflav) | :: | jeta | interpolation indexes in eta - computed in interpolation() |
|
logical(kind=wl), | intent(in), | dimension( ncol,nlay) | :: | tropo | use upper- or lower-atmospheric tables? |
|
integer, | intent(in), | dimension( ncol,nlay) | :: | jtemp | interpolation indexes in temperature and pressure - computed in interpolation() |
|
integer, | intent(in), | dimension( ncol,nlay) | :: | jpress | interpolation indexes in temperature and pressure - computed in interpolation() |
|
integer, | intent(in), | dimension(ngpt) | :: | gpoint_bands | band to which each g-point belongs |
|
integer, | intent(in), | dimension(2, nbnd) | :: | band_lims_gpt | start and end g-point for each band |
|
real(kind=wp), | intent(in), | dimension(ntemp,neta,npres+1,ngpt) | :: | pfracin | Fraction of the Planck function in each g-point |
|
real(kind=wp), | intent(in) | :: | temp_ref_min | interpolation constants |
||
real(kind=wp), | intent(in) | :: | totplnk_delta | interpolation constants |
||
real(kind=wp), | intent(in), | dimension(nPlanckTemp,nbnd) | :: | totplnk | Total Planck function by band at each temperature |
|
integer, | intent(in), | dimension(2,ngpt) | :: | gpoint_flavor | major gas flavor (pair) by upper/lower, g-point |
|
real(kind=wp), | intent(out), | dimension(ncol, ngpt) | :: | sfc_src | Planck emission from the surface |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay, ngpt) | :: | lay_src | Planck emission from layer centers |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1,ngpt) | :: | lev_src | Planck emission from layer boundaries |
|
real(kind=wp), | intent(out), | dimension(ncol, ngpt) | :: | sfc_source_Jac | Jacobian (derivative) of the surface Planck source with respect to surface temperature |
Compute minor and major species optical depth using pre-computed interpolation coefficients (jeta,jtemp,jpress) and weights (fmajor, fminor)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ncol | array sizes |
||
integer, | intent(in) | :: | nlay | array sizes |
||
integer, | intent(in) | :: | nbnd | array sizes |
||
integer, | intent(in) | :: | ngpt | array sizes |
||
integer, | intent(in) | :: | ngas | tables sizes |
||
integer, | intent(in) | :: | nflav | tables sizes |
||
integer, | intent(in) | :: | neta | tables sizes |
||
integer, | intent(in) | :: | npres | tables sizes |
||
integer, | intent(in) | :: | ntemp | tables sizes |
||
integer, | intent(in) | :: | nminorlower | table sizes |
||
integer, | intent(in) | :: | nminorklower | table sizes |
||
integer, | intent(in) | :: | nminorupper | table sizes |
||
integer, | intent(in) | :: | nminorkupper | table sizes |
||
integer, | intent(in) | :: | idx_h2o | index of water vapor in col_gas |
||
integer, | intent(in), | dimension(2,ngpt) | :: | gpoint_flavor | major gas flavor (pair) by upper/lower, g-point |
|
integer, | intent(in), | dimension(2,nbnd) | :: | band_lims_gpt | beginning and ending g-point for each band |
|
real(kind=wp), | intent(in), | dimension(ntemp,neta,npres+1,ngpt) | :: | kmajor | absorption coefficient table - major gases |
|
real(kind=wp), | intent(in), | dimension(ntemp,neta,nminorklower) | :: | kminor_lower | absorption coefficient table - minor gases, lower atmosphere |
|
real(kind=wp), | intent(in), | dimension(ntemp,neta,nminorkupper) | :: | kminor_upper | absorption coefficient table - minor gases, upper atmosphere |
|
integer, | intent(in), | dimension(2,nminorlower) | :: | minor_limits_gpt_lower | beginning and ending g-point for each minor gas |
|
integer, | intent(in), | dimension(2,nminorupper) | :: | minor_limits_gpt_upper | ||
logical(kind=wl), | intent(in), | dimension( nminorlower) | :: | minor_scales_with_density_lower | generic treatment of minor gases - scales with density (e.g. continuum, collision-induced absorption)? |
|
logical(kind=wl), | intent(in), | dimension( nminorupper) | :: | minor_scales_with_density_upper | ||
logical(kind=wl), | intent(in), | dimension( nminorlower) | :: | scale_by_complement_lower | generic treatment of minor gases - scale by density (e.g. self-continuum) or complement? |
|
logical(kind=wl), | intent(in), | dimension( nminorupper) | :: | scale_by_complement_upper | ||
integer, | intent(in), | dimension( nminorlower) | :: | idx_minor_lower | index of each minor gas in col_gas |
|
integer, | intent(in), | dimension( nminorupper) | :: | idx_minor_upper | ||
integer, | intent(in), | dimension( nminorlower) | :: | idx_minor_scaling_lower | for this minor gas, index of the "scaling gas" in col_gas |
|
integer, | intent(in), | dimension( nminorupper) | :: | idx_minor_scaling_upper | ||
integer, | intent(in), | dimension( nminorlower) | :: | kminor_start_lower | starting g-point index in minor gas absorption table |
|
integer, | intent(in), | dimension( nminorupper) | :: | kminor_start_upper | ||
logical(kind=wl), | intent(in), | dimension(ncol,nlay) | :: | tropo | use upper- or lower-atmospheric tables? |
|
real(kind=wp), | intent(in), | dimension(2, ncol,nlay,nflav ) | :: | col_mix | combination of major species's column amounts - computed in interpolation() |
|
real(kind=wp), | intent(in), | dimension(2,2,2,ncol,nlay,nflav ) | :: | fmajor | interpolation weights for major gases - computed in interpolation() |
|
real(kind=wp), | intent(in), | dimension(2,2, ncol,nlay,nflav ) | :: | fminor | interpolation weights for minor gases - computed in interpolation() |
|
real(kind=wp), | intent(in), | dimension( ncol,nlay ) | :: | play | input temperature and pressure |
|
real(kind=wp), | intent(in), | dimension( ncol,nlay ) | :: | tlay | input temperature and pressure |
|
real(kind=wp), | intent(in), | dimension( ncol,nlay,0:ngas) | :: | col_gas | input column gas amount (molecules/cm^2) |
|
integer, | intent(in), | dimension(2, ncol,nlay,nflav ) | :: | jeta | interpolation indexes in eta - computed in interpolation() |
|
integer, | intent(in), | dimension( ncol,nlay ) | :: | jtemp | interpolation indexes in temperature - computed in interpolation() |
|
integer, | intent(in), | dimension( ncol,nlay ) | :: | jpress | interpolation indexes in pressure - computed in interpolation() |
|
real(kind=wp), | intent(inout), | dimension(ncol,nlay,ngpt) | :: | tau | aborption optional depth |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ncol | input dimensions |
||
integer, | intent(in) | :: | nlay | input dimensions |
||
integer, | intent(in) | :: | nbnd | input dimensions |
||
integer, | intent(in) | :: | ngpt | input dimensions |
||
integer, | intent(in) | :: | ngas | table dimensions |
||
integer, | intent(in) | :: | nflav | table dimensions |
||
integer, | intent(in) | :: | neta | table dimensions |
||
integer, | intent(in) | :: | npres | table dimensions |
||
integer, | intent(in) | :: | ntemp | table dimensions |
||
integer, | intent(in), | dimension(2,ngpt) | :: | gpoint_flavor | major gas flavor (pair) by upper/lower, g-point |
|
integer, | intent(in), | dimension(2,nbnd) | :: | band_lims_gpt | start and end g-point for each band |
|
real(kind=wp), | intent(in), | dimension(ntemp,neta,ngpt,2) | :: | krayl | Rayleigh scattering coefficients |
|
integer, | intent(in) | :: | idx_h2o | index of water vapor in col_gas |
||
real(kind=wp), | intent(in), | dimension(ncol,nlay) | :: | col_dry | column amount of dry air |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay,0:ngas) | :: | col_gas | input column gas amount (molecules/cm^2) |
|
real(kind=wp), | intent(in), | dimension(2,2,ncol,nlay,nflav) | :: | fminor | interpolation weights for major gases - computed in interpolation() |
|
integer, | intent(in), | dimension(2, ncol,nlay,nflav) | :: | jeta | interpolation indexes in eta - computed in interpolation() |
|
logical(kind=wl), | intent(in), | dimension(ncol,nlay) | :: | tropo | use upper- or lower-atmospheric tables? |
|
integer, | intent(in), | dimension(ncol,nlay) | :: | jtemp | interpolation indexes in temperature - computed in interpolation() |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay,ngpt) | :: | tau_rayleigh | Rayleigh optical depth |
Compute interpolation coefficients for calculations of major optical depths, minor optical depths, Rayleigh, and Planck fractions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ncol | physical domain size |
||
integer, | intent(in) | :: | nlay | physical domain size |
||
integer, | intent(in) | :: | ngas | k-distribution table dimensions |
||
integer, | intent(in) | :: | nflav | k-distribution table dimensions |
||
integer, | intent(in) | :: | neta | k-distribution table dimensions |
||
integer, | intent(in) | :: | npres | k-distribution table dimensions |
||
integer, | intent(in) | :: | ntemp | k-distribution table dimensions |
||
integer, | intent(in), | dimension(2,nflav) | :: | flavor | index into vmr_ref of major gases for each flavor |
|
real(kind=wp), | intent(in), | dimension(npres) | :: | press_ref_log | log of pressure dimension in RRTMGP tables |
|
real(kind=wp), | intent(in), | dimension(ntemp) | :: | temp_ref | temperature dimension in RRTMGP tables |
|
real(kind=wp), | intent(in) | :: | press_ref_log_delta | constants related to RRTMGP tables |
||
real(kind=wp), | intent(in) | :: | temp_ref_min | constants related to RRTMGP tables |
||
real(kind=wp), | intent(in) | :: | temp_ref_delta | constants related to RRTMGP tables |
||
real(kind=wp), | intent(in) | :: | press_ref_trop_log | constants related to RRTMGP tables |
||
real(kind=wp), | intent(in), | dimension(2,0:ngas,ntemp) | :: | vmr_ref | reference volume mixing ratios used in compute "binary species parameter" eta |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay) | :: | play | input pressure (Pa?) and temperature (K) |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay) | :: | tlay | input pressure (Pa?) and temperature (K) |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay,0:ngas) | :: | col_gas | input column gas amount - molecules/cm^2 |
|
integer, | intent(out), | dimension(ncol,nlay) | :: | jtemp | temperature and pressure interpolation indexes |
|
real(kind=wp), | intent(out), | dimension(2,2,2,ncol,nlay,nflav) | :: | fmajor | Interpolation weights in pressure, eta, strat/trop |
|
real(kind=wp), | intent(out), | dimension(2,2, ncol,nlay,nflav) | :: | fminor | Interpolation fraction in eta, strat/trop |
|
real(kind=wp), | intent(out), | dimension(2, ncol,nlay,nflav) | :: | col_mix | combination of major species's column amounts (first index is strat/trop) |
|
logical(kind=wl), | intent(out), | dimension(ncol,nlay) | :: | tropo | use lower (or upper) atmosphere tables |
|
integer, | intent(out), | dimension(2, ncol,nlay,nflav) | :: | jeta | Index for binary species interpolation |
|
integer, | intent(out), | dimension(ncol,nlay) | :: | jpress | temperature and pressure interpolation indexes |