C     FORTRAN TEMPLATE FOR FILE= ndn6089_met.nc                          
      PARAMETER (NVARS=11) !NUMBER OF VARIABLES
      PARAMETER (NREC=   408)   !CHANGE THIS TO GENERALIZE
C     VARIABLE IDS RUN SEQUENTIALLY FROM 1 TO NVARS= 11
      INTEGER*4 RCODE
      INTEGER*4 RECDIM
      CHARACTER*50 long_name(nvars)
      CHARACTER*50 name(100)
C     ****VARIABLES FOR THIS NETCDF FILE****
C
      REAL*4      lon                            (   45)
      REAL*4      lat                            (   27)
      INTEGER*4   time                           (NREC)
      INTEGER*4   month                          (NREC)
      INTEGER*4   year                           (NREC)
      REAL*4      UW                             (   45,   27,NREC)
      REAL*4      VW                             (   45,   27,NREC)
      REAL*4      Spd                            (   45,   27,NREC)
      REAL*4      SST                            (   45,   27,NREC)
      REAL*4      AT                             (   45,   27,NREC)
      REAL*4      Q                              (   45,   27,NREC)
C*************************************
      character*80 input_file
      INTEGER*4 START(10)
      INTEGER*4 COUNT(10)
      INTEGER VDIMS(10) !ALLOW UP TO 10 DIMENSIONS
      CHARACTER*31 DUMMY
C
C      LONG NAMES FOR EACH VARIABLE
C
      data long_name/
     *'longitude                                         ',
     *'latitude                                          ',
     *'Time                                              ',
     *'Month                                             ',
     *'Year                                              ',
     *'East-West Pseudo-Stress                           ',
     *'North-South Pseudo-Stress                         ',
     *'Scalar wind speed                                 ',
     *'Sea Surface Temperature                           ',
     *'Air Temperature at 10m                            ',
     *'Specific Humidity                                 '/
C
      write(6,1)
 1    format(' enter your input file')
      read(5,2) input_file
 2    format(a80)
      ilen=index(input_file,'   ')
      ncid=ncopn(input_file(1:ilen-1),0,rcode)
      CALL NCINQ(NCID,NDIMS,NVARS,NGATTS,RECDIM,RCODE)
      CALL NCDINQ(NCID,RECDIM,DUMMY,NRECS,RCODE)
C     !NRECS! NOW CONTAINS NUM RECORDS FOR THIS FILE
C
C    statements to fill lon                            
C
      ivarid = ncvid(ncid,'lon                            ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO  10 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
  10  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +lon                            ,RCODE)
C
C    statements to fill lat                            
C
      ivarid = ncvid(ncid,'lat                            ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO  20 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
  20  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +lat                            ,RCODE)
C
C    statements to fill time                           
C
      ivarid = ncvid(ncid,'time                           ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO  30 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
  30  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +time                           ,RCODE)
C
C    statements to fill month                          
C
      ivarid = ncvid(ncid,'month                          ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO  40 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
  40  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +month                          ,RCODE)
C
C    statements to fill year                           
C
      ivarid = ncvid(ncid,'year                           ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO  50 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
  50  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +year                           ,RCODE)
C
C    statements to fill UW                             
C
      ivarid = ncvid(ncid,'UW                             ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO  60 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
  60  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +UW                             ,RCODE)
C
C    statements to fill VW                             
C
      ivarid = ncvid(ncid,'VW                             ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO  70 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
  70  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +VW                             ,RCODE)
C
C    statements to fill Spd                            
C
      ivarid = ncvid(ncid,'Spd                            ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO  80 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
  80  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +Spd                            ,RCODE)
C
C    statements to fill SST                            
C
      ivarid = ncvid(ncid,'SST                            ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO  90 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
  90  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +SST                            ,RCODE)
C
C    statements to fill AT                             
C
      ivarid = ncvid(ncid,'AT                             ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO 100 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
 100  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +AT                             ,RCODE)
C
C    statements to fill Q                              
C
      ivarid = ncvid(ncid,'Q                              ',rcode)
      CALL NCVINQ(NCID,ivarid,DUMMY,NTP,NVDIM,VDIMS,NVS,RCODE)
      LENSTR=1
      DO 110 J=1,NVDIM
      CALL NCDINQ(NCID,VDIMS(J),DUMMY,NDSIZE,RCODE)
      LENSTR=LENSTR*NDSIZE
      START(J)=1
      COUNT(J)=NDSIZE
 110  CONTINUE
      CALL NCVGT(NCID,ivarid,START,COUNT,
     +Q                              ,RCODE)

C
C     following code: checks output code code against current input file
C
C
      call ncinq(ncid,ndims,nvarsc,ngatts,nrecdim,rcode)
      if(nvarsc.ne.nvars) write(6,130)
  130 format('number of variables has changed')
C
      do 200 i=1,nvars
      do 160 j=1,nvarsc
      call ncagt(ncid,j,'long_name',name(j),mtlen,rcode)
      ilen=index(long_name(i),'   ')
      if(long_name(i)(1:ilen-1).eq.name(j)(1:ilen-1)) go to 200
  160 continue
      write(6,170) name(j)
  170 format('unknown variable ',a50)
      write(6,180)
  180 format('rerun gennet')
      stop
  200 continue
C
      CALL NCCLOS(NCID,RCODE)
C
C
C     HERE IS WHERE YOU WRITE STATEMENTS TO USE THE DATA
C
C
C
      STOP
      END