program rdmss c c Read mssfile written by wrmss and find min,max to confirm data. c (assume diskfile already acquired from mss) c integer zjmx parameter(zjmx=36,ntndown=18) common/dlobnd/ dh2olb(zjmx,12),dh2lb(zjmx,12),dcolb(zjmx,12), + dco2lb(zjmx,12),doxlb(zjmx,12),dnozlb(zjmx,12),dch4lb(zjmx,12), + dhoxlb(zjmx,12),dtndown(zjmx,ntndown,12) real bnd(zjmx,12,8) equivalence(bnd,dh2olb) character*40 dskfile data dskfile /'sol_gar_zat.dat '/ data lu/20/ c ldskfile = lenstr(dskfile) open(lu,file=dskfile(1:ldskfile),status='OLD', + form='UNFORMATTED',err=900) read(lu) dh2olb,dh2lb,dcolb,dco2lb,doxlb,dnozlb,dch4lb, + dhoxlb,dtndown do i=1,8 call fminmax(bnd(1,1,i),zjmx*12,rmin,rmax,1.e36) write(6,"('i=',i2,' min,max=',2e12.4)") i,rmin,rmax enddo call fminmax(dtndown,zjmx*ntndown*12,rmin,rmax,1.e36) write(6,"('tndown min,max=',2e12.4)") rmin,rmax stop 'done' 900 continue write(6,"('>>> Error opening disk file ',a)") dskfile(1:ldskfile) stop end c c--------------------------------------------------------------------- c function lenstr(str) character*(*) str c c Return index to last non-blank char in str c length = len(str) do i=length,1,-1 if (str(i:i).ne.' ') then lenstr = i return endif enddo lenstr = 0 return end c c--------------------------------------------------------------------- c subroutine fminmax(f,n,rmin,rmax,spval) dimension f(n) c rmin = 1.e36 rmax = -1.e36 do i=1,n if (f(i).ne.spval.and.f(i).gt.rmax) rmax = f(i) if (f(i).ne.spval.and.f(i).lt.rmin) rmin = f(i) enddo return end