1! RUN: %f18 -funparse %s 2>&1 | FileCheck %s 2 3!CHECK-NOT: error: 4module mm 5 interface 6 module subroutine m(n) 7 end 8 end interface 9end module mm 10 11program p 12 use mm 1320 print*, 'p' 1421 call p1 1522 call p2 1623 f0 = f(0); print '(f5.1)', f0 1724 f1 = f(1); print '(f5.1)', f1 1825 call s(0); call s(1) 1926 call m(0); call m(1) 2027 if (.false.) goto 29 2128 print*, 'px' 22contains 23 subroutine p1 24 print*, 'p1' 25 goto 29 2629 end subroutine p1 27 subroutine p2 28 print*, 'p2' 29 goto 29 3029 end subroutine p2 3129 end 32 33function f(n) 34 print*, 'f' 3531 call f1 3632 call f2 37 f = 30. 38 if (n == 0) goto 39 39 f = f + 3. 40 print*, 'fx' 41contains 42 subroutine f1 43 print*, 'f1' 44 goto 39 4539 end subroutine f1 46 subroutine f2 47 print*, 'f2' 48 goto 39 4939 end subroutine f2 5039 end 51 52subroutine s(n) 53 print*, 's' 5441 call s1 5542 call s2 5643 call s3 57 if (n == 0) goto 49 58 print*, 'sx' 59contains 60 subroutine s1 61 print*, 's1' 62 goto 49 6349 end subroutine s1 64 subroutine s2 65 print*, 's2' 66 goto 49 6749 end subroutine s2 68 subroutine s3 69 print*, 's3' 70 goto 49 7149 end subroutine s3 7249 end 73 74submodule(mm) mm1 75contains 76 module procedure m 77 print*, 'm' 78 50 call m1 79 51 call m2 80 if (n == 0) goto 59 81 print*, 'mx' 82 contains 83 subroutine m1 84 print*, 'm1' 85 goto 59 86 59 end subroutine m1 87 subroutine m2 88 print*, 'm2' 89 goto 59 90 59 end subroutine m2 91 59 end procedure m 92end submodule mm1 93