program end subroutine function module use implicit none integer real complex double precision logical character dimension allocate deallocate if then else endif do while enddo call return stop pause read write print format open close inquire data common equivalence save continue exit cycle select case default type contains public private block interface procedure extends intent optional pointer target nullify associate forall where elsewhere intrinsic external abstract sequence recursive pure elemental result entry bind import value volatile asynchronous lock unlock sync memory atomic critical submodule generic class rank endfile backspace rewind advance iostat err iomsg allocatable final pass nopass non_overridable deferred protected contiguous concurrent error action position file access status form blank delim pad rec iolength namelist flush asis newunit decimal round sign random_number random_seed cpu_time system_clock date_and_time len_trim operator assignment len size kind sum product matmul transpose reshape spread maxval minval any all count maxloc minloc pack unpack merge epsilon tiny huge bit_size selected_int_kind selected_real_kind storage_size log sin cos tan atan sqrt exp abs acos asin atan2 ceiling floor mod modulo nint aimag conjg cmplx dble int float isnan ior iand ieor shiftl shiftr ibits btest lbound ubound shape cshift eoshift dot_product allocated present merge_bits bit_and associated adjustl adjustr trim