Tag Archives: fortran u fizici

Primjeri programa u Fortranu

  1. program tangenta
    implicit none
    integer i
    double precision x1, x2, y1, y2, eps, f, df
    5 write (*,*) ‘unesi pocetnu tacku’
    read (*,*) x1
    eps=0.0000001
    y1=f(x1)
    do i=1, 1000
    x2=x1-(y1)/(df(x1))
    if (abs(f(x2)).lt.eps) then
    goto 2
    end if
    x1=x2
    end do
    2 continue
    write (*,*) i, x2, f(x2)
    end

double precision function f(x)
double precision x
f=log(x)*exp(x)-x**2
end

double precision function df(x)
double precision x
df=(log(x)*x*exp(x)+exp(x)-2*x**2)/x
end

2.  program integral
implicit none
integer i,n
real a,b,f,h,pi,int
pi=4.*atan(1.0)
a=0
b=pi/2
write (*,*) ‘unesi broj tacaka’
read (*,*) n
h=(b-a)/N
int=0.
do i=1,n-1
int=int+f(a+i*h)
end do
int=h*(0.5*f(a)+int+0.5*f(b))
write (*,*) ‘vrijednost integrala je:’,int
end

real function f(x)
implicit none
real x
f=cos(x)
end

3.

program tangenta
implicit none
integer i
double precision x1, x2, y1, y2, eps, f, df
5 write (*,*) ‘unesi pocetnu tacku’
read (*,*) x1
eps=0.0000001
y1=f(x1)
do i=1, 1000
x2=x1-(y1)/(df(x1))
if (abs(f(x2)).lt.eps) then
goto 2
end if
x1=x2
end do
2 continue
write (*,*) i, x2, f(x2)
end

double precision function f(x)
double precision x
f=log(x)*exp(x)-x**2
end

double precision function df(x)
double precision x
df=(log(x)*x*exp(x)+exp(x)-2*x**2)/x
end

 

Primjeri programa u Fortranu

  1. program tangenta
    implicit none
    integer i
    double precision x1, x2, y1, y2, eps, f, df
    5 write (*,*) ‘unesi pocetnu tacku’
    read (*,*) x1
    eps=0.0000001
    y1=f(x1)
    do i=1, 1000
    x2=x1-(y1)/(df(x1))
    if (abs(f(x2)).lt.eps) then
    goto 2
    end if
    x1=x2
    end do
    2 continue
    write (*,*) i, x2, f(x2)
    end

double precision function f(x)
double precision x
f=log(x)*exp(x)-x**2
end

double precision function df(x)
double precision x
df=(log(x)*x*exp(x)+exp(x)-2*x**2)/x
end

2.  program integral
implicit none
integer i,n
real a,b,f,h,pi,int
pi=4.*atan(1.0)
a=0
b=pi/2
write (*,*) ‘unesi broj tacaka’
read (*,*) n
h=(b-a)/N
int=0.
do i=1,n-1
int=int+f(a+i*h)
end do
int=h*(0.5*f(a)+int+0.5*f(b))
write (*,*) ‘vrijednost integrala je:’,int
end

real function f(x)
implicit none
real x
f=cos(x)
end

3.

program tangenta
implicit none
integer i
double precision x1, x2, y1, y2, eps, f, df
5 write (*,*) ‘unesi pocetnu tacku’
read (*,*) x1
eps=0.0000001
y1=f(x1)
do i=1, 1000
x2=x1-(y1)/(df(x1))
if (abs(f(x2)).lt.eps) then
goto 2
end if
x1=x2
end do
2 continue
write (*,*) i, x2, f(x2)
end

double precision function f(x)
double precision x
f=log(x)*exp(x)-x**2
end

double precision function df(x)
double precision x
df=(log(x)*x*exp(x)+exp(x)-2*x**2)/x
end

 

Šta je to fortran?

Fortran

