Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
| mo-jmanners | James Manners | Met Office | 2025-12-18 |
| t00sa | Sam Clarke-Green | Met Office | 2026-03-02 |
| Pierre-siddall | Pierre Siddall | Met Office | 2026-03-16 |
| nichollsh | Harrison Nicholls | University of Cambridge | 2026-03-24 |
180 changes: 132 additions & 48 deletions src/interface_core/socrates_set_spectrum.F90
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,20 @@ module socrates_set_spectrum
contains

subroutine set_spectrum(n_instances, spectrum, spectrum_name, spectral_file, &
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, l_nh3, &
l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, l_hfc125, l_hfc134a, &
l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, l_na, l_k, l_feh, l_crh, l_li, &
l_rb, l_cs, l_ph3, l_c2h2, l_hcn, l_h2s, l_ar, l_o, l_n, l_no3, l_n2o5, &
l_hono, l_ho2no2, l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, &
l_hf, l_cosso, l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, &
l_ch3cocho, l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, &
l_pan, l_ch3ono2, &
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, &
l_nh3, l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, &
l_hfc125, l_hfc134a, l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, &
l_na, l_k, l_feh, l_crh, l_li, l_rb, l_cs, l_ph3, l_c2h2, l_hcn, &
l_h2s, l_ar, l_air, l_o, l_n, l_no3, l_n2o5, l_hono, l_ho2no2, &
l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, l_hf, l_cosso, &
l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, l_ch3cocho, &
l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, l_pan, &
l_ch3ono2, l_c2h3, l_c2h4, l_oh, l_hco, l_n2o4, l_c2n2, l_n2h4, &
l_n2o3, l_si, l_sio, l_sio2, l_mg, l_mg2, l_mgo, l_tio2, l_fe, &
l_feo, l_ca, l_cao, l_alo, l_na2, l_nao, l_naoh, l_koh, l_hminus, &
l_ps, l_po, l_pn, l_ch3sh, l_ch3s, l_c2h6s, l_c2h6s2, l_c3h4, &
l_c4h3, l_sih4, l_s2, l_sf6, l_cs2, l_s8, l_cn, l_ch3cl, l_ch3f, &
l_ch3br, &
l_all_gases, wavelength_blue)

