I recently moved a code from ifc2017 to the most recent ifc2022 version.
I was able to fix some compatibility issues related to the Fortran2018 standard. However the last issue encountered seems to be out of scope. Here is a minimal example that leads to the error:
Module ModuleList implicit none type list(n) integer,len :: n integer :: items(n) end type list contains subroutine somefunction( n, myList) integer,intent(in) :: n type(list(n)) :: myList end subroutine somefunction end Module ModuleList subroutine somefunction2(n) use ModuleList implicit none integer, intent(in) :: n type(list(n)) :: myList end subroutine somefunction2 program main end program main
Is it purely a compiler related issue, or, the code is not correctly written but the error is not caught properly? Unfortunately, my knowledges in Fortran and the use of derived data type are quite limited. The code is compiling fine with ifc2017.
Your code is fine - the compiler is in error. I tried the newer ifx compiler, and it was also unhappy (not an ICE, but a complaint of unimplemented feature.) NAG Fortran compiles it without issue (other than remarking on unused variables.)