guneysus
2/29/2016 - 10:11 PM

Fetched from http://blog.teknikprogramlama.net/tr/field-collection/field-snippet/35


 program main                                         !
                                                      !
  	implicit none                                     !
  	character(len=30)::input,output                   ! DEFINE INPUT-OUTPUT FILE NAMES VARIABLES
  	character(len=*),parameter::formx="(f15.6,f15.6)" ! DEFINE FORMAT AS A VARIABLE
  	real::c1,c2,c3,xmin,xmax,xstep,x,y                ! DEFINE COEFFICIENTS,XMIN,XMAX,XSTEP and Y
  	integer::i                                        !
                                                      !
  	print *, "<inputfile>:"                           ! INPUT: INPUTFILE NAME
  	read *,input                                      !
   	open (unit = 2, file =input,status="old")         ! OPEN INPUT FILE FOR READING
                                                      !
  	read (2,*) c1,c2,c3,xmin,xmax,xstep               ! READ COEFFICIENTS FROM INPUT FILE
  	write(unit=*,fmt=*) c1,c2,c3                      ! WRITE COEFFICIENTS TO CONSOLE
                                                      !
  	print *, "<Outputfile>"                           ! INPUT: OUTPUTFILE NAME
  	read *,output                                     !
  	open (unit = 3, file = output,status="unknown")   ! OPEN or CREATE OUTPUT FILE FOR WRITING
                                                      !
  	i=0                                               !
  	do                                                !
  		x=xmin + i*xstep                              ! INCREASE X, BY STEPSIZE
  			if (x>xmax) then                          ! LOOP UNTIL X .GE. [GREAT OR EQUAL] XMAX
  				exit                                  !
  			end if                                    !
  		y=c1*x**2 + c2*x + c3                         ! CALCULATE Y, TO CORRESPONDING X VALUES
  		write(unit=3,fmt=formx) x,y                   ! WRITE X AND Y TO CONSOLE
  		write(unit=*,fmt=formx) x,y                   ! WRITE X AND Y TO OUTPUTFILE
  	i=i+1                                             !
  	end do                                            !
                                                      !
  end program main                                    !