(j3.2006) polymorphic assumed-size actual arguments

Robert Corbett robert.corbett
Fri Dec 17 04:45:01 EST 2010


Is the program given below standard conforming?  If not, why not?

       MODULE TYPES
         PRIVATE
         PUBLIC REC, REC2

         TYPE REC
           INTEGER A
         END TYPE

         TYPE, EXTENDS(REC) :: REC2
           INTEGER B
         END TYPE
       END

       SUBROUTINE SUB1(A, N)
         USE TYPES
         CLASS(REC), INTENT(IN) :: A(*)

         CALL SUB2(A, N)
       END

       SUBROUTINE SUB2(A, N)
         USE TYPES
         TYPE(REC) A(*)

         PRINT *, A(:N)%A
       END

       PROGRAM MAIN
         USE TYPES
         CLASS(REC), ALLOCATABLE :: A(:)
         INTERFACE
           SUBROUTINE SUB1(A, N)
             USE TYPES
             CLASS(REC), INTENT(IN) :: A(*)
           END SUBROUTINE
         END INTERFACE

         A = [ (REC2(I, I+1), I = 1, 10) ]
         CALL SUB1(A, 10)
       END



More information about the J3 mailing list