user2882135
user2882135

Reputation: 31

Get from fortran into an excel file fortran (ftn95)

I am using fortran f95. My OS is windows 7, 64-bit.

I would like to get the output into an excel file so that I may plot the data. Does anybody know how to do this? Your response is highly appreciated. PS: I would like the output file to contain x, f(i), fprime1,fprime2, fprime3, diff1,diff2 and diff3. The code is as mentioned below:

**

! This program calculates the first derivative of
! a function, where f(x)= sin x. It makes use of the
! centred-difference formula using 3 values of the step size: h1, h2, h3.
! It also calculates the
! analytical first derivative of the function.
Program centred_difference_first_derivative
implicit none
real :: x, h1, h2, h3, fprime1, fprime2, fprime3, diff1, diff2, diff3, pi, stepa
real,dimension(:), allocatable :: f
integer :: i
! Assignment of variables
x=0.0
pi=4*atan2(1.0,1.0)
allocate(f(41))
stepa=pi/20.0
h1=0.1
h2=0.01
h3=0.001
! Calculate analytical derivative of sin x
! for the domain x:[0,2pi]
do i=1,41
  f(i)=cos(x)
  x=x+stepa
  end do

! Approximates first derivative of sin x
! step size h1, for the domain x:[0,2pi]
  x=0.0
do i=1,41
  fprime1=(sin(x+h1)-sin(x-h1))/(2*h1)
  diff1=f(i)-fprime1
  print 37, x,f(i),fprime1,diff1
  x=x+stepa
  end do
37  format(e15.8,3x,e15.8,3x,e15.8,3x,'ERROR1= ',e15.8)

! Approximates first derivative of sin x
! step size h2, for the domain x:[0,2pi]
  x=0.0
do i=1,41
  fprime2=(sin(x+h2)-sin(x-h2))/(2*h2)
  diff2=f(i)-fprime2
  print 49,x,f(i),fprime2,diff2    
  x=x+stepa
  end do
49  format(e15.8,3x,e15.8,3x,e15.8,3x,'ERROR2= ',e15.8)
! Approximates first derivative of sin x
! step size h3, for the domain x:[0,2pi]
  x=0.0
do i=1,41
  fprime3=(sin(x+h3)-sin(x-h3))/(2*h3)
  diff3=f(i)-fprime3
print 61,x,f(i),fprime3,diff3    
  x=x+stepa
  end do
61  format(e15.8,3x,e15.8,3x,e15.8,3x,'ERROR3= ',e15.8)
end program

**

Upvotes: 3

Views: 490

Answers (1)

user649198
user649198

Reputation:

Output your data to a file, separated by spaces or commas. Excel has text import features to properly process and display such files.

An example is ASCII tecplot files which you can simply write using Fortran, with source code and examples provided here - TECPLOT_WRITE. A short snippet follows.

!
!  Write the zone header.
!
  write ( iunit, '(a)' ) ' '
  write ( iunit, '(a,i6,a,i6,a,i6,a)' ) 'Zone I=', nr, ', J=', nz, 'K=', &
    nt, ', F=POINT'
!
!  Write the zone data, one node at a time.
!
  do k = 1, nt
    do j = 1, nz
      do i = 1, nr

        x = r(i) * cos ( t(k) )
        y = r(i) * sin ( t(k) )

        vx = vr(i,j) * cos ( t(k) ) - vt(i,j) * sin ( t(k) )
        vy = vr(i,j) * sin ( t(k) ) + vt(i,j) * cos ( t(k) )

        write ( iunit, '(3f10.3,3g15.6)' ) x, y, z(j), vx, vy, vz(i,j)

      end do
    end do
  end do

Upvotes: 1

Related Questions