MESA Summer School 2017: Fortran Examples

Table of Contents

Fortran Examples

Here are a few quick examples of Fortran in action. This should be mostly sufficient to get you through the summer school.

Variables

Declaring Variables

! declare a boolean variable
logical :: flag

! declare an integer variable
integer :: i

! declare a double precision variable
real(dp) :: foo

! declare a 1d array with 10 elements
real(dp), dimension(10) :: bar

Assigning Variables

! booleans have two special values
flag = .true.
flag = .false.

! arrays are 1-indexed (using parentheses)
bar(1) = 3.14
bar(2:9) = 0
bar(10) = 2.72

Logic

Comparison Operators

There are two (equivalent) forms of comparison operators in Fortran

text form symbol form description
.gt. > greater than
.lt. < less than
.ge. >= greater than or equal to
.le. <= less than or equal to
.eq. == equal to
.ne. /= not equal to
! these are the same
(i .ne. 0)
(i /= 0)

Logical Operators

There are three logical operators: .and., .or., and .not..

! true when 0 < i < 10
((i > 0) .and. (i < 10))

! true when i /= 0,1
(.not. ((i .eq. 0) .or. (i .eq. 1)))

If-Then-Else

! here is an example of how to do some logic
if (x .gt. 0) then
   heavyside = 1.0
else if (x .lt. 0) then
   heavyside = 0.0
else
   heavyside = 0.5
end if

Loops

! here is an example of a do loop
array(1) = 1
array(2) = 1
do i = 3, 10
   array(i) = array(i-1) + array(i-2)
enddo

Author: Josiah Schwab

Created: 2017-08-01 Tue 13:10

Validate