Fortran (ili FORTRAN) ime je za proceduralni, imperativni programski jezik koji je bio razvijen tijekom 50-ih godina dvadesetog stoljeća, i koristi se većinom u znanstvene svrhe. Ime FORTRAN dobiveno je od skraćivanjem engleske složenice Formula Translation.

Povijest razvoja i inačice

Povijest razvoja

Prvi FORTRAN jezični prevoditelj (ili kompilator) razvila je tvrtka IBM za računalo IBM 704 između 1954. i 1957. godine. Razvojnu grupu predvodio je John W. Backus. Kao jezični prevoditelj FORTRAN je nastao u povojima računarstva tj. kada su osnovna svojstva računala bile veoma skromne (mala glavna memorija, spora centralna jedinica) tako da je razvojni tim imao skučeni prostor za razvoj i implementaciju.

Predvoditelj razvojne grupe John W. Backus je također bio i jedan od glavnih inženjera i dizajnera računala IBM 704, računala na kojem je razvijena prva inačica FORTRANA. Uz Backusa u razvojnoj grupi su sudjelovali su sljedeći programeri :

  • Sheldon F. Best
  • Harlan Herrick
  • Peter Sheridan
  • Roy Nutt
  • Robert Nelson
  • Irving Ziller
  • Richard Goldberg
  • Lois Haibt
  • David Sayre

Razvojni tim FORTRANA nije razvio princip programa-prevoditelja te prevođenje složenog programskog jezika u objektni kod, ali oni su prva grupa koja je razvila uspješan složeni programski jezik.

Inačice

  • FORTRAN I (1954-1957)
  • FORTRAN II (1958)
  • FORTRAN III (1958)
  • FORTRAN IV (1961)
  • FORTRAN 66 (1966)
  • FORTRAN 77 (1977)(ANSI standard)
  • FORTRAN 90 (1990)(ANSI standard)
  • FORTRAN 95 (1995)(ANSI standard)
  • FORTRAN 2000 (2000)
  • FORTRAN 2003 (2003)
  • FORTRAN 2008 (2008)

Programski primjer

!      This program calculates the area of a tank,                      
!      excluding the bottom.                                            
!      The variables are assigned as follows:                           
!                                                                       
!          R  =  RADIUS                                                 
!          H  =  HEIGHT                                                 
!          PI =  3.14159                                                
!          A  =  AREA                                                   
!                                                                       
!      They are declared with the REAL statement below.                 

      REAL R, H, PI, A


!      The OPEN command associates the data file, "PANDAT.DAT",         
!      in folder "DATA" with logical device 5.  If there is an          
!      error, statement 900 is executed.                                

      OPEN (5, FILE = 'C:\DATA\PANDAT.DAT', ACCESS = 'SEQUENTIAL',      &
      STATUS = 'OLD', ERR = 900)


!      This following section accumulates the sum of                    
!      the input variables.                                             
!      The first command reads the data record and                      
!      stores it in memory.                                             

      DO	                                                                
         READ (5, FMT = 1, END = 99) R, H

!      The next command describes the form and location                 
!      of the data to be read.                                          

    1 FORMAT    (F4.2,F4.2)

!      The next statements assign values to the variables.              

         PI = 3.14159
         A = PI * R**2 + 2 * PI * R * H

!      The next section writes the sums to the screen.                  
!      The first command, PRINT, denotes which FORMAT                   
!      statement is to be used, and the variables to be printed.        

         PRINT 11, H, R, A

!      The following FORMAT statement describes how the                 
!      data field is to be written. Notice the semicolon in column 6    
!      which is used to denote continuation of the previous line.       

   11 FORMAT    (1X,'RADIUS= ',F6.2,10X,'HEIGHT= ',F6.1,10X,'AREA= ',   &
     &           F8.1)


!      The following statement completes the loop.                      

      END DO

!      The next section prints if the input data is invalid.            

  900 PRINT 21
   21 FORMAT    (1X,'INVALID DATA')


!      Now we close the file and end program execution.                 

   99 CLOSE (5)
      STOP 
      END

Šta je to fortran?

Fortran

