| ! { dg-do run } |
| ! |
| ! |
| program test |
| implicit none |
| call char_test() |
| contains |
| subroutine char_test() |
| character(len=3, kind=1), save :: str1a[*], str1b(5)[*] |
| character(len=7, kind=1), save :: str2a[*], str2b(5)[*] |
| character(len=3, kind=4), save :: ustr1a[*], ustr1b(5)[*] |
| character(len=7, kind=4), save :: ustr2a[*], ustr2b(5)[*] |
| |
| ! ---------- Assign to coindexed variable ------------- |
| |
| ! - - - - - scalar = scalar |
| |
| ! SCALAR - kind 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| str2a = 1_"XXXXXXX" |
| if (this_image() == num_images()) then |
| str2a[1] = str1a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2a /= 1_"abc ") STOP 1 |
| else |
| if (str2a /= 1_"XXXXXXX") STOP 2 |
| end if |
| |
| ! SCALAR - kind 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| ustr2a = 4_"XXXXXXX" |
| if (this_image() == num_images()) then |
| ustr2a[1] = ustr1a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2a /= 4_"abc ") STOP 3 |
| else |
| if (ustr2a /= 4_"XXXXXXX") STOP 4 |
| end if |
| |
| ! SCALAR - kind 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcde" |
| str1a = 1_"XXX" |
| if (this_image() == num_images()) then |
| str1a[1] = str2a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1a /= 1_"abc") STOP 5 |
| else |
| if (str1a /= 1_"XXX") STOP 6 |
| end if |
| |
| ! SCALAR - kind 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcde" |
| ustr1a = 4_"XXX" |
| if (this_image() == num_images()) then |
| ustr1a[1] = ustr2a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1a /= 4_"abc") STOP 7 |
| else |
| if (ustr1a /= 4_"XXX") STOP 8 |
| end if |
| |
| ! - - - - - array = array |
| |
| ! contiguous ARRAY - kind 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1b(1) = 1_"abc" |
| str1b(2) = 1_"def" |
| str1b(3) = 1_"gjh" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b(:)[1] = str1b |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"def " & |
| .or. str2b(3) /= 1_"gjh ") STOP 9 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 10 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1b(1) = 4_"abc" |
| ustr1b(2) = 4_"def" |
| ustr1b(3) = 4_"gjh" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b(:)[1] = ustr1b |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"def " & |
| .or. ustr2b(3) /= 4_"gjh ") STOP 11 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 12 |
| end if |
| |
| ! contiguous ARRAY - kind 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2b(1) = 1_"abcdefg" |
| str2b(2) = 1_"hijklmn" |
| str2b(3) = 1_"opqrstu" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b(:)[1] = str2b |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"hij" & |
| .or. str1b(3) /= 1_"opq") STOP 13 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 14 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2b(1) = 4_"abcdefg" |
| ustr2b(2) = 4_"hijklmn" |
| ustr2b(3) = 4_"opqrstu" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b(:)[1] = ustr2b |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"hij" & |
| .or. ustr1b(3) /= 4_"opq") STOP 15 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 16 |
| end if |
| |
| ! - - - - - array = scalar |
| |
| ! contiguous ARRAY - kind 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b(:)[1] = str1a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"abc " & |
| .or. str2b(3) /= 1_"abc ") STOP 17 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 18 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b(:)[1] = ustr1a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"abc " & |
| .or. ustr2b(3) /= 4_"abc ") STOP 19 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 20 |
| end if |
| |
| ! contiguous ARRAY - kind 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcdefg" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b(:)[1] = str2a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"abc" & |
| .or. str1b(3) /= 1_"abc") STOP 21 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 22 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcdefg" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b(:)[1] = ustr2a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"abc" & |
| .or. ustr1b(3) /= 4_"abc") STOP 23 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 24 |
| end if |
| |
| ! ---------- Take from a coindexed variable ------------- |
| |
| ! - - - - - scalar = scalar |
| |
| ! SCALAR - kind 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| str2a = 1_"XXXXXXX" |
| if (this_image() == num_images()) then |
| str2a = str1a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str2a /= 1_"abc ") STOP 25 |
| else |
| if (str2a /= 1_"XXXXXXX") STOP 26 |
| end if |
| |
| ! SCALAR - kind 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| ustr2a = 4_"XXXXXXX" |
| if (this_image() == num_images()) then |
| ustr2a = ustr1a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr2a /= 4_"abc ") STOP 27 |
| else |
| if (ustr2a /= 4_"XXXXXXX") STOP 28 |
| end if |
| |
| ! SCALAR - kind 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcde" |
| str1a = 1_"XXX" |
| if (this_image() == num_images()) then |
| str1a = str2a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str1a /= 1_"abc") STOP 29 |
| else |
| if (str1a /= 1_"XXX") STOP 30 |
| end if |
| |
| ! SCALAR - kind 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcde" |
| ustr1a = 4_"XXX" |
| if (this_image() == num_images()) then |
| ustr1a = ustr2a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr1a /= 4_"abc") STOP 31 |
| else |
| if (ustr1a /= 4_"XXX") STOP 32 |
| end if |
| |
| ! - - - - - array = array |
| |
| ! contiguous ARRAY - kind 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1b(1) = 1_"abc" |
| str1b(2) = 1_"def" |
| str1b(3) = 1_"gjh" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b = str1b(:)[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"def " & |
| .or. str2b(3) /= 1_"gjh ") STOP 33 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 34 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1b(1) = 4_"abc" |
| ustr1b(2) = 4_"def" |
| ustr1b(3) = 4_"gjh" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b = ustr1b(:)[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"def " & |
| .or. ustr2b(3) /= 4_"gjh ") STOP 35 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 36 |
| end if |
| |
| ! contiguous ARRAY - kind 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2b(1) = 1_"abcdefg" |
| str2b(2) = 1_"hijklmn" |
| str2b(3) = 1_"opqrstu" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b = str2b(:)[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"hij" & |
| .or. str1b(3) /= 1_"opq") STOP 37 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 38 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2b(1) = 4_"abcdefg" |
| ustr2b(2) = 4_"hijklmn" |
| ustr2b(3) = 4_"opqrstu" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b = ustr2b(:)[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"hij" & |
| .or. ustr1b(3) /= 4_"opq") STOP 39 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 40 |
| end if |
| |
| ! - - - - - array = scalar |
| |
| ! contiguous ARRAY - kind 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b = str1a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"abc " & |
| .or. str2b(3) /= 1_"abc ") STOP 41 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 42 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b = ustr1a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"abc " & |
| .or. ustr2b(3) /= 4_"abc ") STOP 43 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 44 |
| end if |
| |
| ! contiguous ARRAY - kind 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcdefg" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b = str2a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"abc" & |
| .or. str1b(3) /= 1_"abc") STOP 45 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 46 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcdefg" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b = ustr2a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"abc" & |
| .or. ustr1b(3) /= 4_"abc") STOP 47 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 48 |
| end if |
| |
| |
| ! ---------- coindexed to coindexed variable ------------- |
| |
| ! - - - - - scalar = scalar |
| |
| ! SCALAR - kind 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| str2a = 1_"XXXXXXX" |
| if (this_image() == num_images()) then |
| str2a[1] = str1a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2a /= 1_"abc ") STOP 49 |
| else |
| if (str2a /= 1_"XXXXXXX") STOP 50 |
| end if |
| |
| ! SCALAR - kind 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| ustr2a = 4_"XXXXXXX" |
| if (this_image() == num_images()) then |
| ustr2a[1] = ustr1a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2a /= 4_"abc ") STOP 51 |
| else |
| if (ustr2a /= 4_"XXXXXXX") STOP 52 |
| end if |
| |
| ! SCALAR - kind 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcde" |
| str1a = 1_"XXX" |
| if (this_image() == num_images()) then |
| str1a[1] = str2a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1a /= 1_"abc") STOP 53 |
| else |
| if (str1a /= 1_"XXX") STOP 54 |
| end if |
| |
| ! SCALAR - kind 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcde" |
| ustr1a = 4_"XXX" |
| if (this_image() == num_images()) then |
| ustr1a[1] = ustr2a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1a /= 4_"abc") STOP 55 |
| else |
| if (ustr1a /= 4_"XXX") STOP 56 |
| end if |
| |
| ! - - - - - array = array |
| |
| ! contiguous ARRAY - kind 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1b(1) = 1_"abc" |
| str1b(2) = 1_"def" |
| str1b(3) = 1_"gjh" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b(:)[1] = str1b(:)[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"def " & |
| .or. str2b(3) /= 1_"gjh ") STOP 57 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 58 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1b(1) = 4_"abc" |
| ustr1b(2) = 4_"def" |
| ustr1b(3) = 4_"gjh" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b(:)[1] = ustr1b(:)[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"def " & |
| .or. ustr2b(3) /= 4_"gjh ") STOP 59 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 60 |
| end if |
| |
| ! contiguous ARRAY - kind 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2b(1) = 1_"abcdefg" |
| str2b(2) = 1_"hijklmn" |
| str2b(3) = 1_"opqrstu" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b(:)[1] = str2b(:)[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"hij" & |
| .or. str1b(3) /= 1_"opq") STOP 61 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 62 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2b(1) = 4_"abcdefg" |
| ustr2b(2) = 4_"hijklmn" |
| ustr2b(3) = 4_"opqrstu" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b(:)[1] = ustr2b(:)[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"hij" & |
| .or. ustr1b(3) /= 4_"opq") STOP 63 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 64 |
| end if |
| |
| ! - - - - - array = scalar |
| |
| ! contiguous ARRAY - kind 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b(:)[1] = str1a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"abc " & |
| .or. str2b(3) /= 1_"abc ") STOP 65 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 66 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b(:)[1] = ustr1a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"abc " & |
| .or. ustr2b(3) /= 4_"abc ") STOP 67 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 68 |
| end if |
| |
| ! contiguous ARRAY - kind 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcdefg" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b(:)[1] = str2a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"abc" & |
| .or. str1b(3) /= 1_"abc") STOP 69 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 70 |
| end if |
| |
| ! contiguous ARRAY - kind 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcdefg" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b(:)[1] = ustr2a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"abc" & |
| .or. ustr1b(3) /= 4_"abc") STOP 71 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 72 |
| end if |
| |
| ! ============== char1 <-> char4 ===================== |
| |
| ! ---------- Assign to coindexed variable ------------- |
| |
| ! - - - - - scalar = scalar |
| |
| ! SCALAR - kind 1 <- 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| str1a = 1_"XXXXXXX" |
| if (this_image() == num_images()) then |
| str2a[1] = ustr1a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2a /= 1_"abc ") STOP 73 |
| else |
| if (str2a /= 1_"XXXXXXX") STOP 74 |
| end if |
| |
| ! SCALAR - kind 4 <- 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 4_"abc" |
| ustr2a = 1_"XXXXXXX" |
| if (this_image() == num_images()) then |
| ustr2a[1] = str1a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2a /= 4_"abc ") STOP 75 |
| else |
| if (ustr2a /= 4_"XXXXXXX") STOP 76 |
| end if |
| |
| ! SCALAR - kind 1 <- 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcde" |
| str1a = 1_"XXX" |
| if (this_image() == num_images()) then |
| str1a[1] = ustr2a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1a /= 1_"abc") STOP 77 |
| else |
| if (str1a /= 1_"XXX") STOP 78 |
| end if |
| |
| ! SCALAR - kind 4 <- 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 4_"abcde" |
| ustr1a = 1_"XXX" |
| if (this_image() == num_images()) then |
| ustr1a[1] = str2a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1a /= 4_"abc") STOP 79 |
| else |
| if (ustr1a /= 4_"XXX") STOP 80 |
| end if |
| |
| ! - - - - - array = array |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1b(1) = 4_"abc" |
| ustr1b(2) = 4_"def" |
| ustr1b(3) = 4_"gjh" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b(:)[1] = ustr1b |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"def " & |
| .or. str2b(3) /= 1_"gjh ") STOP 81 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 82 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1b(1) = 1_"abc" |
| str1b(2) = 1_"def" |
| str1b(3) = 1_"gjh" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b(:)[1] = str1b |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"def " & |
| .or. ustr2b(3) /= 4_"gjh ") STOP 83 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 84 |
| end if |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2b(1) = 4_"abcdefg" |
| ustr2b(2) = 4_"hijklmn" |
| ustr2b(3) = 4_"opqrstu" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b(:)[1] = ustr2b |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"hij" & |
| .or. str1b(3) /= 1_"opq") STOP 85 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 86 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2b(1) = 1_"abcdefg" |
| str2b(2) = 1_"hijklmn" |
| str2b(3) = 1_"opqrstu" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b(:)[1] = str2b |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"hij" & |
| .or. ustr1b(3) /= 4_"opq") STOP 87 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 88 |
| end if |
| |
| ! - - - - - array = scalar |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b(:)[1] = ustr1a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"abc " & |
| .or. str2b(3) /= 1_"abc ") STOP 89 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 90 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b(:)[1] = str1a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"abc " & |
| .or. ustr2b(3) /= 4_"abc ") STOP 91 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 92 |
| end if |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcdefg" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b(:)[1] = ustr2a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"abc" & |
| .or. str1b(3) /= 1_"abc") STOP 93 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 94 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcdefg" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b(:)[1] = str2a |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"abc" & |
| .or. ustr1b(3) /= 4_"abc") STOP 95 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 96 |
| end if |
| |
| ! ---------- Take from a coindexed variable ------------- |
| |
| ! - - - - - scalar = scalar |
| |
| ! SCALAR - kind 1 <- 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| str2a = 1_"XXXXXXX" |
| if (this_image() == num_images()) then |
| str2a = ustr1a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str2a /= 1_"abc ") STOP 97 |
| else |
| if (str2a /= 1_"XXXXXXX") STOP 98 |
| end if |
| |
| ! SCALAR - kind 4 <- 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| ustr2a = 4_"XXXXXXX" |
| if (this_image() == num_images()) then |
| ustr2a = str1a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr2a /= 4_"abc ") STOP 99 |
| else |
| if (ustr2a /= 4_"XXXXXXX") STOP 100 |
| end if |
| |
| ! SCALAR - kind 1 <- 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcde" |
| str1a = 1_"XXX" |
| if (this_image() == num_images()) then |
| str1a = ustr2a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str1a /= 1_"abc") STOP 101 |
| else |
| if (str1a /= 1_"XXX") STOP 102 |
| end if |
| |
| ! SCALAR - kind 4 <- 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcde" |
| ustr1a = 4_"XXX" |
| if (this_image() == num_images()) then |
| ustr1a = str2a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr1a /= 4_"abc") STOP 103 |
| else |
| if (ustr1a /= 4_"XXX") STOP 104 |
| end if |
| |
| ! - - - - - array = array |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1b(1) = 4_"abc" |
| ustr1b(2) = 4_"def" |
| ustr1b(3) = 4_"gjh" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b = ustr1b(:)[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"def " & |
| .or. str2b(3) /= 1_"gjh ") STOP 105 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 106 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1b(1) = 1_"abc" |
| str1b(2) = 1_"def" |
| str1b(3) = 1_"gjh" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b = str1b(:)[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"def " & |
| .or. ustr2b(3) /= 4_"gjh ") STOP 107 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 108 |
| end if |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2b(1) = 4_"abcdefg" |
| ustr2b(2) = 4_"hijklmn" |
| ustr2b(3) = 4_"opqrstu" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b = ustr2b(:)[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"hij" & |
| .or. str1b(3) /= 1_"opq") STOP 109 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 110 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2b(1) = 1_"abcdefg" |
| str2b(2) = 1_"hijklmn" |
| str2b(3) = 1_"opqrstu" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b = str2b(:)[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"hij" & |
| .or. ustr1b(3) /= 4_"opq") STOP 111 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 112 |
| end if |
| |
| ! - - - - - array = scalar |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b = ustr1a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"abc " & |
| .or. str2b(3) /= 1_"abc ") STOP 113 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 114 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b = str1a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"abc " & |
| .or. ustr2b(3) /= 4_"abc ") STOP 115 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 116 |
| end if |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcdefg" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b = ustr2a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"abc" & |
| .or. str1b(3) /= 1_"abc") STOP 117 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 118 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcdefg" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b = str2a[1] |
| end if |
| sync all |
| if (this_image() == num_images()) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"abc" & |
| .or. ustr1b(3) /= 4_"abc") STOP 119 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 120 |
| end if |
| |
| |
| ! ---------- coindexed to coindexed variable ------------- |
| |
| ! - - - - - scalar = scalar |
| |
| ! SCALAR - kind 1 <- 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| str2a = 1_"XXXXXXX" |
| if (this_image() == num_images()) then |
| str2a[1] = ustr1a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2a /= 1_"abc ") STOP 121 |
| else |
| if (str2a /= 1_"XXXXXXX") STOP 122 |
| end if |
| |
| ! SCALAR - kind 4 <- 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| ustr2a = 4_"XXXXXXX" |
| if (this_image() == num_images()) then |
| ustr2a[1] = str1a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2a /= 4_"abc ") STOP 123 |
| else |
| if (ustr2a /= 4_"XXXXXXX") STOP 124 |
| end if |
| |
| ! SCALAR - kind 1 <- 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcde" |
| str1a = 1_"XXX" |
| if (this_image() == num_images()) then |
| str1a[1] = ustr2a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1a /= 1_"abc") STOP 125 |
| else |
| if (str1a /= 1_"XXX") STOP 126 |
| end if |
| |
| ! SCALAR - kind 4 <- 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcde" |
| ustr1a = 4_"XXX" |
| if (this_image() == num_images()) then |
| ustr1a[1] = str2a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1a /= 4_"abc") STOP 127 |
| else |
| if (ustr1a /= 4_"XXX") STOP 128 |
| end if |
| |
| ! - - - - - array = array |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1b(1) = 4_"abc" |
| ustr1b(2) = 4_"def" |
| ustr1b(3) = 4_"gjh" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b(:)[1] = ustr1b(:)[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"def " & |
| .or. str2b(3) /= 1_"gjh ") STOP 129 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 130 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1b(1) = 1_"abc" |
| str1b(2) = 1_"def" |
| str1b(3) = 1_"gjh" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b(:)[1] = str1b(:)[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"def " & |
| .or. ustr2b(3) /= 4_"gjh ") STOP 131 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 132 |
| end if |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2b(1) = 4_"abcdefg" |
| ustr2b(2) = 4_"hijklmn" |
| ustr2b(3) = 4_"opqrstu" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b(:)[1] = ustr2b(:)[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"hij" & |
| .or. str1b(3) /= 1_"opq") STOP 133 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 134 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2b(1) = 1_"abcdefg" |
| str2b(2) = 1_"hijklmn" |
| str2b(3) = 1_"opqrstu" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b(:)[1] = str2b(:)[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"hij" & |
| .or. ustr1b(3) /= 4_"opq") STOP 135 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 136 |
| end if |
| |
| ! - - - - - array = scalar |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr1a = 4_"abc" |
| str2b(1) = 1_"XXXXXXX" |
| str2b(2) = 1_"YYYYYYY" |
| str2b(3) = 1_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| str2b(:)[1] = ustr1a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str2b(1) /= 1_"abc " .or. str2b(2) /= 1_"abc " & |
| .or. str2b(3) /= 1_"abc ") STOP 137 |
| else |
| if (str2b(1) /= 1_"XXXXXXX" .or. str2b(2) /= 1_"YYYYYYY" & |
| .or. str2b(3) /= 1_"ZZZZZZZ") STOP 138 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with padding |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str1a = 1_"abc" |
| ustr2b(1) = 4_"XXXXXXX" |
| ustr2b(2) = 4_"YYYYYYY" |
| ustr2b(3) = 4_"ZZZZZZZ" |
| if (this_image() == num_images()) then |
| ustr2b(:)[1] = str1a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr2b(1) /= 4_"abc " .or. ustr2b(2) /= 4_"abc " & |
| .or. ustr2b(3) /= 4_"abc ") STOP 139 |
| else |
| if (ustr2b(1) /= 4_"XXXXXXX" .or. ustr2b(2) /= 4_"YYYYYYY" & |
| .or. ustr2b(3) /= 4_"ZZZZZZZ") STOP 140 |
| end if |
| |
| ! contiguous ARRAY - kind 1 <- 4 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| ustr2a = 4_"abcdefg" |
| str1b(1) = 1_"XXX" |
| str1b(2) = 1_"YYY" |
| str1b(3) = 1_"ZZZ" |
| if (this_image() == num_images()) then |
| str1b(:)[1] = ustr2a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (str1b(1) /= 1_"abc" .or. str1b(2) /= 1_"abc" & |
| .or. str1b(3) /= 1_"abc") STOP 141 |
| else |
| if (str1b(1) /= 1_"XXX" .or. str1b(2) /= 1_"YYY" & |
| .or. str1b(3) /= 1_"ZZZ") STOP 142 |
| end if |
| |
| ! contiguous ARRAY - kind 4 <- 1 - with trimming |
| str1a = 1_"zzz"; str1b = 1_"zzz"; ustr1a = 4_"zzz"; ustr1b = 4_"zzz" |
| str2a = 1_"zzzzzzzz"; str2b = 1_"zzzzzzzz" |
| ustr2a = 4_"zzzzzzzz"; ustr2b = 4_"zzzzzzzz" |
| str2a = 1_"abcdefg" |
| ustr1b(1) = 4_"XXX" |
| ustr1b(2) = 4_"YYY" |
| ustr1b(3) = 4_"ZZZ" |
| if (this_image() == num_images()) then |
| ustr1b(:)[1] = str2a[mod(1, num_images())+1] |
| end if |
| sync all |
| if (this_image() == 1) then |
| if (ustr1b(1) /= 4_"abc" .or. ustr1b(2) /= 4_"abc" & |
| .or. ustr1b(3) /= 4_"abc") STOP 143 |
| else |
| if (ustr1b(1) /= 4_"XXX" .or. ustr1b(2) /= 4_"YYY" & |
| .or. ustr1b(3) /= 4_"ZZZ") STOP 144 |
| end if |
| |
| end subroutine char_test |
| end program test |