c**************************************************************************** c Version: 0.3 c Last changed: Mario Monteiro, 2005-11 c This program reads an OSC file from CESAM (version 2K) in ASCII fromat. c**************************************************************************** subroutine read_osc (afilein,xin,ndimin,xdatain,aheaderin) c implicit double precision (b-h,o-y) implicit integer (i-n) parameter (npt=5000,ncol=40,ndat=200) character afilein*80,aheaderin*80 dimension aheaderin(10) dimension xin(ncol,npt),xdatain(ncol),ndimin(ndat) c common /datanum/c4pi,cl10 common /dataphy/cg,csig,cmu common /datasun/sm,sr,sl c open (1,file=afilein,status='old',form='formatted',err=1100) c c------ Header: do 10 i=1,5 read (1,1000,err=1200) aheaderin(i) 10 continue 1000 format (a80) c c------ Global parameters: read (1,1050,err=1200) (ndimin(i),i=1,5) 1050 format (5i10) c write (*,1010) ndimin(1) 1010 format (' Number of mesh points: ',i5) read (1,1020,err=1200) (xdatain(j),j=1,ndimin(2)) 1020 format (5e19.12) fac=c4pi*csig teff=exp(0.25*log(xdatain(3)/(fac*xdatain(2)**2))) write (*,1030) xdatain(1)/sm,xdatain(2)/sr, * xdatain(3)/sl,teff,xdatain(11) 1030 format (' M/M_sun = ',f10.4,/, * ' R/R_sun = ',f10.4,/, * ' L/L_sun = ',f10.4,/, * ' Teff (K) = ',f10.4,/, * ' Age (Gy) = ',f10.4,/) c c------ Model: do 30 i=1,ndimin(1) read (1,1040,err=1200) (xin(j,i),j=1,ndimin(3)+ndimin(4)) 30 continue 1040 format (5e19.12) 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****************************************************************************