program uhbd_to_delphi2 convert a 65**3 or less ascii uhbd .phi grid to DELPHI binary form real phi(65,65,65),oldmid(3),scale,h,ox,oy,oz character*10 nxtlbl character*80 toplbl,uhbdfile,delphifile character*72 title integer im,jm,km,idum1,idum2,idum3,idum4,grdflg,kdum1,kdum2 real dum2,dum3,dum4,dum5,dum6,dum7,dum8,phimax,phimin do i1 = 1,65 do i2 = 1,65 do i3 = 1,65 phi(i3,i2,i1) = 0. endd o end do end do print * ,'I assume ascii uhbd output; must be 65x65x65 or less' 100 continue print * ,'UHBD .phi grid file name:' read (5,991) uhbdfile print *, 'Desired DelPhi output file name:' read (5,991) delphifile 991 format (a80) open (unit=10,file=uhbdfile,readonly,form='formatted') 77 format(a72/2e12.6,5i7/3i7,4e12.6/4e12.6/2e12.6,2i7) 78 format(3i7) 79 format( (6(1x,e12.6)) ) read (10,77) title, scale, dum2, grdflg, idum2, & km, idum5, km, im, jm, km, & h, ox, oy, oz, & dum3, dum4, dum5, dum6, dum7, & dum8, idum3, idum4 do 20 k = 1 , km read (10,78) k, im, jm read (10,79) ( ( phi (i,j,k), i=1,im ), j=1,jm ) 20 continue phimin = 999 phimax = -999 do i1 = 1,65 do i2 = 1,65 do i3 = 1,65 phimax = max(phi(i3,i2,i1), phimax) phimin = min(phi(i3,i2,i1), phimin) endd o end do end do print * ,'min/max phi:', phimin,phimax nxtlbl='potential' toplbl = title open (unit=11,file=delphifile,form='unformatted') write (11) 'now starting phimap ' write (11) nxtlbl,toplbl write (11) phi write (11) ' end of phimap ' scale=1./h c MJP 5/11/94 added +h/2 to midpoint calc to correct c for problems in overlaying c See nb2.txt for 5/11/94. oldmid(1) = ox + h/2 + h*65./2. oldmid(2) = oy + h/2 + h*65./2. oldmid(3) = oz + h/2 + h*65./2. c MJP 5/11/94 End of modifications write (11) scale,oldmid close(11) goto 100 end