extrapolate.f90

Go to the documentation of this file.
00001 program extrapolation
00002   implicit none
00003   real(8) :: lagint_4th
00004   real(8) :: x(4),y(4), v
00005   real(8) :: dx12, dx13, dx14, dx23, dx24, dx34
00006   real(8) :: dx21, dx31, dx32, dx41, dx42, dx43
00007   real(8) :: xv1, xv2, xv3, xv4, wex1, wex2, wex3, wex4
00008   integer :: i
00009 !
00010   open(1,file='data.dat',status='old')
00011   do i = 1, 4
00012     read(1,*) x(i),y(i)
00013   end do
00014   close(1)
00015   v = 0.0
00016 !
00017       dx12 = x(1) - x(2)
00018       dx13 = x(1) - x(3)
00019       dx14 = x(1) - x(4)
00020       dx23 = x(2) - x(3)
00021       dx24 = x(2) - x(4)
00022       dx34 = x(3) - x(4)
00023       dx21 = - dx12
00024       dx31 = - dx13
00025       dx32 = - dx23
00026       dx41 = - dx14
00027       dx42 = - dx24
00028       dx43 = - dx34
00029       xv1 = v - x(1)
00030       xv2 = v - x(2)
00031       xv3 = v - x(3)
00032       xv4 = v - x(4)
00033       wex1 = xv2*xv3*xv4/(dx12*dx13*dx14) 
00034       wex2 = xv1*xv3*xv4/(dx21*dx23*dx24) 
00035       wex3 = xv1*xv2*xv4/(dx31*dx32*dx34) 
00036       wex4 = xv1*xv2*xv3/(dx41*dx42*dx43) 
00037 !
00038       lagint_4th = wex1*y(1) + wex2*y(2) + wex3*y(3) + wex4*y(4)
00039 !
00040   open(1,file='ouput.dat',status='unknown')
00041   do i = 1, 4
00042     write(1,*) x(i),dabs(y(i) - lagint_4th)
00043   end do
00044   close(1)
00045 !
00046 end program extrapolation

Generated on 27 Oct 2011 for Cocal by  doxygen 1.6.1