You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've been going through UKCA and editing it so that PSyclone can parse it. For example, removing labelled loops. The one remaining thing that I'm unable to address is a case where there's an array of derived types. Parsing it gives:
TypeError: A StructureReference must refer to a symbol that is (or could be) a structure, however symbol 'chch_defs_master' has type 'Array<chch_t1: DataTypeSymbol, shape=[Reference[name:'n_chch_master']]>'
The text was updated successfully, but these errors were encountered:
jwallwork23
added
the
NG-ARCH
Issues relevant to the GPU parallelisation of LFRic and other models expected to be used in NG-ARCH
label
Nov 12, 2024
Thanks @jwallwork23. Do we really not support labelled loops (or is it that they use the label for loop control, e.g. EXIT)? Also, just to check, is this with HEAD of master? If so, please could you provide some example Fortran, thanks :-)
program test
implicit none
integer :: i
integer :: a(2)
my_loop: do i = 1, 2
a(i) = i
if (i > 1) then
exit my_loop
end if
end do my_loop
end program test
with no optimisation script (and HEAD of master) I get
program test
integer :: i
integer, dimension(2) :: a
! PSyclone CodeBlock (unsupported code) reason:
! - Unsupported label reference within DO
my_loop:DO i = 1, 2
a(i) = i
IF (i > 1) THEN
EXIT my_loop
END IF
END DO my_loop
end program test
Without the exit my_loop it doesn't use a CodeBlock so I guess that's the part it doesn't like.
For the derived type part, I'll figure out a minimal failing example and get back to you.
I've been going through UKCA and editing it so that PSyclone can parse it. For example, removing labelled loops. The one remaining thing that I'm unable to address is a case where there's an array of derived types. Parsing it gives:
The text was updated successfully, but these errors were encountered: