11 USE def_control,
ONLY: strctrl
12 USE def_spectrum,
ONLY: strspecdata
19 TYPE (StrCtrl),
INTENT(IN) :: con
20 TYPE (StrSpecData),
INTENT(INOUT) :: spec
23 INTEGER :: i, j, n_band_absorb, n_aerosol_mr
24 LOGICAL :: l_retain_absorb(spec%gas%n_absorb)
28 l_retain_absorb=.false.
29 DO i=1, spec%gas%n_absorb
30 IF ((spec%gas%type_absorb(i) == ip_h2o) .OR. &
31 (spec%gas%type_absorb(i) == ip_co2) .OR. &
32 (spec%gas%type_absorb(i) == ip_o3) .OR. &
33 ((spec%gas%type_absorb(i) == ip_o2) .AND. con%l_o2 ) .OR. &
34 ((spec%gas%type_absorb(i) == ip_n2o) .AND. con%l_n2o ) .OR. &
35 ((spec%gas%type_absorb(i) == ip_ch4) .AND. con%l_ch4 ) .OR. &
36 ((spec%gas%type_absorb(i) == ip_cfc11) .AND. con%l_cfc11 ) .OR. &
37 ((spec%gas%type_absorb(i) == ip_cfc12) .AND. con%l_cfc12 ) .OR. &
38 ((spec%gas%type_absorb(i) == ip_cfc113) .AND. con%l_cfc113 ) .OR. &
39 ((spec%gas%type_absorb(i) == ip_cfc114) .AND. con%l_cfc114 ) .OR. &
40 ((spec%gas%type_absorb(i) == ip_hcfc22) .AND. con%l_hcfc22 ) .OR. &
41 ((spec%gas%type_absorb(i) == ip_hfc125) .AND. con%l_hfc125 ) .OR. &
42 ((spec%gas%type_absorb(i) == ip_hfc134a) .AND. con%l_hfc134a) .OR. &
43 ((spec%gas%type_absorb(i) == ip_co) .AND. con%l_co ) .OR. &
44 ((spec%gas%type_absorb(i) == ip_nh3) .AND. con%l_nh3 ) .OR. &
45 ((spec%gas%type_absorb(i) == ip_tio) .AND. con%l_tio ) .OR. &
46 ((spec%gas%type_absorb(i) == ip_vo) .AND. con%l_vo ) .OR. &
47 ((spec%gas%type_absorb(i) == ip_h2) .AND. con%l_h2 ) .OR. &
48 ((spec%gas%type_absorb(i) == ip_he) .AND. con%l_he ) .OR. &
49 ((spec%gas%type_absorb(i) == ip_na) .AND. con%l_na ) .OR. &
50 ((spec%gas%type_absorb(i) == ip_k) .AND. con%l_k ))
THEN
51 l_retain_absorb(i)=.true.
55 DO i=1, spec%basic%n_band
57 DO j=1, spec%gas%n_band_absorb(i)
58 IF (l_retain_absorb(spec%gas%index_absorb(j, i)))
THEN
59 n_band_absorb = n_band_absorb + 1
60 spec%gas%index_absorb(n_band_absorb, i) = spec%gas%index_absorb(j, i)
63 spec%gas%n_band_absorb(i)=n_band_absorb