This repo is a minimal example to show nvfortran
compiler issue with when dealing with Parameterized Derived Types (pdt) when using abstract types. A minimal working example reduced from ICON codebase.
The program contains:
- Type (
t_pdt
) - parameterized derived type with a kind parameter - Type (
t_base
) - Abstract type with deferred functionfunc
, which takes parametert_pdt
withkind=real64
- Type (
t_ext
) - Non-abstract, concretized type extension oft_base
which definesfunc
Two files are given:
f1.90
: Intended code structuret_pdt
defined inmo_pdt
t_base
defined inmo_base
t_ext
defined inmo_ext
f2.90
: Incompatible code structure, used purely for debuggingt_pdt
defined inmo_pdt_base_ext
t_base
defined inmo_pdt_base_ext
t_ext
defined inmo_pdt_base_ext
Testing on Levante with compilers:
Usage:
make SRC=f1.f90
make SRC=f2.f90
Compilation (y/n):
[email protected] | [email protected] | [email protected] | [email protected] | [email protected] | |
---|---|---|---|---|---|
f1.90 | n | n | y* | y | y |
f2.90 | y | y | n | y | y |