c MAIN.F - NSIDC DATA 
c NOTE: dr = arctic OUTPUT data 
c       dg = NSIDC INPUT data 
c       km = 12 months::  DATA put into tracer1 in snapshot 
c       user has to set ig/jg 
c       user has to set nyr: number of years to be interpolated 
c       snapshot contains data from FINAL year read into dr array 
c       (IE: only ONE snapshot made, but all interp. data is 
c       written to file called dd.dta, which can be used 
c       for further processing at a later date.) 

c 
        parameter(ig=80,jg=58) ! dimensions of NSIDC grid 
        parameter(ir=91,jr=67,m=12,nyr=46) 
c 
        real xlon(ig,jg),xlat(ig,jg) 
        real xt(ir),yt(jr),zt(m) 
        real dg(ig,jg,m,nyr), dr(ir,jr,m,nyr),temp(ir,jr,m) 
        integer kmtg(ig,jg), kmtr(ir,jr) 

c USER definitions 
        pi = 4.*atan(1.) 
        phir = pi/4. 
        thetar = -pi/2. 
        psir = -pi/2. 
        cell=111.1774734 
c 
c METHOD of Interpolation: 
c if method = 1, use gaussian interp 
c if method = 2, use witch interp 
c if method = 3, use nearest neighbor interp 
c 
        method =2 
        radius = 0.5 
c 

c TO CHANGE YEAR(s) TO BE READ BY GDATA.F, 
c YOU MUST MODIFY nskip PARAMETER 

c SKIP 1901 TO 1948, INCLUSIVE 
        nskip = 48 
c Number of years to be interpolated is determined 
c by PARAMETER NYR 
c 
c get GEOGRAPHICAL data  (NSIDC) 
        call gdata(dg,xlon,xlat,kmtg,ig,jg,m,nskip,nyr) 
        write(*,*) 'GDATA' 

c get ROTATED data      (arctic model) 
        call rdata(xt,yt,zt,kmtr,ir,jr,m) 
        write(*,*) 'RDATA' 

c DO INTERPOLATION for ALL MONTHS AT ONCE 
        call intp(dg,xlon,xlat,ig,jg, 
     >     dr,xt,yt,ir,jr,phir,thetar, 
     >     psir,kmtg,kmtr,m,nyr,method,radius) 

        write(*,*) 'IDATA' 
c 
c A data file will be written which includes all interpolated 
c data values for the years specified above. 

        open(22,file='nsidc_w.R150',form='unformatted') 
           do n=1,nyr 
                iyr = 1900+n+nskip 
                do i=1,ir 
                   do j=1,jr 
                      do k=1,m 
                         temp(i,j,k) = dr(i,j,k,n) 
                      enddo 
                   enddo 
                enddo 
                write(22) iyr, temp 
           enddo 
        close(22) 

        end