c**************************************************************************** c Version: 0.2 c Last changed: Mario Monteiro, 2005-11 c These subroutines read the data from FAMDL and AMDL. c*************************************************************************** subroutine read_amdl (afilein,xin,ndimin,xdatain) c c Subroutine to write out the AMDL file (binary). c implicit double precision (b-h,o-y) implicit integer (i-n) parameter (npt=5000,ncol=40,ndat=200) character afilein*80 dimension ndimin(ndat),xin(ncol,npt),xdatain(ndat) c common /datasun/sm,sr,sl c open (1,file=afilein,form='unformatted',status='old',err=1100) c read (1,err=1200) (ndimin(j),j=1,2),(xdatain(j),j=1,8) close (1) idv=idint(xdatain(8)+0.1) if (idv.ge.100) then ivar=8 else if (idv.ge.10) then ivar=6 else ivar=5 endif c open (1,file=afilein,form='unformatted',status='old',err=1100) read (1,err=1200) (ndimin(j),j=1,2),(xdatain(j),j=1,8), * ((xin(j,i),j=1,ivar+1),i=1,ndimin(2)) ndimin(3)=ivar c write (*,1040) ndimin(2) 1040 format (' Number of mesh points: ',i5) write (*,1050) xdatain(1)/sm,xdatain(2)/sr 1050 format (' M/M_sun = ',f10.4,/, * ' R/R_sun = ',f10.4,/) c c------- close (1) c return c 1100 write (*,1110) 1110 format (' ERROR: File not available! Please try again:') afilein='error' return c 1200 write (*,1210) 1210 format (' ERROR: Unable to read the file! ', * 'Please select an adequate one:') afilein='error' return c end c************************************************************************** subroutine read_famdl (afilein,xin,ndimin,xdatain) c c Subroutine to write out the AMDL file (binary). c implicit double precision (b-h,o-y) implicit integer (i-n) parameter (npt=5000,ncol=40,ndat=200) character afilein*80 dimension ndimin(ndat),xin(ncol,npt),xdatain(ndat) c common /datasun/sm,sr,sl c open (1,file=afilein,form='formatted',status='old',err=1100) c c read (1,1010,err=1200) (ndimin(j),j=1,3) 1010 format (3i10) c read (1,1020,err=1200) (xdatain(j),j=1,8) 1020 format (1p4e20.13) c write (*,1040) ndimin(2) 1040 format (' Number of mesh points: ',i5) write (*,1050) xdatain(1)/sm,xdatain(2)/sr 1050 format (' M/M_sun = ',f10.4,/, * ' R/R_sun = ',f10.4,/) c read (1,1020) ((xin(j,i),j=1,ndimin(3)+1),i=1,ndimin(2)) c c------- close (1) c return c 1100 write (*,1110) 1110 format (' ERROR: File not available! Please try again:') afilein='error' return c 1200 write (*,1210) 1210 format (' ERROR: Unable to read the file! ', * 'Please select an adequate one:') afilein='error' return c end c**************************************************************************