use errormessagelength_mod, only: errormessagelength
Expand All @@ -58,14 +64,21 @@ subroutine set_spectrum(n_instances, spectrum, spectrum_name, spectral_file, &
character(len=*), intent(in), optional :: spectral_file

logical, intent(in), optional :: &
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, l_nh3, &
l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, l_hfc125, l_hfc134a, &
l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, l_na, l_k, l_feh, l_crh, l_li, &
l_rb, l_cs, l_ph3, l_c2h2, l_hcn, l_h2s, l_ar, l_o, l_n, l_no3, l_n2o5, &
l_hono, l_ho2no2, l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, &
l_hf, l_cosso, l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, &
l_ch3cocho, l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, &
l_pan, l_ch3ono2, l_all_gases
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, &
l_nh3, l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, &
l_hfc125, l_hfc134a, l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, &
l_na, l_k, l_feh, l_crh, l_li, l_rb, l_cs, l_ph3, l_c2h2, l_hcn, &
l_h2s, l_ar, l_air, l_o, l_n, l_no3, l_n2o5, l_hono, l_ho2no2, &
l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, l_hf, l_cosso, &
l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, l_ch3cocho, &
l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, l_pan, &
l_ch3ono2, l_c2h3, l_c2h4, l_oh, l_hco, l_n2o4, l_c2n2, l_n2h4, &
l_n2o3, l_si, l_sio, l_sio2, l_mg, l_mg2, l_mgo, l_tio2, l_fe, &
l_feo, l_ca, l_cao, l_alo, l_na2, l_nao, l_naoh, l_koh, l_hminus, &
l_ps, l_po, l_pn, l_ch3sh, l_ch3s, l_c2h6s, l_c2h6s2, l_c3h4, &
l_c4h3, l_sih4, l_s2, l_sf6, l_cs2, l_s8, l_cn, l_ch3cl, l_ch3f, &
l_ch3br, &
l_all_gases

real(RealExt), intent(in), optional :: wavelength_blue

Expand Down Expand Up @@ -132,14 +145,21 @@ subroutine set_spectrum(n_instances, spectrum, spectrum_name, spectral_file, &
end if
! Remove gases that are not required
call compress_spectrum(spec, &
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, l_nh3, &
l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, l_hfc125, l_hfc134a, &
l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, l_na, l_k, l_feh, l_crh, l_li, &
l_rb, l_cs, l_ph3, l_c2h2, l_hcn, l_h2s, l_ar, l_o, l_n, l_no3, l_n2o5, &
l_hono, l_ho2no2, l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, &
l_hf, l_cosso, l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, &
l_ch3cocho, l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, &
l_pan, l_ch3ono2, l_all_gases)
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, &
l_nh3, l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, &
l_hfc125, l_hfc134a, l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, &
l_na, l_k, l_feh, l_crh, l_li, l_rb, l_cs, l_ph3, l_c2h2, l_hcn, &
l_h2s, l_ar, l_air, l_o, l_n, l_no3, l_n2o5, l_hono, l_ho2no2, &
l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, l_hf, l_cosso, &
l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, l_ch3cocho, &
l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, l_pan, &
l_ch3ono2, l_c2h3, l_c2h4, l_oh, l_hco, l_n2o4, l_c2n2, l_n2h4, &
l_n2o3, l_si, l_sio, l_sio2, l_mg, l_mg2, l_mgo, l_tio2, l_fe, &
l_feo, l_ca, l_cao, l_alo, l_na2, l_nao, l_naoh, l_koh, l_hminus, &
l_ps, l_po, l_pn, l_ch3sh, l_ch3s, l_c2h6s, l_c2h6s2, l_c3h4, &
l_c4h3, l_sih4, l_s2, l_sf6, l_cs2, l_s8, l_cn, l_ch3cl, l_ch3f, &
l_ch3br, &
l_all_gases)
! Map the gas k-terms and weights to the sub-bands
call map_sub_bands(spec)
end if
Expand All @@ -150,38 +170,58 @@ end subroutine set_spectrum


subroutine compress_spectrum(spec, &
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, l_nh3, &
l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, l_hfc125, l_hfc134a, &
l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, l_na, l_k, l_feh, l_crh, l_li, &
l_rb, l_cs, l_ph3, l_c2h2, l_hcn, l_h2s, l_ar, l_o, l_n, l_no3, l_n2o5, &
l_hono, l_ho2no2, l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, &
l_hf, l_cosso, l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, &
l_ch3cocho, l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, &
l_pan, l_ch3ono2, l_all_gases)
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, &
l_nh3, l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, &
l_hfc125, l_hfc134a, l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, &
l_na, l_k, l_feh, l_crh, l_li, l_rb, l_cs, l_ph3, l_c2h2, l_hcn, &
l_h2s, l_ar, l_air, l_o, l_n, l_no3, l_n2o5, l_hono, l_ho2no2, &
l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, l_hf, l_cosso, &
l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, l_ch3cocho, &
l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, l_pan, &
l_ch3ono2, l_c2h3, l_c2h4, l_oh, l_hco, l_n2o4, l_c2n2, l_n2h4, &
l_n2o3, l_si, l_sio, l_sio2, l_mg, l_mg2, l_mgo, l_tio2, l_fe, &
l_feo, l_ca, l_cao, l_alo, l_na2, l_nao, l_naoh, l_koh, l_hminus, &
l_ps, l_po, l_pn, l_ch3sh, l_ch3s, l_c2h6s, l_c2h6s2, l_c3h4, &
l_c4h3, l_sih4, l_s2, l_sf6, l_cs2, l_s8, l_cn, l_ch3cl, l_ch3f, &
l_ch3br, &
l_all_gases)