Fortran (ili FORTRAN) ime je za proceduralni, imperativni programski jezik koji je bio razvijen tijekom 50-ih godina dvadesetog stoljeća, i koristi se većinom u znanstvene svrhe. Ime FORTRAN dobiveno je od skraćivanjem engleske složenice Formula Translation.

Povijest razvoja i inačice

Povijest razvoja

Prvi FORTRAN jezični prevoditelj (ili kompilator) razvila je tvrtka IBM za računalo IBM 704 između 1954. i 1957. godine. Razvojnu grupu predvodio je John W. Backus. Kao jezični prevoditelj FORTRAN je nastao u povojima računarstva tj. kada su osnovna svojstva računala bile veoma skromne (mala glavna memorija, spora centralna jedinica) tako da je razvojni tim imao skučeni prostor za razvoj i implementaciju.

Predvoditelj razvojne grupe John W. Backus je također bio i jedan od glavnih inženjera i dizajnera računala IBM 704, računala na kojem je razvijena prva inačica FORTRANA. Uz Backusa u razvojnoj grupi su sudjelovali su sljedeći programeri :

  • Sheldon F. Best
  • Harlan Herrick
  • Peter Sheridan
  • Roy Nutt
  • Robert Nelson
  • Irving Ziller
  • Richard Goldberg
  • Lois Haibt
  • David Sayre

Razvojni tim FORTRANA nije razvio princip programa-prevoditelja te prevođenje složenog programskog jezika u objektni kod, ali oni su prva grupa koja je razvila uspješan složeni programski jezik.

Inačice

  • FORTRAN I (1954-1957)
  • FORTRAN II (1958)
  • FORTRAN III (1958)
  • FORTRAN IV (1961)
  • FORTRAN 66 (1966)
  • FORTRAN 77 (1977)(ANSI standard)
  • FORTRAN 90 (1990)(ANSI standard)
  • FORTRAN 95 (1995)(ANSI standard)
  • FORTRAN 2000 (2000)
  • FORTRAN 2003 (2003)
  • FORTRAN 2008 (2008)

Programski primjer

!      This program calculates the area of a tank,                      
!      excluding the bottom.                                            
!      The variables are assigned as follows:                           
!                                                                       
!          R  =  RADIUS                                                 
!          H  =  HEIGHT                                                 
!          PI =  3.14159                                                
!          A  =  AREA                                                   
!                                                                       
!      They are declared with the REAL statement below.                 

      REAL R, H, PI, A


!      The OPEN command associates the data file, "PANDAT.DAT",         
!      in folder "DATA" with logical device 5.  If there is an          
!      error, statement 900 is executed.                                

      OPEN (5, FILE = 'C:DATAPANDAT.DAT', ACCESS = 'SEQUENTIAL',      &
      STATUS = 'OLD', ERR = 900)


!      This following section accumulates the sum of                    
!      the input variables.                                             
!      The first command reads the data record and                      
!      stores it in memory.                                             

      DO	                                                                
         READ (5, FMT = 1, END = 99) R, H

!      The next command describes the form and location                 
!      of the data to be read.                                          

    1 FORMAT    (F4.2,F4.2)

!      The next statements assign values to the variables.              

         PI = 3.14159
         A = PI * R**2 + 2 * PI * R * H

!      The next section writes the sums to the screen.                  
!      The first command, PRINT, denotes which FORMAT                   
!      statement is to be used, and the variables to be printed.        

         PRINT 11, H, R, A

!      The following FORMAT statement describes how the                 
!      data field is to be written. Notice the semicolon in column 6    
!      which is used to denote continuation of the previous line.       

   11 FORMAT    (1X,'RADIUS= ',F6.2,10X,'HEIGHT= ',F6.1,10X,'AREA= ',   &
     &           F8.1)


!      The following statement completes the loop.                      

      END DO

!      The next section prints if the input data is invalid.            

  900 PRINT 21
   21 FORMAT    (1X,'INVALID DATA')


!      Now we close the file and end program execution.                 

   99 CLOSE (5)
      STOP 
      END