! --read T1534 NEMS GFS sfcanl nemsio file ! --to compile: ifort -mcmodel medium -shared-intel -convert big_endian -FR read_sfcanl.f ! --fanglin.yang@noaa.gov NWS/NOAA/NCEP/EMC integer, parameter :: nlat=1536, nlon=3072, nlev=4 integer, parameter :: nvar3d=3,nvar2d=32,nrec=nvar3d*nlev+nvar2d character(255) filename !--forecast files, north-to-south real alnsfsfc (nlon,nlat) real alnwfsfc (nlon,nlat) real alvsfsfc (nlon,nlat) real alvwfsfc (nlon,nlat) real cnwatsfc (nlon,nlat) real crainsfc (nlon,nlat) real f10m10m (nlon,nlat) real facsfsfc (nlon,nlat) real facwfsfc (nlon,nlat) real ffhhsfc (nlon,nlat) real ffmmsfc (nlon,nlat) real fricvsfc (nlon,nlat) real icecsfc (nlon,nlat) real icetksfc (nlon,nlat) real landsfc (nlon,nlat) real orogsfc (nlon,nlat) real salbdsfc (nlon,nlat) real sfcrsfc (nlon,nlat) real shdmaxsfc (nlon,nlat) real shdminsfc (nlon,nlat) real slcsoillayer (nlon,nlat,nlev) real sltypsfc (nlon,nlat) real smcsoillayer (nlon,nlat,nlev) real snodsfc (nlon,nlat) real sotypsfc (nlon,nlat) real spfh2m (nlon,nlat) real stcsoillayer (nlon,nlat,nlev) real tg3sfc (nlon,nlat) real tisfcsfc (nlon,nlat) real tmp2m (nlon,nlat) real tmpsfc (nlon,nlat) real tprcpsfc (nlon,nlat) real vegsfc (nlon,nlat) real vtypesfc (nlon,nlat) real weasdsfc (nlon,nlat) call getarg(1,filename) open (1, file=trim(filename),form="unformatted",access="sequential",status="unknown") !--determine total lines then the lines to skip nn=1 100 continue read(1,end=200) nn=nn+1 goto 100 200 print*, 'total lines =',nn nskip=nn-nrec-1 !---rewind then skip header lines rewind 1 do k=1,nskip read(1) enddo read(1) (( alnsfsfc (i,j),i=1,nlon),j=1,nlat) print *,'alnsfsfc=',alnsfsfc(1,1),maxval(alnsfsfc),minval(alnsfsfc) read(1) (( alnwfsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( alvsfsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( alvwfsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( cnwatsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( crainsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( f10m10m (i,j),i=1,nlon),j=1,nlat) read(1) (( facsfsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( facwfsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( ffhhsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( ffmmsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( fricvsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( icecsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( icetksfc (i,j),i=1,nlon),j=1,nlat) read(1) (( landsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( orogsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( salbdsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( sfcrsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( shdmaxsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( shdminsfc (i,j),i=1,nlon),j=1,nlat) do k=1,nlev read(1) (( slcsoillayer (i,j,k),i=1,nlon),j=1,nlat) enddo read(1) (( sltypsfc (i,j),i=1,nlon),j=1,nlat) do k=1,nlev read(1) (( smcsoillayer (i,j,k),i=1,nlon),j=1,nlat) enddo read(1) (( snodsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( sotypsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( spfh2m (i,j),i=1,nlon),j=1,nlat) do k=1,nlev read(1) (( stcsoillayer (i,j,k),i=1,nlon),j=1,nlat) enddo read(1) (( tg3sfc (i,j),i=1,nlon),j=1,nlat) read(1) (( tisfcsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( tmp2m (i,j),i=1,nlon),j=1,nlat) print *,'tmp2m=',tmp2m(1,1),maxval(tmp2m),minval(tmp2m) read(1) (( tmpsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( tprcpsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( vegsfc (i,j),i=1,nlon),j=1,nlat) read(1) (( vtypesfc (i,j),i=1,nlon),j=1,nlat) read(1) (( weasdsfc (i,j),i=1,nlon),j=1,nlat) print *,'weasdsfc=',weasdsfc(1,1),maxval(weasdsfc),minval(weasdsfc) end