!
!
!##################################################################
!##################################################################
!######                                                      ######
!######                SUBROUTINE INITADAS                   ######
!######                                                      ######
!######                     Developed by                     ######
!######     Center for Analysis and Prediction of Storms     ######
!######                University of Oklahoma                ######
!######                                                      ######
!##################################################################
!##################################################################
!


SUBROUTINE initadas 2
!
!-----------------------------------------------------------------------
!
!  PURPOSE:
!  Read in analysis variables in namelist format from standard input.
!
!  AUTHOR:
!  Keith Brewster, CAPS, January, 1996
!
!  MODIFICATION HISTORY:
!
!  Added read of variables previously read by calling initpara
!  Added new src and iuse variables.
!  Keith Brewster, CAPS, October, 1997
!
!  Added lines to initialize mgrid and nstgrid which are used
!  by the GRIB writer.
!  Keith Brewster, CAPS, March, 1998
!
!  Keith Brewster, CAPS, April 27,1998
!  Added new parameters to output namelist to match ARPS
!  input file options.
!
!  2000/05/10 (Gene Bassett)
!     Merged the ADAS input file back into the ARPS input file.
!
!  2000-05-18 (Gene Bassett)
!     Moved hydrostatic and wind adjustment parameters to an
!     adjust namelist block.
!
!
!-----------------------------------------------------------------------
!
!  Variable Declarations:
!
!-----------------------------------------------------------------------
!
  IMPLICIT NONE
!
  INCLUDE 'adas.inc'
  INCLUDE 'adjust.inc'
!
!-----------------------------------------------------------------------
!  Misc local variables
!-----------------------------------------------------------------------
!
  INTEGER :: i,j
  INTEGER :: lenstr
  LOGICAL :: iexist
  CHARACTER (LEN=19) :: initime  ! Real time in form of 'year-mo-dy:hr:mn:ss'

  INTEGER :: err_no
  DATA err_no /0/
!
!-----------------------------------------------------------------------
!
!  ADAS namelists
!
!-----------------------------------------------------------------------
!
  NAMELIST /adas_const/ npass,sprdist,wlim,zwlim,thwlim,                &
                 ccatopt,spradopt
  NAMELIST /adjust/ hydradj,wndadj,obropt,obrzero
  NAMELIST /adas_radaropt/ raduvobs,radrhobs,refrh,rhradobs,            &
                 radistride,radkstride,                                 &
                 radcldopt,radqvopt,radqcopt,radqropt,radptopt,         &
                 refsat,rhrad,                                          &
                 refcld,cldrad,ceilopt,ceilmin,dzfill,                  &
                 refrain,radsetrat,radreflim,radptgain
  NAMELIST /adas_typ/   ianxtyp
  NAMELIST /adas_range/  sfcqcrng,xyrange
  NAMELIST /adas_kpvar/ kpvar
  NAMELIST /adas_zrange/ zrange
  NAMELIST /adas_thrng/  thrng
  NAMELIST /adas_backerf/ backerrfil
  NAMELIST /adas_sng/ nsngfil,sngfname,sngtmchk,blackfil,               &
                      srcsng,sngerrfil,iusesng
  NAMELIST /adas_ua/ nuafil,uafname,srcua,uaerrfil,iuseua
  NAMELIST /adas_radar/ nradfil,radfname,srcrad,raderrfil,iuserad
  NAMELIST /adas_retrieval/                                             &
                        nretfil,retfname,srcret,reterrfil,iuseret
  NAMELIST /adas_cloud/ cloudopt,clddiag,range_cld,                     &
                        refthr1,refthr2,hgtrefthr,                      &
                        wmhr_cu,wmhr_sc,wc_st,bgqcopt,                  &
                        cldqvopt,cldqcopt,                              &
                        cldqropt,cldwopt,cldptopt,thresh_cvr,           &
                        rh_thr1,cvr2rh_thr1,rh_thr2,cvr2rh_thr2,        &
                        qvslimit_2_qc,qrlimit,frac_qr_2_qc,             &
                        frac_qw_2_pt,frac_qc_2_lh,max_lh_2_pt,          &
                        smth_opt,                                       &
                        vis_fname,ir_fname,cld_files,                   &
                        calib_fname
  NAMELIST /incr_out/ incdmpf,incrdmp,uincdmp,vincdmp,wincdmp,          &
                      pincdmp,ptincdmp,qvincdmp,                        &
                      qcincdmp,qrincdmp,qiincdmp,qsincdmp,qhincdmp
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
!  Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!

!-----------------------------------------------------------------------
!  Assign default values to the ADAS input variables
!-----------------------------------------------------------------------

  npass=4
  sprdist = 15000.
  wlim = 1.e-04
  zwlim = 1.e-03
  thwlim = 1.e-03
  ccatopt = 1
  spradopt = 2

  hydradj = 0
  wndadj = 2
  obropt = 2
  obrzero = 12000.

  raduvobs = 0
  radrhobs = 0
  radistride = 2
  radkstride = 2
  refrh = 20.
  rhrad = 0.90

  radcldopt = 0
  radqvopt = 0
  radqcopt = 0
  radqropt = 0
  radptopt = 0
  refcld = 20.
  cldrad = 1.0E-03
  ceilopt = 1
  ceilmin = 1500.
  dzfill = 3000.
  refrain = 30.
  radsetrat = 0.50
  radreflim = 50.
  radptgain = 1.0

  cloudopt = 0
  clddiag = 1
  range_cld = 100.0E03
  refthr1 = 25.0
  refthr2 = 10.0
  hgtrefthr = 2000.0
  wmhr_cu = 0.0005
  wmhr_sc = 0.00005
  wc_st = 0.05
  bgqcopt  = 1
  cldqvopt = 1
  cldwopt  = 0
  cldqcopt = 1
  cldqropt = 1
  cldptopt = 1

  smth_opt = 1
  thresh_cvr = 0.65
  rh_thr1 = 0.5
  cvr2rh_thr1 = 0.2
  rh_thr2 = 0.95
  cvr2rh_thr2 = 0.65
  frac_qw_2_pt = 1.0
  frac_qc_2_lh = 1.0
  max_lh_2_pt = 4.0
  qvslimit_2_qc = 1.0
  qrlimit = 0.010
  frac_qr_2_qc = 0.5

  ir_fname='NULL'
  vis_fname='NULL'
  cld_files=0
  calib_fname='NULL'

  DO i=1,nvar_anx
    kpvar(i)=1.0
  END DO
