32 lines
944 B
Fortran
32 lines
944 B
Fortran
!-*- mode: compilation; default-directory: "/tmp/" -*-
|
|
!Compilation started at Fri Jun 7 23:39:20
|
|
!
|
|
!a=./f && make $a && $a
|
|
!gfortran -std=f2008 -Wall -fopenmp -ffree-form -fall-intrinsics -fimplicit-none f.f08 -o f
|
|
! 3 4 5
|
|
! 5 12 13
|
|
! 6 8 10
|
|
! 8 15 17
|
|
! 9 12 15
|
|
! 12 16 20
|
|
!
|
|
!Compilation finished at Fri Jun 7 23:39:20
|
|
|
|
program list_comprehension
|
|
integer, parameter :: n = 20
|
|
integer, parameter :: m = n*(n+1)/2
|
|
integer :: i, j
|
|
complex, dimension(m) :: a
|
|
real, dimension(m) :: b
|
|
logical, dimension(m) :: c
|
|
integer, dimension(3, m) :: d
|
|
a = [ ( ( cmplx(i,j), i=j,n), j=1,n) ] ! list comprehension, implicit do loop
|
|
b = abs(a)
|
|
c = (b .eq. int(b)) .and. (b .le. n)
|
|
i = sum(merge(1,0,c))
|
|
d(2,:i) = int(real(pack(a, c))) ! list comprehensions: array
|
|
d(1,:i) = int(imag(pack(a, c))) ! assignments and operations.
|
|
d(3,:i) = int(pack(b,c))
|
|
print '(3i4)',d(:,:i)
|
|
end program list_comprehension
|