SUBROUTINE READSV(cdetiket),5
#if defined (DOC)
*
***s/r READSV - Read in SVs for use in B matrix
*
*Author : Mark Buehner *ARMA/AES August, 2002
*
*Arguments
* -NONE-
#endif
IMPLICIT NONE
*implicits
#include "pardim.cdk"
#include "comdim.cdk"
#include "comlun.cdk"
#include "comcst.cdk"
#include "comgem.cdk"
#include "comsv.cdk"
#include "comstate.cdk"
#include "rpnstd.cdk"
*
character*(*) cdetiket
INTEGER JK,JK1,ILEN,jsv,JI,JJ,KULFILE,ikey
real*8 gdin(NI,NJ)
integer vfstlir
c
WRITE(NULOUT,*) 'STARTING READSV'
call vflush(nulout)
c
c Initialize SV array
c
DO JSV = 1, NSV
DO JJ = 1,NJ
DO JK = 1, NKGDIM
DO JI = 1,NI
SVGD(JI,JK,JJ,JSV)=0.0d0
ENDDO
ENDDO
ENDDO
ENDDO
c
c input SVs in physical space
c
KULFILE=0
IERR = FNOM(KULFILE,CFLSV,'RND',0)
IF(IERR.GE.0)THEN
IERR = FSTOUV(KULFILE,'RND')
ELSE
CALL ABORT3D(NULOUT,'sv.fst:PROBLEM WITH FILE')
END IF
c
ip1 = -1
ip2 = -1
idateo = -1
cletiket = cdetiket
cltypvar = ' '
c
DO JSV = 1, NSV
c
write(nulout,*) 'READING IN SV #',JSV
c
clnomvar = 'UU'
DO JK = 1, NFLEV
IKEY = VFSTLIR
(GDIN,KULFILE,INI,INJ,INK,IDATEO
+ ,cletiket,nip1(jk),ip2,JSV,cltypvar,clnomvar)
DO JJ=1,NJ
DO JI=1,NI
SVGD(JI,JK+NGPOSIT(nguu)-1,JJ,JSV)=GDIN(JI,NJ+1-JJ)/(conphy(JJ)*RKNTMS)
ENDDO
ENDDO
ENDDO
c
clnomvar = 'VV'
DO JK = 1, NFLEV
IKEY = VFSTLIR
(GDIN,KULFILE,INI,INJ,INK,IDATEO
+ ,cletiket,nip1(JK),ip2,JSV,cltypvar,clnomvar)
DO JJ=1,NJ
DO JI=1,NI
SVGD(JI,JK+NGPOSIT(ngvv)-1,JJ,JSV)=GDIN(JI,NJ+1-JJ)/(conphy(JJ)*RKNTMS)
ENDDO
ENDDO
ENDDO
c
clnomvar = 'TT'
DO JK = 1, NFLEV
IKEY = VFSTLIR
(GDIN,KULFILE,INI,INJ,INK,IDATEO
+ ,cletiket,nip1(jk),ip2,JSV,cltypvar,clnomvar)
DO JJ=1,NJ
DO JI=1,NI
SVGD(JI,JK+NGPOSIT(ngtt)-1,JJ,JSV)=GDIN(JI,NJ+1-JJ)
ENDDO
ENDDO
ENDDO
c
clnomvar = 'LQ'
DO JK = 1, NFLEV
IKEY = VFSTLIR
(GDIN,KULFILE,INI,INJ,INK,IDATEO
+ ,cletiket,nip1(JK),ip2,JSV,cltypvar,clnomvar)
DO JJ=1,NJ
DO JI=1,NI
SVGD(JI,JK+NGPOSIT(ngq)-1,JJ,JSV)=GDIN(JI,NJ+1-JJ)
ENDDO
ENDDO
ENDDO
c
clnomvar = 'P0'
IKEY = VFSTLIR
(GDIN,KULFILE,INI,INJ,INK,IDATEO
+ ,cletiket,-1,ip2,JSV,cltypvar,clnomvar)
DO JJ=1,NJ
DO JI=1,NI
SVGD(JI,NGPOSIT(ngps),JJ,JSV)=GDIN(JI,NJ+1-JJ)/RPATMB
ENDDO
ENDDO
c
ENDDO
c
IERR = FSTFRM(KULFILE)
IERR = FCLOS (KULFILE)
c
write(nulout,*)'done READSV'
call vflush(nulout)
c
RETURN
END