use gas_list_pcf, only: &
ip_h2o, ip_co2, ip_o3, ip_n2o, ip_co, ip_ch4, ip_o2, ip_no, ip_so2, ip_no2, &
ip_nh3, ip_hno3, ip_n2, ip_cfc11, ip_cfc12, ip_cfc113, ip_hcfc22, ip_hfc125, &
ip_hfc134a, ip_cfc114, ip_tio, ip_vo, ip_h2, ip_he, ip_ocs, ip_na, ip_k, &
ip_feh, ip_crh, ip_li, ip_rb, ip_cs, ip_ph3, ip_c2h2, ip_hcn, ip_h2s, ip_ar, &
ip_o, ip_n, ip_no3, ip_n2o5, ip_hono, ip_ho2no2, ip_h2o2, ip_c2h6, ip_ch3, &
ip_h2co, ip_ho2, ip_hdo, ip_hcl, ip_hf, ip_cosso, ip_tosso, ip_yosos, &
ip_ch3cho, ip_ch3ooh, ip_ch3coch3, ip_ch3cocho, ip_chocho, ip_c2h5cho, &
ip_hoch2cho, ip_c2h5coch3, ip_mvk, ip_macr, ip_pan, ip_ch3ono2
ip_nh3, ip_hno3, ip_n2, ip_cfc11, ip_cfc12, ip_cfc113, ip_hcfc22, &
ip_hfc125, ip_hfc134a, ip_cfc114, ip_tio, ip_vo, ip_h2, ip_he, ip_ocs, &
ip_na, ip_k, ip_feh, ip_crh, ip_li, ip_rb, ip_cs, ip_ph3, ip_c2h2, ip_hcn, &
ip_h2s, ip_ar, ip_air, ip_o, ip_n, ip_no3, ip_n2o5, ip_hono, ip_ho2no2, &
ip_h2o2, ip_c2h6, ip_ch3, ip_h2co, ip_ho2, ip_hdo, ip_hcl, ip_hf, ip_cosso, &
ip_tosso, ip_yosos, ip_ch3cho, ip_ch3ooh, ip_ch3coch3, ip_ch3cocho, &
ip_chocho, ip_c2h5cho, ip_hoch2cho, ip_c2h5coch3, ip_mvk, ip_macr, ip_pan, &
ip_ch3ono2, ip_c2h3, ip_c2h4, ip_oh, ip_hco, ip_n2o4, ip_c2n2, ip_n2h4, &
ip_n2o3, ip_si, ip_sio, ip_sio2, ip_mg, ip_mg2, ip_mgo, ip_tio2, ip_fe, &
ip_feo, ip_ca, ip_cao, ip_alo, ip_na2, ip_nao, ip_naoh, ip_koh, ip_hminus, &
ip_ps, ip_po, ip_pn, ip_ch3sh, ip_ch3s, ip_c2h6s, ip_c2h6s2, ip_c3h4, &
ip_c4h3, ip_sih4, ip_s2, ip_sf6, ip_cs2, ip_s8, ip_cn, ip_ch3cl, ip_ch3f, &
ip_ch3br

implicit none

type(StrSpecData), intent(inout) :: spec

logical, intent(in), optional :: &
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, l_nh3, &
l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, l_hfc125, l_hfc134a, &
l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, l_na, l_k, l_feh, l_crh, l_li, &
l_rb, l_cs, l_ph3, l_c2h2, l_hcn, l_h2s, l_ar, l_o, l_n, l_no3, l_n2o5, &
l_hono, l_ho2no2, l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, &
l_hf, l_cosso, l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, &
l_ch3cocho, l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, &
l_pan, l_ch3ono2, l_all_gases
l_h2o, l_co2, l_o3, l_n2o, l_co, l_ch4, l_o2, l_no, l_so2, l_no2, &
l_nh3, l_hno3, l_n2, l_cfc11, l_cfc12, l_cfc113, l_hcfc22, &
l_hfc125, l_hfc134a, l_cfc114, l_tio, l_vo, l_h2, l_he, l_ocs, &
l_na, l_k, l_feh, l_crh, l_li, l_rb, l_cs, l_ph3, l_c2h2, l_hcn, &
l_h2s, l_ar, l_air, l_o, l_n, l_no3, l_n2o5, l_hono, l_ho2no2, &
l_h2o2, l_c2h6, l_ch3, l_h2co, l_ho2, l_hdo, l_hcl, l_hf, l_cosso, &
l_tosso, l_yosos, l_ch3cho, l_ch3ooh, l_ch3coch3, l_ch3cocho, &
l_chocho, l_c2h5cho, l_hoch2cho, l_c2h5coch3, l_mvk, l_macr, l_pan, &
l_ch3ono2, l_c2h3, l_c2h4, l_oh, l_hco, l_n2o4, l_c2n2, l_n2h4, &
l_n2o3, l_si, l_sio, l_sio2, l_mg, l_mg2, l_mgo, l_tio2, l_fe, &
l_feo, l_ca, l_cao, l_alo, l_na2, l_nao, l_naoh, l_koh, l_hminus, &
l_ps, l_po, l_pn, l_ch3sh, l_ch3s, l_c2h6s, l_c2h6s2, l_c3h4, &
l_c4h3, l_sih4, l_s2, l_sf6, l_cs2, l_s8, l_cn, l_ch3cl, l_ch3f, &
l_ch3br, &
l_all_gases

