Reading in an ASCII file written by a FORTRAN program
- To: mathgroup at smc.vnet.net
- Subject: [mg97517] Reading in an ASCII file written by a FORTRAN program
- From: hayes.tyler at gmail.com
- Date: Sat, 14 Mar 2009 18:13:04 -0500 (EST)
Hello All: I didn't want to hijack another's thread about reading in fixed format files into Mathematica and I was wondering if there is a way to read FORTRAN written data. For my thesis used FORTRAN code for my number crunching, and used function calls to DISLIN to visualize that data. Now I have Mathematica, whose graphics capabilities are well beyond anything I could previously do, I would like to recreate and improve those graphs. The way I created the files of data (which I always used a .d extension, but it doesn't matter what that would be called) is demonstrated below. Please note, this is NOT binary data, but text output with no FORMAT. For example: My FORTRAN code writes out: open(unit=30,name=fnout,status='old') write(30,'(a20)') fnmod write(30,'(a20)') fnstr write(30,*) nfault,hpl,vplx,vply,taua,tauf,amuu, & tminn,tstepp,itime,TBIS,bulkms,ntm,ncycle,pdcy write(30,*) ptrad write(30,'(a1)') respfb write(30,*) (timi(n), n=1,nfault) write(30,*) (taub(n), n=1,nfault) write(30,*) (delts(n), n=1,nf) write(30,*) (cfr(n), n=1,nfault) write(30,*) (dfr(n), n=1,nfault) write(30,*) (slpdf(n), n=1,nf2) write(30,*) (slpv(n), n=1,nfault) write(30,*) (rhofcc(n), n=1,nfault) write(30,*) (islip(n), n=1,nfault) (NOTE: not all variables are the same length, some are strings, some doubles, etc.) I subsequently read back the data into FORTRAN as: open(unit=30,name=fnin,status='old') read(30,'(a20)') fnmod read(30,'(a20)') fnstr read(30,*) nfault,hpl,vplx,vply,taua,tauf,amuu, & tminn,tstepp,ntime,TBIS,bulkms,ntm,ncycle,pdcy read(30,*) ptrad read(30,'(a1)') respfb read(30,*) (timi(n), n=1,nfault) read(30,*) (taub(n), n=1,nfault) read(30,*) (delts(n), n=1,nf) read(30,*) (cfr(n), n=1,nfault) read(30,*) (dfr(n), n=1,nfault) read(30,*) (slpdf(n), n=1,nf2) read(30,*) (slpv(n), n=1,nfault) read(30,*) (rhofcc(n), n=1,nfault) read(30,*) (islip(n), n=1,nfault) So, the big question then is: How would I go about reading in the above unformatted Fortran file within Mathematica? Thanks for any advice you may have. Cheers, t.