1! { dg-do compile } 2! Length of character dummy variable with VALUE attribute: 3! - must be initialization expression or omitted 4! - C interoperable: must be initialization expression of length one 5! or omitted 6! 7! Contributed by Tobias Burnus 8program x 9 implicit none 10 character(10) :: c1,c10 11 c1 = 'H' 12 c10 = 'Main' 13 call foo1(c1) 14 call foo2(c1) 15 call foo3(c10) 16 call foo4(c10) 17 call bar1(c1) 18 call bar2(c1) 19 call bar3(c10) 20 call bar4(c10) 21 22contains 23 24 subroutine foo1(a) 25 character :: a 26 value :: a 27 end subroutine foo1 28 29 subroutine foo2(a) 30 character(1) :: a 31 value :: a 32 end subroutine foo2 33 34 subroutine foo3(a) 35 character(10) :: a 36 value :: a 37 end subroutine foo3 38 39 subroutine foo4(a) ! { dg-error "VALUE attribute must have constant length" } 40 character(*) :: a 41 value :: a 42 end subroutine foo4 43 44 subroutine bar1(a) 45 use iso_c_binding, only: c_char 46 character(kind=c_char) :: a 47 value :: a 48 end subroutine bar1 49 50 subroutine bar2(a) 51 use iso_c_binding, only: c_char 52 !character(kind=c_char,len=1) :: a 53 character(1,kind=c_char) :: a 54 value :: a 55 end subroutine bar2 56 57 subroutine bar3(a) ! { dg-error "VALUE attribute must have length one" } 58 use iso_c_binding, only: c_char 59 character(kind=c_char,len=10) :: a 60 value :: a 61 end subroutine bar3 62 63 subroutine bar4(a) ! { dg-error "VALUE attribute must have constant length" } 64 use iso_c_binding, only: c_char 65 character(kind=c_char,len=*) :: a 66 value :: a 67 end subroutine bar4 68end program x 69