!
  sfcqcrng = 100.e03
  DO i=1,mx_pass
    ianxtyp(i)=21
    xyrange(i)=100.e03
    zrange(i)=500.
    thrng(i)=3.0
  END DO
!
  backerrfil='ruc3herr.adastab'
!
  blackfil='blacklist.sfc'
  nsngfil=0
  DO i=1,mx_sng_file
    sngfname(i)='NULL'
    sngtmchk(i)='NULL'
  END DO
  DO i=1,nsrc_sng
    srcsng(i)='NULL'
    sngerrfil(i)='NULL'
  END DO
  DO i=0,nsrc_sng
    DO j=1,npass
      iusesng(i,j)=0
    END DO
  END DO
!
  nsngfil=0
  DO i=1,mx_ua_file
    uafname(i)='NULL'
  END DO
  DO i=1,nsrc_ua
    srcua(i)='NULL'
    uaerrfil(i)='NULL'
  END DO
  DO i=0,nsrc_ua
    DO j=1,npass
      iuseua(i,j)=0
    END DO
  END DO
!
  nradfil=0
  DO i=1,mx_rad
    radfname(i)='NULL'
  END DO
  DO i=1,nsrc_rad
    srcrad(i)='NULL'
    raderrfil(i)='NULL'
  END DO
  DO i=0,nsrc_rad
    DO j=1,npass
      iuserad(i,j)=0
    END DO
  END DO
!
  nretfil=0
  DO i=1,mx_ret
    retfname(i)='NULL'
  END DO
  DO i=1,nsrc_ret
    srcret(i)='NULL'
    reterrfil(i)='NULL'
  END DO
  DO i=0,nsrc_ret
    DO j=1,npass
      iuseret(i,j)=0
    END DO
  END DO
!
  incdmpf='NULL'
  incrdmp = 0
  uincdmp = 1
  vincdmp = 1
  wincdmp = 0
  pincdmp = 1
  ptincdmp= 1
  qvincdmp= 1
  qcincdmp= 1
  qrincdmp= 1
  qiincdmp= 1
  qsincdmp= 0
  qhincdmp= 0
!
!-----------------------------------------------------------------------
!  read in ADAS namelists
!-----------------------------------------------------------------------
!
  READ(5, incr_out,  END=201)
  WRITE(6,*) 'Namelist block incr_out sucessfully read.'
  201 CONTINUE

  READ(5, adas_const,  END=200)
  WRITE(6,*) 'Namelist block adas_const sucessfully read.'
  200 CONTINUE
  READ(5, adjust,  END=205)
  WRITE(6,*) 'Namelist block adjust sucessfully read.'
  205 CONTINUE
  READ(5, adas_radaropt,  END=210)
  WRITE(6,*) 'Namelist block adas_radaropt sucessfully read.'
  210 CONTINUE
  READ(5, adas_cloud, END=220)
  WRITE(6,*) 'Namelist block adas_cloud sucessfully read.'
  220 CONTINUE
!
  READ(5, adas_typ,    END=240)
  WRITE(6,*) 'Namelist block adas_typ sucessfully read.'
  240 CONTINUE
  READ(5, adas_range,  END=250)
  WRITE(6,*) 'Namelist block adas_range sucessfully read.'
  250 CONTINUE
  READ(5, adas_kpvar,  END=255)
  WRITE(6,*) 'Namelist block adas_kpvar sucessfully read.'
  255 CONTINUE
  READ(5, adas_zrange, END=260)
  WRITE(6,*) 'Namelist block adas_zrange sucessfully read.'
  260 CONTINUE
  READ(5, adas_thrng,  END=270)
  WRITE(6,*) 'Namelist block adas_thrng sucessfully read.'
  270 CONTINUE
!
  READ(5, adas_backerf,  END=300)
  WRITE(6,*) 'Namelist block adas_backerf sucessfully read.'
  300 CONTINUE
!
  READ(5, adas_sng,  END=310)
  WRITE(6,*) 'Namelist block adas_sng sucessfully read.'
  310 CONTINUE
  READ(5, adas_ua,  END=320)
  WRITE(6,*) 'Namelist block adas_ua sucessfully read.'
  320 CONTINUE
  READ(5, adas_radar,  END=330)
  WRITE(6,*) 'Namelist block adas_radar sucessfully read.'
  330 CONTINUE
  READ(5, adas_retrieval,  END=340)
  WRITE(6,*) 'Namelist block adas_retrieval sucessfully read.'
  340 CONTINUE

!
!-----------------------------------------------------------------------
!  Compute squared input variables
!-----------------------------------------------------------------------
!
  DO i=1,nvar_anx
    kpvrsq(i)=kpvar(i)*kpvar(i)
  END DO

  RETURN
END SUBROUTINE initadas