c* c* read isccp equal-area map, floating-point c* subroutine eqread_flt(filename,eqmap,irc) character*255 filename parameter ( lunin = 10 ) parameter ( maxbox = 6596 ) real eqmap(maxbox) open(lunin,file=filename,access='direct', $ recl=26384,form='unformatted',status='old',iostat=irc) if ( irc .ne. 0 ) goto 999 read(lunin,rec=1,iostat=irc) eqmap if ( irc .ne. 0 ) goto 999 close(lunin) c* irc = 0 return 999 continue return end c* c* read isccp equal-area map, integer c* subroutine eqread_int(filename,iscale,eqmap,irc) character*255 filename parameter ( lunin = 10 ) parameter ( maxbox = 6596 ) real eqmap(maxbox) integer imap(maxbox) open(lunin,file=filename,access='direct', $ recl=26384,form='unformatted',status='old',iostat=irc) if ( irc .ne. 0 ) goto 999 read(lunin,rec=1,iostat=irc) imap if ( irc .ne. 0 ) goto 999 close(lunin) do 100 ibox=1,maxbox eqmap(ibox) = float(imap(ibox)) / float(iscale) 100 continue c* irc = 0 return 999 continue return end c* c* read isccp equal-area map, ascii text c* subroutine eqread_asc(filename,eqmap,irc) character*255 filename parameter ( lunin = 10 ) parameter ( maxbox = 6596 ) real eqmap(maxbox) open(lunin,file=filename,access='direct', $ recl=80,form='formatted',status='old',iostat=irc) if ( irc .ne. 0 ) goto 999 irec = 0 do 5 ibeg=1,maxbox,8 irec = irec + 1 iend = ibeg + 7 if ( iend .gt. maxbox ) iend = maxbox read(lunin,rec=irec,fmt=10,iostat=irc) (eqmap(i),i=ibeg,iend) if ( irc .ne. 0 ) goto 999 5 continue 10 format(8f10.3) close(lunin) c* irc = 0 return 999 continue return end c* c* read isccp square lat/lon map, floating-point c* subroutine sqread_flt(filename,sqmap,irc) character*255 filename parameter ( lunin = 10 ) parameter ( maxlat = 72 ) parameter ( maxlon = 144 ) real sqmap(maxlon,maxlat) open(lunin,file=filename,access='direct', $ recl=41472,form='unformatted',status='old',iostat=irc) if ( irc .ne. 0 ) goto 999 read(lunin,rec=1,iostat=irc) sqmap if ( irc .ne. 0 ) goto 999 close(lunin) c* irc = 0 return 999 continue return end c* c* read isccp square lat/lon map, integer c* subroutine sqread_int(filename,iscale,sqmap,irc) character*255 filename parameter ( lunin = 10 ) parameter ( maxlat = 72 ) parameter ( maxlon = 144 ) real sqmap(maxlon,maxlat) integer imap(maxlon,maxlat) open(lunin,file=filename,access='direct', $ recl=41472,form='unformatted',status='old',iostat=irc) if ( irc .ne. 0 ) goto 999 read(lunin,rec=1,iostat=irc) imap if ( irc .ne. 0 ) goto 999 close(lunin) do 100 ilat=1,maxlat do 100 ilon=1,maxlon sqmap(ilon,ilat) = float(imap(ilon,ilat)) / float(iscale) 100 continue c* irc = 0 return 999 continue return end c* c* read isccp square lat/lon map, ascii text c* subroutine sqread_asc(filename,sqmap,irc) character*255 filename parameter ( lunin = 10 ) parameter ( maxlat = 72 ) parameter ( maxlon = 144 ) real sqmap(maxlon,maxlat) open(lunin,file=filename,access='direct', $ recl=80,form='formatted',status='old',iostat=irc) if ( irc .ne. 0 ) goto 999 irec = 0 do 5 lat=1,maxlat do 5 lon=1,maxlon,8 irec = irec + 1 read(lunin,rec=irec,fmt=10,iostat=irc) $ (sqmap(ilon,lat),ilon=lon,lon+7) if ( irc .ne. 0 ) goto 999 5 continue 10 format(8f10.3) close(lunin) c* irc = 0 return 999 continue return end