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