integer :: i, j, i_sub, n_band_absorb
logical :: l_retain_absorb(spec%gas%n_absorb), l_retain_major
Expand Down Expand Up @@ -235,6 +275,7 @@ subroutine compress_spectrum(spec, &
retain_absorber(ip_hcn, l_hcn ) .or. &
retain_absorber(ip_h2s, l_h2s ) .or. &
retain_absorber(ip_ar, l_ar ) .or. &
retain_absorber(ip_air, l_air ) .or. &
retain_absorber(ip_o, l_o ) .or. &
retain_absorber(ip_n, l_n ) .or. &
retain_absorber(ip_no3, l_no3 ) .or. &
Expand Down Expand Up @@ -263,7 +304,50 @@ subroutine compress_spectrum(spec, &
retain_absorber(ip_mvk, l_mvk ) .or. &
retain_absorber(ip_macr, l_macr ) .or. &
retain_absorber(ip_pan, l_pan ) .or. &
retain_absorber(ip_ch3ono2, l_ch3ono2 )) then
retain_absorber(ip_ch3ono2, l_ch3ono2 ) .or. &
retain_absorber(ip_c2h3, l_c2h3 ) .or. &
retain_absorber(ip_c2h4, l_c2h4 ) .or. &
retain_absorber(ip_oh, l_oh ) .or. &
retain_absorber(ip_hco, l_hco ) .or. &
retain_absorber(ip_n2o4, l_n2o4 ) .or. &
retain_absorber(ip_c2n2, l_c2n2 ) .or. &
retain_absorber(ip_n2h4, l_n2h4 ) .or. &
retain_absorber(ip_n2o3, l_n2o3 ) .or. &
retain_absorber(ip_si, l_si ) .or. &
retain_absorber(ip_sio, l_sio ) .or. &
retain_absorber(ip_sio2, l_sio2 ) .or. &
retain_absorber(ip_mg, l_mg ) .or. &
retain_absorber(ip_mg2, l_mg2 ) .or. &
retain_absorber(ip_mgo, l_mgo ) .or. &
retain_absorber(ip_tio2, l_tio2 ) .or. &
retain_absorber(ip_fe, l_fe ) .or. &
retain_absorber(ip_feo, l_feo ) .or. &
retain_absorber(ip_ca, l_ca ) .or. &
retain_absorber(ip_cao, l_cao ) .or. &
retain_absorber(ip_alo, l_alo ) .or. &
retain_absorber(ip_na2, l_na2 ) .or. &
retain_absorber(ip_nao, l_nao ) .or. &
retain_absorber(ip_naoh, l_naoh ) .or. &
retain_absorber(ip_koh, l_koh ) .or. &
retain_absorber(ip_hminus, l_hminus ) .or. &
retain_absorber(ip_ps, l_ps ) .or. &
retain_absorber(ip_po, l_po ) .or. &
retain_absorber(ip_pn, l_pn ) .or. &
retain_absorber(ip_ch3sh, l_ch3sh ) .or. &
retain_absorber(ip_ch3s, l_ch3s ) .or. &
retain_absorber(ip_c2h6s, l_c2h6s ) .or. &
retain_absorber(ip_c2h6s2, l_c2h6s2 ) .or. &
retain_absorber(ip_c3h4, l_c3h4 ) .or. &
retain_absorber(ip_c4h3, l_c4h3 ) .or. &
retain_absorber(ip_sih4, l_sih4 ) .or. &
retain_absorber(ip_s2, l_s2 ) .or. &
retain_absorber(ip_sf6, l_sf6 ) .or. &
retain_absorber(ip_cs2, l_cs2 ) .or. &
retain_absorber(ip_s8, l_s8 ) .or. &
retain_absorber(ip_cn, l_cn ) .or. &
retain_absorber(ip_ch3cl, l_ch3cl ) .or. &
retain_absorber(ip_ch3f, l_ch3f ) .or. &
retain_absorber(ip_ch3br, l_ch3br )) then
l_retain_absorb(i)=.true.
end if
end do
Expand Down
92 changes: 90 additions & 2 deletions src/radiance_core/def_control.F90
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,8 @@ MODULE def_control
! Flag for absorption by nitrogen
LOGICAL :: l_ar = .FALSE.
! Flag for absorption by argon
LOGICAL :: l_air = .FALSE.
! Flag for absorption by dry air
LOGICAL :: l_o = .FALSE.
! Flag for absorption by atomic oxygen
LOGICAL :: l_n = .FALSE.
Expand Down Expand Up @@ -184,8 +186,8 @@ MODULE def_control
! Flag for absorption by OSO-S
LOGICAL :: l_h2s = .FALSE.
! Flag for absorption by Hydrogen sulphide
LOGICAL :: l_cocs = .FALSE.
! Flag for absorption by Carbonyl sulphide
LOGICAL :: l_ocs = .FALSE.
! Flag for absorption by carbonyl sulphide
LOGICAL :: l_ch3cho = .FALSE.
! Flag for absorption by Acetaldehyde
LOGICAL :: l_ch3ooh = .FALSE.
Expand All @@ -210,6 +212,92 @@ MODULE def_control
! Flag for absorption by peroxyacetyl nitrate (PAN)
LOGICAL :: l_ch3ono2 = .FALSE.
! Flag for absorption by methylnitrate
LOGICAL :: l_c2h3 = .FALSE.
! Flag for absorption by vinyl radical
LOGICAL :: l_c2h4 = .FALSE.
! Flag for absorption by ethylene
LOGICAL :: l_oh = .FALSE.
! Flag for absorption by hydroxyl radical
LOGICAL :: l_hco = .FALSE.
! Flag for absorption by formyl radical
LOGICAL :: l_n2o4 = .FALSE.
! Flag for absorption by dinitrogen tetroxide
LOGICAL :: l_c2n2 = .FALSE.
! Flag for absorption by cyanogen
LOGICAL :: l_n2h4 = .FALSE.
! Flag for absorption by hydrazine
LOGICAL :: l_n2o3 = .FALSE.
! Flag for absorption by dinitrogen trioxide
LOGICAL :: l_si = .FALSE.
! Flag for absorption by silicon
LOGICAL :: l_sio = .FALSE.
! Flag for absorption by silicon monoxide
LOGICAL :: l_sio2 = .FALSE.
! Flag for absorption by silicon dioxide
LOGICAL :: l_mg = .FALSE.
! Flag for absorption by atomic magnesium
LOGICAL :: l_mg2 = .FALSE.
! Flag for absorption by magnesium dimer
LOGICAL :: l_mgo = .FALSE.
! Flag for absorption by magnesium oxide
LOGICAL :: l_tio2 = .FALSE.
! Flag for absorption by titanium dioxide
LOGICAL :: l_fe = .FALSE.
! Flag for absorption by atomic iron
LOGICAL :: l_feo = .FALSE.
! Flag for absorption by iron(ii) oxide
LOGICAL :: l_ca = .FALSE.
! Flag for absorption by calcium
LOGICAL :: l_cao = .FALSE.
! Flag for absorption by calcium oxide
LOGICAL :: l_alo = .FALSE.
! Flag for absorption by aluminium monoxide
LOGICAL :: l_na2 = .FALSE.
! Flag for absorption by disodium
LOGICAL :: l_nao = .FALSE.
! Flag for absorption by sodium oxide
LOGICAL :: l_naoh = .FALSE.
! Flag for absorption by sodium hydroxide
LOGICAL :: l_koh = .FALSE.
! Flag for absorption by potassium hydroxide
LOGICAL :: l_hminus = .FALSE.
! Flag for absorption by hydride anion
LOGICAL :: l_ps = .FALSE.
! Flag for absorption by phosphorus sulfide
LOGICAL :: l_po = .FALSE.
! Flag for absorption by phosphorus monoxide
LOGICAL :: l_pn = .FALSE.
! Flag for absorption by phosphorus nitride
LOGICAL :: l_ch3sh = .FALSE.
! Flag for absorption by methanethiol
LOGICAL :: l_ch3s = .FALSE.
! Flag for absorption by methylthiyl radical
LOGICAL :: l_c2h6s = .FALSE.
! Flag for absorption by dimethyl sulfide
LOGICAL :: l_c2h6s2 = .FALSE.
! Flag for absorption by dimethyl disulfide
LOGICAL :: l_c3h4 = .FALSE.
! Flag for absorption by propyne/allene
LOGICAL :: l_c4h3 = .FALSE.
! Flag for absorption by butadiynyl radical
LOGICAL :: l_sih4 = .FALSE.
! Flag for absorption by silane
LOGICAL :: l_s2 = .FALSE.
! Flag for absorption by disulfur
LOGICAL :: l_sf6 = .FALSE.
! Flag for absorption by sulfur hexafluoride
LOGICAL :: l_cs2 = .FALSE.
! Flag for absorption by carbon disulfide
LOGICAL :: l_s8 = .FALSE.
! Flag for absorption by octasulfur
LOGICAL :: l_cn = .FALSE.
! Flag for absorption by cyanogen radical
LOGICAL :: l_ch3cl = .FALSE.
! Flag for absorption by methyl chloride
LOGICAL :: l_ch3f = .FALSE.
! Flag for absorption by methyl fluoride
LOGICAL :: l_ch3br = .FALSE.
! Flag for absorption by methyl bromide

LOGICAL :: l_include_gas(npd_gases) = .FALSE.
! Flags to treat radiative effect of gases
Expand Down
Loading