c GDATA.F - GOSTA 
c 
c PURPOSE:  CALCULATE GOSTA GRID COORDINATES, 
c           EXTRACT ICE CONCENTRATION DATA 
c           FROM FILE, AND READ INTO ARRAY 

        subroutine gdata(data,xt1,yt1,imt1,jmt1,km1,nskip,nyr) 
c 
        real xt1(imt1),yt1(jmt1) 
        real data(imt1,jmt1,km1,nyr) 
        integer idata(imt1,jmt1),nskip,nyr,part 
        character fin*40,fout*40 
c 
        bad = -10. 
c 
c  calculating  GOSTA grid 
        do i=1,imt1 
                xt1(i) = (float(i)) -180.5 
        enddo 
        do j=1,jmt1 
                yt1(j) = 180.-(float(j)-1.) -90.5 
        enddo 
c 
        open(12,file='list.in',status='unknown') 

c skipping NSKIP years 
        if (nskip .gt. 0) then 
        do ii = 1, nskip 
           read(12,'(i2,a26,a5)') part,fin,fout 
            write(*,*) 'SKIPPING FILE:',fin 
        enddo 
        endif 

        do n=1,nyr 
           read(12,'(i2,a26,a5)') part,fin,fout 
           open(10,file=fin,form='formatted',status='unknown') 

c 
c read in the data 
c skip odd year if wanting to read even year 
            if (part.eq.2) then 
                 do kk=1,12 
                   read(10,1) mon,iyr 
                   read(10,2) idata 
                  enddo 
                endif 
c 
             do k=1,km1 
                read(10,1) mon,iyr 
                read(10,2) idata 
                write(*,*) 'MON & YEAR',mon,iyr 
c 
               do i=1,imt1 
               do j=1,jmt1 

c Data stored in *.TXT files in order of DECREASING latitude. 
c (90 deg. to -90 deg) 
c Data array will be stored in order of INCREASING latitude, to 
c correspond with GOSTA grid as defined above. 
c 
c DIVIDE DATA BY 10. so ice conc between  0-1. 
                data(i,j,k,n) = float(idata(i,j))/10. 
                    if (idata(i,j).eq.-32768) then 
                        data(i,j,k,n)=bad 
                    endif 

               enddo 
               enddo 
            enddo 
1       format(2i6) 
2       format(360i6) 
c 
        close(10) 
        enddo 
        close(12) 
c 
c 
        return 
        end