![]() |
||||||||
![]() |
![]() |
![]() |
![]() |
|||||
![]() |
||||||||
![]() |
||||||||
![]() |
![]() |
|||||||
![]() |
||||||||
![]() |
||||||||
![]() |
||||||||
![]() |
||||||||
![]() |
||||||||
ERRORS AND NORMS EXAMPLES
It is recommended to look at the numerical methods codes where the use of loops is demonstrated. Some additional examples are included here.
EXAMPLE: USE OF A TOLERANCE
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Uses bisection method to find square root
!
! x*x - c = 0
! over the interval [a,b]
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
PROGRAM sqrt
IMPLICIT NONE
INTEGER :: nmax, n
REAL :: tol, d
REAL :: a, b, c
REAL :: fa, fc
WRITE(*,*) ’ Input Constant d (x^2-d=0) ’
READ(*,*) d
WRITE(*,*) ’ Input Lower and Upper Limits’
READ(*,*) a, b
tol = 0.000001
nmax = 100
fa = f(a,d)
c = (a + b ) /2.
fc = f(c,d)
n = 1
DO WHILE (n <= nmax)
IF((b-a)/2.0 < tol) THEN
WRITE(*,*) ’Root’,c,’gives’,fc,’after’,n,’iterations’
EXIT
ENDIF
IF(fa*fc > 0.0) THEN
a = c
ELSE
b = c
ENDIF
c = (a + b ) /2.
fc = f(c,d)
n = n + 1
ENDDO
CONTAINS
REAL FUNCTION F(x,n)
REAL :: x
REAL :: n
f = x*x - n
END FUNCTION F
END PROGRAM
EXAMPLE: NORMS
IMPLICIT NONE REAL, PARAMETER :: pi=4.0*ATAN(1.0) INTEGER :: i, nl, ierr REAL :: fs CHARACTER(LEN=50) :: myfile INTEGER, DIMENSION(:), ALLOCATABLE :: f REAL, DIMENSION(:), ALLOCATABLE :: time, myreal, myimag !COMPLEX, DIMENSION(:,:), ALLOCATABLE :: comp REAL, DIMENSION(:,:), ALLOCATABLE :: comp ... !Store norms norm(1:nl) = (/(SQRT(myreal(i)**2 + myimag(i)**2), i=1,nl)/)













