Fortran mode
x
1
! Example Fortran code
2
program average
3
4
! Read in some numbers and take the average
5
! As written, if there are no data points, an average of zero is returned
6
! While this may not be desired behavior, it keeps this example simple
7
8
implicit none
9
10
real, dimension(:), allocatable :: points
11
integer :: number_of_points
12
real :: average_points=0., positive_average=0., negative_average=0.
13
14
write (*,*) "Input number of points to average:"
15
read (*,*) number_of_points
16
17
allocate (points(number_of_points))
18
19
write (*,*) "Enter the points to average:"
20
read (*,*) points
21
22
! Take the average by summing points and dividing by number_of_points
23
if (number_of_points > 0) average_points = sum(points) / number_of_points
24
25
! Now form average over positive and negative points only
26
if (count(points > 0.) > 0) then
27
positive_average = sum(points, points > 0.) / count(points > 0.)
28
end if
29
30
if (count(points < 0.) > 0) then
31
negative_average = sum(points, points < 0.) / count(points < 0.)
32
end if
33
34
deallocate (points)
35
36
! Print result to terminal
37
write (*,'(a,g12.4)') 'Average = ', average_points
38
write (*,'(a,g12.4)') 'Average of positive points = ', positive_average
39
write (*,'(a,g12.4)') 'Average of negative points = ', negative_average
40
41
end program average
42
MIME types defined: text/x-fortran
.