C C Prog to convert 64-bit pp-fields into 32-bit ones. C C Compile as f90 -o pp64_to_32.l.exe C C Used by safe_convpp.pl if -s is set C C WMC 2001/02/19 C character*132 filename character*132 filename1 parameter (ni=45) parameter (nh=64) integer ios integer*8 headeri(ni) real*8 headerr(nh-ni) read(unit=*,fmt='(a)') filename open(unit=99,status='old',file=filename,form='unformatted') do i=1,132 if (filename(i:i+3) .eq. '.pp ') then filename1=filename(1:i-1)//'.32.pp' open(unit=98,status='new',file=filename1,form='unformatted') goto 3 endif enddo 3 continue 1 continue read(unit=99,iostat=ios) headeri,headerr if (ios .ne. 0) goto 2 call print_header(headeri,headerr,ni,nh-ni) call handle_data(headeri(15)) goto 1 2 continue end C ----------------------------- subroutine handle_data(l) integer l real*8 data(l) real*4 d(l) integer i read(unit=99) data do i=1,l d(i)=data(i) enddo write(unit=98)d end C ----------------------------- subroutine print_header(headeri,headerr,ni,nr) integer ni,nr integer*8 headeri(ni) real*8 headerr(nr) real*4 hr(nr) integer*4 hi(ni) do i=1,ni hi(i)=headeri(i) enddo do i=1,nr hr(i)=headerr(i) enddo write(unit=98) hi,hr write(unit=*,fmt='(i4,a1,i2,a1,i2, a1,i2,a1,i2, a2,i5,a1,i3,a1)') & headeri(1),'-',headeri(2),'-',headeri(3) & ,' ',headeri(4),':',headeri(5) & ,' [',headeri(42),'/',headeri(23),']' end