File: implied_do_loops7.f90

package info (click to toggle)
lfortran 0.60.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,416 kB
  • sloc: cpp: 173,406; f90: 80,491; python: 17,586; ansic: 9,610; yacc: 2,356; sh: 1,401; fortran: 895; makefile: 38; javascript: 15
file content (28 lines) | stat: -rw-r--r-- 1,342 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
program implied_do_loops7
    implicit none
    integer, parameter :: max_ij = 13, max_sum = 2 * max_ij ** 3
    integer :: i, j

    integer, parameter :: x1(*) = [((i**3+j**3, i = 1,j), j = 1,max_ij)]
    real, parameter :: x2(*) = [((i*3.5 + j**2.5, i = 1,j), j = 1,max_ij)]
    logical, parameter :: x3(*) = [(((i + 2) > j, i = 1,j), j = 1,max_ij)]
    logical, parameter :: x4(*) = [(((i*2.5) > (j*1.5), i = 1,j), j = 1,max_ij)] 
    !Character Implied Do Loop Test with Parameter Array
    character(len=2),parameter :: char_array(2) = (/(('AB'), i=1,2) /) 
    !Check variable length character array assignment
    character(len=10),parameter :: char_array2(2) = (/(('ABCDEFGH'), i=1,2) /)
    character(len=2),parameter :: char_array3(2) = (/(('ABCDEFGH'), i=1,2) /)
    print *, sum(x1)
    print *, sum(x2)
    print *, count(x3)
    print *, count(x4)
    print *, char_array
    print *, char_array2, char_array3
    if (sum(x1) /= 115934) error stop
    if (abs(sum(x2) - 28614.8848) > 10e-12) error stop
    if (count(x3) /= 25) error stop
    if (count(x4) /= 42) error stop
    if (char_array(1) /= 'AB' .or. char_array(2) /= 'AB') error stop
    if (char_array2(1) /= 'ABCDEFGH' .or. char_array2(2) /= 'ABCDEFGH') error stop
    if (char_array3(1) /= 'AB' .or. char_array3(2) /= 'AB') error stop
end program implied_do_loops7