Annotation of cci/usr/src/usr.bin/f77/f77pass1/tst/t18.f, revision 1.1

1.1     ! root        1: c      subroutine tst18
        !             2:        parameter(ntest=18)
        !             3: c      Subroutine and function as arguments
        !             4: 
        !             5:        integer incr,decr,double,eval,apply,twice
        !             6:        twice(k) = 2*k
        !             7:        inc(k) = k+1
        !             8:        i=10
        !             9:        j=20
        !            10:        if ( incr(0) .ne. 1 ) call e(1,ntest)
        !            11:        if ( decr(i) .ne. 9 ) call e(2,ntest)
        !            12:        if ( double(i+j) .ne. 60 ) call e(3,ntest)
        !            13:        if ( incr(double(j)) .ne. 41 ) call e(4,ntest)
        !            14:        if ( decr(double(incr(double(i)))) .ne. 41 ) call e(5,ntest)
        !            15:        if ( incr(incr(incr(incr(incr(5))))) .ne. 10 ) call e(6,ntest)
        !            16:        if ( eval(incr,i) .ne. 11 ) call e(7,ntest)
        !            17:        if ( eval(decr,3) .ne. 2 ) call e(8,ntest)
        !            18:        if ( incr(eval(double,15)) .ne. 31 ) call e(9,ntest)
        !            19:        if ( apply(incr,3) .ne. 4 ) call e(10,ntest)
        !            20: 
        !            21:        call x1(double,i,j)
        !            22:        if ( j .ne. 40 ) call e(11,ntest)
        !            23:        call x1(incr,i+3,j)
        !            24:        if ( j .ne. 27 ) call e(12,ntest)
        !            25:        call p1(3,5,324,13)
        !            26:        call p1(10,4,400,14)
        !            27:        call p1(1,8,1369,15)
        !            28:        j=1
        !            29:        if ( inc(incr(twice(double(inc(incr(twice(double(j)))))))) .ne. 26 ) call e(13,ntest)
        !            30:        end
        !            31: 
        !            32:        integer function incr(k)
        !            33:        incr = k+1
        !            34:        end
        !            35:        integer function decr(k)
        !            36:        decr = k-1
        !            37:        end
        !            38:        integer function double(k)
        !            39:        double = 2*k
        !            40:        end
        !            41:        integer function eval(f,a)
        !            42:        integer f,a
        !            43:        external f
        !            44:        eval=f(a)
        !            45:        end
        !            46:        integer function apply(f,a)
        !            47:        integer f,a,eval
        !            48:        external f
        !            49:        apply=eval(f,a)
        !            50:        end
        !            51: 
        !            52:        subroutine x1(f,a,r)
        !            53:        integer f,a,r
        !            54:        external f
        !            55:        call x2(f, a+a, r)
        !            56:        end
        !            57:        subroutine x2(g,b,s)
        !            58:        integer g,b,s,apply
        !            59:        external g
        !            60:        s=apply(g,b)
        !            61:        end
        !            62: 
        !            63:        subroutine p0(p,i,j)
        !            64:        external p
        !            65:        if ( j.eq.0 )then
        !            66:        call p(i)
        !            67:        else
        !            68:        call p0(p,i+j,j-1)
        !            69:        endif
        !            70:        end
        !            71: 
        !            72:        subroutine p1(a,b,c,d)
        !            73:        common /p1c/ k
        !            74:        integer a,b,c,d
        !            75:        external p2
        !            76:        k=0
        !            77:        call p0(p2,a,b)
        !            78:        if ( k .ne. c ) call e(d,18)
        !            79:        end
        !            80:        subroutine p2(x)
        !            81:        common /p1c/ k
        !            82:        integer x
        !            83:        k= x*x
        !            84:        end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.