c************** Transformation code from JPDOC ********************* c * c This Fortran code reads the data from a standard file of JPDOC, * c in an interactive way learns what data should be printed, and * c creates the corresponding output file for a fixed format. * c * c 1997 Aug, V.I. * c******************************************************************* dimension a (9,80) data h/6.62e-27/, c/3.0e+10/, ev/1.602e-12/ open (unit=08,file='in',status='old',access='sequential') open (unit=09,file='out',status='new',access='sequential') c--- read and print the standard head do 2 i = 1, 9 2 read (8,7) (a(i,j), j = 1, 80) 7 format (80a1) do 4 i = 1, 6 4 write (9,7) (a(i,j), j = 1, 80) c--- specify outputing quantities print *,' Specify output function: ' print *,'1 - refractive index or 2 - dielectric function' print *,' ' read (5,5) mode1 5 format (i4) print *,' Specify argument: ' print *,'1 - wavelength (cm), 2 - energy (eV),', & ' 3 - wavenumber (cm-1)' print *,' ' read (5,5) mode2 print *,' Specify output format: ' print *,' Sorry, in this version it is not available.' print *,' Press Enter.' print *,' ' read (5,5) mode3 c--- read data 3 continue read (8, 1, end=8) al, an, ak 1 format (e11.4, 2e14.5) c--- transfer data goto (11,12), mode1 11 y1 = an y2 = ak goto 19 12 y1 = an**2 - ak**2 y2 = 2 * an * ak 19 continue goto (21,22,23), mode2 21 x = al goto 29 22 x = h * c / al / ev goto 29 23 x = 1 / al 29 continue c--- output data print *, x, y1, y2 write (9,6) x, y1, y2 6 format (1pe11.4, 2(1pe14.5)) goto 3 8 continue write (9,7) (a(6,j), j = 1, 80) stop end c=== eof ===