! You can compile this program with: ! gfortran example_program_1.f90 -o example_program_1 -Wall -O2 program example_program_1 implicit none ! An integer (can be positive and negative) integer :: n ! An integer constant integer, parameter :: n_values = 10 ! A default floating point number (single precision) real :: x = 1.1 ! A double precision floating number double precision :: y = 1.1d0 ! An alternative way to define single and double precision numbers integer, parameter :: dp = kind(0.0d0) integer, parameter :: sp = kind(0.0) real(sp) :: x2 = 1.1_sp real(dp) :: y2 = 1.1_dp ! An array real(dp) :: my_array(n_values) print *, "Hello!" print *, "" print *, "Printing some numbers:" print *, x, x2 print *, y, y2 print *, "" print *, "Working with arrays:" do n = 1, n_values my_array(n) = n**2 print *, n, my_array(n) end do print *, "" print *, "Calling a subroutine that prints numbers:" call print_a_number(20) print *, "" print *, "Using a function:" y = absolute_difference(-10.0d0, 5.0d0) print *, y contains subroutine print_a_number(number) integer, intent(in) :: number print *, number end subroutine print_a_number function absolute_difference(a, b) result(abs_diff) real(dp), intent(in) :: a, b real(dp) :: abs_diff abs_diff = abs(a-b) end function absolute_difference end program example_program_1