anchor.diff:    RETURN
   END SUBROUTINE he5_amf_write
   
  +SUBROUTINE read_lookup_table (errstat)
  +
  +    ! ====================================================
  +    ! This subroutine reads in the VLIDORT calculations to
  +    ! compute the Scattering Weights.
  +    ! ====================================================
  +
  +    IMPLICIT NONE    
  +
  +    ! ------------------
  +    ! Modified variables
  +    ! ------------------
  +    INTEGER (KIND=4), INTENT (INOUT) :: errstat
  +
  +    ! ---------------
  +    ! Local variables
  +    ! ---------------
  +    INTEGER :: hdferr
  +
  +    INTEGER(HID_T) :: input_file_id                                  ! File identifier
  +    INTEGER(HID_T) :: alb_did, clp_did, sza_did, toz_did, vza_did, wav_did, & ! Dataset identifiers
  +         I0_clr_did, I1_clr_did, I2_clr_did, Ir_clr_did, Sb_clr_did,        &
  +         I0_cld_did, I1_cld_did, I2_cld_did, Ir_cld_did, Sb_cld_did,        &
  +         dI0_clr_did, dI1_clr_did, dI2_clr_did, & 
  +         dI0_cld_did, dI1_cld_did, dI2_cld_did, & 
  +         air_did, alt_lev_did, alt_lay_did, pre_lev_did, pre_lay_did, ozo_did, tem_did, &
  +         dspace, toms_datatype_id
  +
  +    INTEGER(SIZE_T)                :: size
  +    LOGICAL, SAVE :: h5inited = .FALSE.
  +  
  +    ! ------------------------------
  +    ! Name of this module/subroutine
  +    ! ------------------------------
  +    CHARACTER (LEN=26), PARAMETER :: modulename = 'read_lookup_table' 
  +
  +    ! ----------------------
  +    ! Subroutine starts here
  +    ! ----------------------
  +    errstat = pge_errstat_ok
  +
  +    ! ---------------------------------
  +    ! Initialize hdf5 FORTRAN Interface
  +    ! ---------------------------------
  +    if (.NOT.h5inited) then
  +      CALL h5open_f(hdferr)
  +      h5inited = .TRUE.
  +    endif 
  +
  +    ! ------------------
  +    ! Dataset data types
  +    ! ------------------
  +    size = 5
  +    CALL h5tcopy_f(H5T_NATIVE_CHARACTER, toms_datatype_id, hdferr)
  +    CALL h5tset_size_f(toms_datatype_id, size, hdferr)
  +
  +    ! ******************************************
  +    ! Find out the dimensions of the input file:
  +    !  # of pressure levels
  +    !  # of SZA
  +    !  # of Ozone profiles
  +    !  # of VZA
  +    !  # of wavelenghts
  +    !  # of altitude levels  
  +    ! ******************************************
  +    ! -------------------
  +    ! Opening input TABLE
  +    ! -------------------
  +    CALL h5fopen_f(TRIM(ADJUSTL(OMSAO_wfamf_table_filename)), H5F_ACC_RDONLY_F, &
  +                   input_file_id, hdferr)
  +    IF (hdferr .eq. -1) THEN
  +       WRITE(*,100) 'ERROR: Opening '//TRIM(ADJUSTL(OMSAO_wfamf_table_filename))
  +    END IF
  +
  +    ! --------------------------------------------------------------------------
  +    ! Open grid, intensity, scattering weights and profile datasets
  +    ! --------------------------------------------------------------------------
  +    CALL h5dopen_f(input_file_id,'/Grid/Albedo', alb_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Grid/Cloud Pressure', clp_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Grid/SZA', sza_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Grid/TOMS', toz_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Grid/VZA', vza_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Grid/Wavelength', wav_did,hdferr)
  +    
  +    CALL h5dopen_f(input_file_id,'/Intensity/Clear Sky/I0', I0_clr_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Intensity/Clear Sky/I1', I1_clr_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Intensity/Clear Sky/I2', I2_clr_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Intensity/Clear Sky/Ir', Ir_clr_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Intensity/Clear Sky/Sb', Sb_clr_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Intensity/Cloud Sky/I0', I0_cld_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Intensity/Cloud Sky/I1', I1_cld_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Intensity/Cloud Sky/I2', I2_cld_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Intensity/Cloud Sky/Ir', Ir_cld_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Intensity/Cloud Sky/Sb', Sb_cld_did, hdferr)
  +    
  +    
  +    CALL h5dopen_f(input_file_id,'/Profiles/Air Column Layer', air_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Profiles/Altitude Level', alt_lev_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Profiles/Altitude Layer', alt_lay_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Profiles/Pressure Level', pre_lev_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Profiles/Pressure Layer', pre_lay_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Profiles/Ozone Column Layer', ozo_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Profiles/Temperature Level', tem_did, hdferr)
  +
  +    CALL h5dopen_f(input_file_id,'/Scattering Weights/Clear Sky/dI0', dI0_clr_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Scattering Weights/Clear Sky/dI1', dI1_clr_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Scattering Weights/Clear Sky/dI2', dI2_clr_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Scattering Weights/Cloud Sky/dI0', dI0_cld_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Scattering Weights/Cloud Sky/dI1', dI1_cld_did, hdferr)
  +    CALL h5dopen_f(input_file_id,'/Scattering Weights/Cloud Sky/dI2', dI2_cld_did, hdferr)
  +    
  +    ! -----------------------
  +    ! Find out the dimensions
  +    ! -----------------------
  +    CALL h5dget_space_f(alb_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, alb_dim, alb_maxdim, hdferr)
  +    CALL h5dget_space_f(clp_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, clp_dim, clp_maxdim, hdferr)
  +    CALL h5dget_space_f(sza_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, sza_dim, sza_maxdim, hdferr)
  +    CALL h5dget_space_f(toz_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, toz_dim, toz_maxdim, hdferr)
  +    CALL h5dget_space_f(vza_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, vza_dim, vza_maxdim, hdferr)
  +    CALL h5dget_space_f(wav_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, wav_dim, wav_maxdim, hdferr)
  +    CALL h5dget_space_f(I0_clr_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, I0_clr_dim, I0_clr_maxdim, hdferr)
  +    CALL h5dget_space_f(I0_cld_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, I0_cld_dim, I0_cld_maxdim, hdferr)
  +    CALL h5dget_space_f(Sb_clr_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, Sb_clr_dim, Sb_clr_maxdim, hdferr)
  +    CALL h5dget_space_f(Sb_cld_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, Sb_cld_dim, Sb_cld_maxdim, hdferr)
  +    CALL h5dget_space_f(dI0_clr_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, dI0_clr_dim, dI0_clr_maxdim, hdferr)
  +    CALL h5dget_space_f(dI0_cld_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, dI0_cld_dim, dI0_cld_maxdim, hdferr)
  +    CALL h5dget_space_f(alt_lev_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, alt_lev_dim, alt_lev_maxdim, hdferr)
  +    CALL h5dget_space_f(alt_lay_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, alt_lay_dim, alt_lay_maxdim, hdferr)
  +    CALL h5dget_space_f(air_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, air_dim, air_maxdim, hdferr)
  +    CALL h5dget_space_f(tem_did,dspace,hdferr)
  +    CALL h5sget_simple_extent_dims_f (dspace, tem_dim, tem_maxdim, hdferr)
  +    
  +    ! ---------------------------------------------------------------
  +    ! Allocate & initialize variables now that we have the dimensions
  +    ! ---------------------------------------------------------------
  +    CALL vlidort_allocate('a', INT(toz_dim(1)),INT(clp_dim(1)),INT(alb_dim(1)), &
  +         INT(sza_dim(1)),INT(vza_dim(1)),INT(wav_dim(1)), &
  +         INT(alt_lay_dim(1)),INT(alt_lev_dim(1)),errstat)
  +    
  +    ! ----------------------------------------------------
  +    ! Read from the h5 file all these small size variables
  +    ! ----------------------------------------------------
  +    CALL h5dread_f(alb_did, H5T_NATIVE_REAL,  lut_albedo(1:alb_dim(1)),  alb_dim, hdferr)
  +    CALL h5dread_f(clp_did, H5T_NATIVE_REAL,  lut_clp(1:clp_dim(1)),  clp_dim, hdferr)
  +    CALL h5dread_f(sza_did, H5T_NATIVE_REAL,  lut_sza(1:sza_dim(1)),  sza_dim, hdferr)
  +    CALL h5dread_f(toz_did, toms_datatype_id, lut_toms(1:toz_dim(1)), toz_dim, hdferr)
  +    CALL h5dread_f(vza_did, H5T_NATIVE_REAL,  lut_vza(1:vza_dim(1)),  vza_dim, hdferr)
  +    CALL h5dread_f(wav_did, H5T_NATIVE_REAL,  lut_wavelength(1:wav_dim(1)),  wav_dim, hdferr)
  +    
  +    CALL h5dread_f(I0_clr_did, H5T_NATIVE_REAL, &
  +         lut_I0_clr(1:toz_dim(1),1:vza_dim(1),1:vza_dim(1)), I0_clr_dim, hdferr)
  +    CALL h5dread_f(I1_clr_did, H5T_NATIVE_REAL, &
  +         lut_I1_clr(1:toz_dim(1),1:vza_dim(1),1:vza_dim(1)), I0_clr_dim, hdferr)
  +    CALL h5dread_f(I2_clr_did, H5T_NATIVE_REAL, &
  +         lut_I2_clr(1:toz_dim(1),1:vza_dim(1),1:vza_dim(1)), I0_clr_dim, hdferr)
  +    CALL h5dread_f(Ir_clr_did, H5T_NATIVE_REAL, &
  +         lut_Ir_clr(1:toz_dim(1),1:vza_dim(1),1:vza_dim(1)), I0_clr_dim, hdferr)
  +    CALL h5dread_f(Sb_clr_did, H5T_NATIVE_REAL, &
  +         lut_Sb_clr(1:toz_dim(1)), Sb_clr_dim, hdferr)
  +
  +    CALL h5dread_f(I0_cld_did, H5T_NATIVE_REAL, &
  +         lut_I0_cld(1:toz_dim(1),1:clp_dim(1),1:vza_dim(1),1:sza_dim(1)), I0_cld_dim, hdferr)
  +    CALL h5dread_f(I1_cld_did, H5T_NATIVE_REAL, &
  +         lut_I1_cld(1:toz_dim(1),1:clp_dim(1),1:vza_dim(1),1:sza_dim(1)), I0_cld_dim, hdferr)
  +    CALL h5dread_f(I2_cld_did, H5T_NATIVE_REAL, &
  +         lut_I2_cld(1:toz_dim(1),1:clp_dim(1),1:vza_dim(1),1:sza_dim(1)), I0_cld_dim, hdferr)
  +    CALL h5dread_f(Ir_cld_did, H5T_NATIVE_REAL, &
  +         lut_Ir_cld(1:toz_dim(1),1:clp_dim(1),1:vza_dim(1),1:sza_dim(1)), I0_cld_dim, hdferr)
  +    CALL h5dread_f(Sb_cld_did, H5T_NATIVE_REAL, &
  +         lut_Sb_cld(1:toz_dim(1),1:clp_dim(1)), Sb_cld_dim, hdferr)
  +
  +    CALL h5dread_f(dI0_clr_did, H5T_NATIVE_REAL,  &
  +         lut_dI0_clr(1:toz_dim(1),1:alt_lay_dim(1),1:alb_dim(1),1:vza_dim(1),1:sza_dim(1)), &
  +         dI0_clr_dim, hdferr)
  +    CALL h5dread_f(dI1_clr_did, H5T_NATIVE_REAL,  &
  +         lut_dI1_clr(1:toz_dim(1),1:alt_lay_dim(1),1:alb_dim(1),1:vza_dim(1),1:sza_dim(1)), &
  +         dI0_clr_dim, hdferr)
  +    CALL h5dread_f(dI2_clr_did, H5T_NATIVE_REAL,  &
  +         lut_dI2_clr(1:toz_dim(1),1:alt_lay_dim(1),1:alb_dim(1),1:vza_dim(1),1:sza_dim(1)), &
  +         dI0_clr_dim, hdferr)
  +
  +    CALL h5dread_f(dI0_cld_did, H5T_NATIVE_REAL,  &
  +         lut_dI0_cld(1:toz_dim(1),1:alt_lay_dim(1),1:clp_dim(1),1:vza_dim(1),1:sza_dim(1)), &
  +         dI0_cld_dim, hdferr)
  +    CALL h5dread_f(dI1_cld_did, H5T_NATIVE_REAL,  &
  +         lut_dI1_cld(1:toz_dim(1),1:alt_lay_dim(1),1:clp_dim(1),1:vza_dim(1),1:sza_dim(1)), &
  +         dI0_cld_dim, hdferr)
  +    CALL h5dread_f(dI2_cld_did, H5T_NATIVE_REAL,  &
  +         lut_dI2_cld(1:toz_dim(1),1:alt_lay_dim(1),1:clp_dim(1),1:vza_dim(1),1:sza_dim(1)), &
  +         dI0_cld_dim, hdferr)
  +    
  +    CALL h5dread_f(air_did,     H5T_NATIVE_REAL, lut_air(1:toz_dim(1),1:alt_lay_dim(1)), air_dim, hdferr)
  +    CALL h5dread_f(alt_lev_did, H5T_NATIVE_REAL, lut_alt_lev(1:alt_lev_dim(1)),   alt_lev_dim, hdferr)
  +    CALL h5dread_f(alt_lay_did, H5T_NATIVE_REAL, lut_alt_lay(1:alt_lay_dim(1)),   alt_lay_dim, hdferr)
  +    CALL h5dread_f(pre_lev_did, H5T_NATIVE_REAL, lut_pre_lev(1:alt_lev_dim(1)),   alt_lev_dim, hdferr)
  +    CALL h5dread_f(pre_lay_did, H5T_NATIVE_REAL, lut_pre_lay(1:alt_lay_dim(1)),   alt_lay_dim, hdferr)
  +    CALL h5dread_f(ozo_did,     H5T_NATIVE_REAL, lut_ozo(1:toz_dim(1),1:alt_lay_dim(1)),     air_dim, hdferr)
  +    CALL h5dread_f(tem_did,     H5T_NATIVE_REAL, lut_tem(1:toz_dim(1),1:alt_lev_dim(1)), tem_dim, hdferr)
  +    
  +    ! --------------
  +    ! Close datasets
  +    ! --------------    
  +    CALL h5dclose_f(alb_did, hdferr)
  +    CALL h5dclose_f(clp_did, hdferr)
  +    CALL h5dclose_f(sza_did, hdferr)
  +    CALL h5dclose_f(toz_did, hdferr)
  +    CALL h5dclose_f(vza_did, hdferr)
  +    CALL h5dclose_f(wav_did, hdferr)
  +    
  +    CALL h5dclose_f(I0_clr_did, hdferr); CALL h5dclose_f(I0_cld_did, hdferr)
  +    CALL h5dclose_f(I1_clr_did, hdferr); CALL h5dclose_f(I1_cld_did, hdferr)
  +    CALL h5dclose_f(I2_clr_did, hdferr); CALL h5dclose_f(I2_cld_did, hdferr)
  +    CALL h5dclose_f(Ir_clr_did, hdferr); CALL h5dclose_f(Ir_cld_did, hdferr)
  +    CALL h5dclose_f(Sb_clr_did, hdferr); CALL h5dclose_f(Sb_cld_did, hdferr)
  +    
  +    CALL h5dclose_f(dI0_clr_did, hdferr); CALL h5dclose_f(dI0_cld_did, hdferr)
  +    CALL h5dclose_f(dI1_clr_did, hdferr); CALL h5dclose_f(dI1_cld_did, hdferr)
  +    CALL h5dclose_f(dI2_clr_did, hdferr); CALL h5dclose_f(dI2_cld_did, hdferr)
  +    
  +    CALL h5dclose_f(air_did, hdferr)
  +    CALL h5dclose_f(alt_lay_did, hdferr); CALL h5dclose_f(alt_lev_did, hdferr)
  +    CALL h5dclose_f(pre_lay_did, hdferr); CALL h5dclose_f(pre_lev_did, hdferr)
  +    CALL h5dclose_f(ozo_did, hdferr)
  +    CALL h5dclose_f(tem_did, hdferr)
  +    
  +    ! ----------
  +    ! Close file
  +    ! ----------
  +    CALL h5fclose_f(input_file_id, hdferr)
  +
  +    errstat = hdferr
  +
  +100 FORMAT (A)
  +
  +END SUBROUTINE read_lookup_table
  +
   END MODULE OMSAO_wfamf_module
   
  
positive.code: 
      SELECT CASE ( adlow )
      CASE ('a')
         ALLOCATE (vl_OzC0(anwav), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_OzC1(anwav), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_OzC2(anwav), STAT=estat ) ; errstat = MAX ( errstat, estat )
  
         ALLOCATE (vl_pre(ancld), STAT=estat )  ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_sza(ansza), STAT=estat )  ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_vza(anvza), STAT=estat )  ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_wav(anwav), STAT=estat )  ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_toms(anozo), STAT=estat ) ; errstat = MAX ( errstat, estat )
  
         ALLOCATE (vl_air(anozo,ancld,analt), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_alt(anozo,ancld,analt), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_ozo(anozo,ancld,analt), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_tem(anozo,ancld,analt), STAT=estat ) ; errstat = MAX ( errstat, estat )
  
         ALLOCATE (vl_I0(anozo,ancld,ansza,anvza,anwav), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_I1(anozo,ancld,ansza,anvza,anwav), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_I2(anozo,ancld,ansza,anvza,anwav), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_Ir(anozo,ancld,ansza,anvza,anwav), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_Sb(anozo,ancld,anwav), STAT=estat )             ; errstat = MAX ( errstat, estat )
  
         ALLOCATE (vl_dI0(anozo,ancld,ansza,anvza,anwav,analt), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_dI1(anozo,ancld,ansza,anvza,anwav,analt), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_dI2(anozo,ancld,ansza,anvza,anwav,analt), STAT=estat ) ; errstat = MAX ( errstat, estat )
         ALLOCATE (vl_dIr(anozo,ancld,ansza,anvza,anwav,analt), STAT=estat ) ; errstat = MAX ( errstat, estat )
  
      CASE ('d')
  
         IF ( ALLOCATED ( vl_OzC0 ) )  DEALLOCATE ( vl_OzC0 )
         IF ( ALLOCATED ( vl_OzC1 ) )  DEALLOCATE ( vl_OzC1 )
         IF ( ALLOCATED ( vl_OzC2 ) )  DEALLOCATE ( vl_OzC2 )
  
         IF ( ALLOCATED ( vl_pre  ) )  DEALLOCATE ( vl_pre  )
         IF ( ALLOCATED ( vl_sza  ) )  DEALLOCATE ( vl_sza  )
         IF ( ALLOCATED ( vl_vza  ) )  DEALLOCATE ( vl_vza  )
         IF ( ALLOCATED ( vl_wav  ) )  DEALLOCATE ( vl_wav  )
         IF ( ALLOCATED ( vl_toms ) )  DEALLOCATE ( vl_toms )
  
         IF ( ALLOCATED ( vl_air ) )  DEALLOCATE ( vl_air )
         IF ( ALLOCATED ( vl_alt ) )  DEALLOCATE ( vl_alt )
         IF ( ALLOCATED ( vl_ozo ) )  DEALLOCATE ( vl_ozo )
         IF ( ALLOCATED ( vl_tem ) )  DEALLOCATE ( vl_tem )
  
         IF ( ALLOCATED ( vl_I0 ) )  DEALLOCATE ( vl_I0 )
         IF ( ALLOCATED ( vl_I1 ) )  DEALLOCATE ( vl_I1 )
         IF ( ALLOCATED ( vl_I2 ) )  DEALLOCATE ( vl_I2 )
         IF ( ALLOCATED ( vl_Ir ) )  DEALLOCATE ( vl_Ir )
         IF ( ALLOCATED ( vl_Sb ) )  DEALLOCATE ( vl_Sb )
  
         IF ( ALLOCATED ( vl_dI0 ) )  DEALLOCATE ( vl_dI0 )
         IF ( ALLOCATED ( vl_dI1 ) )  DEALLOCATE ( vl_dI1 )
         IF ( ALLOCATED ( vl_dI2 ) )  DEALLOCATE ( vl_dI2 )
         IF ( ALLOCATED ( vl_dIr ) )  DEALLOCATE ( vl_dIr )
  
      CASE DEFAULT
         ! Whatever. Nothing to be done here
  
negative.code:     RETURN
    END SUBROUTINE climatology_allocate
  
    SUBROUTINE vlidort_allocate ( ad, anozo, ancld, analb, ansza, anvza, anwav, anlay, anlev, errstat )
  
      USE OMSAO_casestring_module, ONLY: lower_case
      IMPLICIT NONE
  