Well, thinking about it, it smells like a side-effect of the 116669 fix. A type getting the recursive marker enforces the generation of the vtype for it. I don't see yet, why the iso_c_binding_C_funptr should be marked as recursive. I will investigate. How much time do I have?
- Andre On Wed, 8 Jan 2025 11:42:28 +0100 Jakub Jelinek <ja...@redhat.com> wrote: > On Wed, Jan 08, 2025 at 11:34:35AM +0100, Andre Vehreschild wrote: > > marking the vtypes as recursive is odd, but should not be taken as any > > incompatibility marker. Pre version 15 gfortran does not check the recursive > > attr on types. So whether it is set or not, is of no concern to gfortran <= > > 14. The pr that motivated the change > > is: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116669 > > Thanks. > > > The flag is used now to indicate, that a type can (indirectly) reference > > itself. Not having the marker lead to endless recursion during construction > > of copy or deallocate operations on an object of the type. > > > > About the other changes I can say nothing. > > The full list of changes with the posted patches is > (first a.mod, then b.mod, 14 -> 15) below. > I have no idea what adds those __copy_* elts etc. and whether they could be > forced to be in the middle rather than at the end and what is an ABI break > and what is not. > > --- /tmp/1 2025-01-08 10:29:17.620943636 +0100 > +++ /tmp/3 2025-01-08 10:24:17.139146386 +0100 > @@ -1,4 +1,4 @@ > -GFORTRAN module version '15' created from a.f90 > +GFORTRAN module version '16' created from a.f90 > (() () () () () () () () () () () () () () () () () () () () () () () () > () () ()) > > @@ -38,10 +38,10 @@ DERIVED ()) 0 0 () () 0 () () () 0 0) > UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0 TARGET VTAB) () (DERIVED 12 0 0 0 > DERIVED ()) 0 0 () () 0 () () () 0 0) > 10 '__vtype___iso_c_binding_C_funptr' 'a' '' 1 ((DERIVED UNKNOWN-INTENT > -UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 VTYPE) ((13 '_hash' (INTEGER 4 0 0 0 > -INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN > -UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ())) ( > -14 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 RECURSIVE VTYPE) ((13 '_hash' (INTEGER > +4 0 0 0 INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC > +UNKNOWN UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' > +())) (14 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) PRIVATE) (15 '_extends' > (DERIVED 10 0 0 0 DERIVED ()) () () () (UNKNOWN-FL UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 POINTER) PRIVATE) (16 '_def_init' ( > @@ -59,10 +59,10 @@ UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 SUBROUT > UNKNOWN-ACCESS OVERRIDABLE PASS SPECIFIC PPC '' 0))) UNKNOWN-ACCESS ( > UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0 0) > 12 '__vtype___iso_c_binding_C_ptr' 'a' '' 1 ((DERIVED UNKNOWN-INTENT > -UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 VTYPE) ((21 '_hash' (INTEGER 4 0 0 0 > -INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN > -UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ())) ( > -22 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 RECURSIVE VTYPE) ((21 '_hash' (INTEGER > +4 0 0 0 INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC > +UNKNOWN UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' > +())) (22 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) PRIVATE) (23 '_extends' > (DERIVED 12 0 0 0 DERIVED ()) () () () (UNKNOWN-FL UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 POINTER) PRIVATE) (24 '_def_init' ( > @@ -295,13 +295,16 @@ UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 IS_C_IN > 0 1 1 CHARACTER ((CONSTANT (INTEGER 8 0 0 0 INTEGER ()) 0 '1' ()))) 0 0 > () (CONSTANT (CHARACTER 1 0 1 1 UNKNOWN (())) 0 1 '\U0000000b' ()) () 0 > () () () 2 41) > -18 '__copy___iso_c_binding_C_funptr' 'a' '' 94 ((PROCEDURE > +94 'f_c_string' '__iso_c_binding' '' 1 ((PROCEDURE UNKNOWN-INTENT > +UNKNOWN-PROC DECL UNKNOWN 0 0 INTRINSIC FUNCTION PURE) () (CHARACTER 1 0 > +0 0 CHARACTER ()) 95 0 (96 97) () 0 () () () 2 52) > +18 '__copy___iso_c_binding_C_funptr' 'a' '' 98 ((PROCEDURE > UNKNOWN-INTENT UNKNOWN-PROC DECL UNKNOWN 0 0 ARTIFICIAL SUBROUTINE > -ELEMENTAL PURE ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (95 > -96) () 0 () () () 0 0) > -26 '__copy___iso_c_binding_C_ptr' 'a' '' 97 ((PROCEDURE UNKNOWN-INTENT > +ELEMENTAL PURE ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (99 > +100) () 0 () () () 0 0) > +26 '__copy___iso_c_binding_C_ptr' 'a' '' 101 ((PROCEDURE UNKNOWN-INTENT > UNKNOWN-PROC DECL UNKNOWN 0 0 ARTIFICIAL SUBROUTINE ELEMENTAL PURE > -ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (98 99) () 0 () () > +ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (102 103) () 0 () () > () 0 0) > 33 'c_ptr_1' '' '' 32 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > DUMMY) () (VOID 0 0 0 0 VOID ()) 0 0 () () 0 () () () 0 0) > @@ -319,16 +322,21 @@ OPTIONAL DUMMY) () (INTEGER 4 0 0 0 INTE > () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) > 92 'x' '' '' 91 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) () > (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0) > -95 'src' '' '' 94 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +96 'string' '' '' 95 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +DUMMY) () (CHARACTER 1 0 0 0 CHARACTER (())) 0 0 () () 0 () () () 0 0) > +97 'asis' '' '' 95 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +OPTIONAL DUMMY) () (CHARACTER 1 0 0 0 CHARACTER (())) 0 0 () () 0 () () > +() 0 0) > +99 'src' '' '' 98 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 2 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > -96 'dst' '' '' 94 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +100 'dst' '' '' 98 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 2 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > -98 'src' '' '' 97 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +102 'src' '' '' 101 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 3 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > -99 'dst' '' '' 97 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +103 'dst' '' '' 101 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 3 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > ) > @@ -351,4 +359,4 @@ ARTIFICIAL DUMMY) () (DERIVED 3 0 0 0 DE > 'c_long_double' 0 78 'c_long_double_complex' 0 79 'c_long_long' 0 80 > 'c_new_line' 0 81 'c_null_char' 0 82 'c_null_funptr' 0 83 'c_null_ptr' 0 > 84 'c_ptr' 0 85 'c_ptrdiff_t' 0 86 'c_short' 0 87 'c_signed_char' 0 88 > -'c_size_t' 0 89 'c_sizeof' 0 90 'c_vertical_tab' 0 93) > +'c_size_t' 0 89 'c_sizeof' 0 90 'c_vertical_tab' 0 93 'f_c_string' 0 94) > --- /tmp/2 2025-01-08 10:23:51.237508661 +0100 > +++ /tmp/4 2025-01-08 10:24:14.930177279 +0100 > @@ -1,4 +1,4 @@ > -GFORTRAN module version '15' created from a.f90 > +GFORTRAN module version '16' created from a.f90 > (() () () () () () () () () () () () () () () () () () () () () () () () > () () ()) > > @@ -41,10 +41,10 @@ DERIVED ()) 0 0 () () 0 () () () 0 0) > UNKNOWN-PROC UNKNOWN IMPLICIT-SAVE 0 0 TARGET VTAB) () (DERIVED 13 0 0 0 > DERIVED ()) 0 0 () () 0 () () () 0 0) > 9 '__vtype_iso_fortran_env_Event_type' 'b' '' 1 ((DERIVED UNKNOWN-INTENT > -UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 VTYPE) ((14 '_hash' (INTEGER 4 0 0 0 > -INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN > -UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ())) ( > -15 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 RECURSIVE VTYPE) ((14 '_hash' (INTEGER > +4 0 0 0 INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC > +UNKNOWN UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' > +())) (15 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) PRIVATE) (16 '_extends' > (DERIVED 9 0 0 0 DERIVED ()) () () () (UNKNOWN-FL UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 POINTER) PRIVATE) (17 '_def_init' ( > @@ -62,10 +62,10 @@ UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 SUBROUT > UNKNOWN-ACCESS OVERRIDABLE PASS SPECIFIC PPC '' 0))) UNKNOWN-ACCESS ( > UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0 0) > 11 '__vtype_iso_fortran_env_Lock_type' 'b' '' 1 ((DERIVED UNKNOWN-INTENT > -UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 VTYPE) ((22 '_hash' (INTEGER 4 0 0 0 > -INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN > -UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ())) ( > -23 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 RECURSIVE VTYPE) ((22 '_hash' (INTEGER > +4 0 0 0 INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC > +UNKNOWN UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' > +())) (23 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) PRIVATE) (24 '_extends' > (DERIVED 11 0 0 0 DERIVED ()) () () () (UNKNOWN-FL UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 POINTER) PRIVATE) (25 '_def_init' ( > @@ -83,10 +83,10 @@ UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 SUBROUT > UNKNOWN-ACCESS OVERRIDABLE PASS SPECIFIC PPC '' 0))) UNKNOWN-ACCESS ( > UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0 0) > 13 '__vtype_iso_fortran_env_Team_type' 'b' '' 1 ((DERIVED UNKNOWN-INTENT > -UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 VTYPE) ((30 '_hash' (INTEGER 4 0 0 0 > -INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN > -UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ())) ( > -31 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 RECURSIVE VTYPE) ((30 '_hash' (INTEGER > +4 0 0 0 INTEGER ()) () () () (UNKNOWN-FL UNKNOWN-INTENT UNKNOWN-PROC > +UNKNOWN UNKNOWN 0 0) PRIVATE (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' > +())) (31 '_size' (INTEGER 8 0 0 0 INTEGER ()) () () () (UNKNOWN-FL > UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) PRIVATE) (32 '_extends' > (DERIVED 13 0 0 0 DERIVED ()) () () () (UNKNOWN-FL UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 POINTER) PRIVATE) (33 '_def_init' ( > @@ -178,7 +178,19 @@ UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 INTRINS > 58 'lock_type' 'iso_fortran_env' '' 1 ((PROCEDURE UNKNOWN-INTENT > UNKNOWN-PROC DECL UNKNOWN 0 0 FUNCTION GENERIC) () (INTEGER 4 0 0 0 > INTEGER ()) 0 0 () () 0 () () () 1 29) > -59 'logical_kinds' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +59 'logical16' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ()) () 0 () () () 1 33) > +60 'logical32' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ()) () 0 () () () 1 34) > +61 'logical64' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ()) () 0 () () () 1 35) > +62 'logical8' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ()) () 0 () () () 1 32) > +63 'logical_kinds' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DIMENSION) () (INTEGER 4 0 0 0 INTEGER > ()) 0 0 () (ARRAY (INTEGER 4 0 0 0 INTEGER ()) 1 (((CONSTANT (INTEGER 4 > 0 0 0 INTEGER ()) 0 '1' ()) ()) ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) > @@ -187,23 +199,26 @@ CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 > 4 0 0 0 INTEGER ()) 0 '16' ()) ())) ('5') ()) (1 0 EXPLICIT (CONSTANT ( > INTEGER 4 0 0 0 INTEGER ()) 0 '1' ()) (CONSTANT (INTEGER 4 0 0 0 INTEGER > ()) 0 '5' ())) 0 () () () 1 25) > -60 'numeric_storage_size' 'iso_fortran_env' '' 1 ((PARAMETER > +64 'numeric_storage_size' 'iso_fortran_env' '' 1 ((PARAMETER > UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 > INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '32' ()) () > 0 () () () 1 13) > -61 'output_unit' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +65 'output_unit' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6' ()) () 0 () () () 1 14) > -62 'real128' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +66 'real128' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16' ()) () 0 () () () 1 17) > -63 'real32' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +67 'real16' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > +(CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ()) () 0 () () () 1 36) > +68 'real32' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '4' ()) () 0 () () () 1 15) > -64 'real64' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +69 'real64' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '8' ()) () 0 () () () 1 16) > -65 'real_kinds' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +70 'real_kinds' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DIMENSION) () (INTEGER 4 0 0 0 INTEGER > ()) 0 0 () (ARRAY (INTEGER 4 0 0 0 INTEGER ()) 1 (((CONSTANT (INTEGER 4 > 0 0 0 INTEGER ()) 0 '4' ()) ()) ((CONSTANT (INTEGER 4 0 0 0 INTEGER ()) > @@ -211,54 +226,54 @@ UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DIMENSI > CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '16' ()) ())) ('4') ()) (1 0 > EXPLICIT (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1' ()) (CONSTANT ( > INTEGER 4 0 0 0 INTEGER ()) 0 '4' ())) 0 () () () 1 26) > -66 'stat_failed_image' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +71 'stat_failed_image' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6001' ()) () 0 () () () 1 21) > -67 'stat_locked' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +72 'stat_locked' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '1' ()) () 0 () () () 1 18) > -68 'stat_locked_other_image' 'iso_fortran_env' '' 1 ((PARAMETER > +73 'stat_locked_other_image' 'iso_fortran_env' '' 1 ((PARAMETER > UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 > INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '2' ()) () 0 > () () () 1 19) > -69 'stat_stopped_image' 'iso_fortran_env' '' 1 ((PARAMETER > +74 'stat_stopped_image' 'iso_fortran_env' '' 1 ((PARAMETER > UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 > INTEGER ()) 0 0 () (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '6000' ()) () > 0 () () () 1 20) > -70 'stat_unlocked' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > +75 'stat_unlocked' 'iso_fortran_env' '' 1 ((PARAMETER UNKNOWN-INTENT > UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) () (INTEGER 4 0 0 0 INTEGER ()) 0 0 () > (CONSTANT (INTEGER 4 0 0 0 INTEGER ()) 0 '0' ()) () 0 () () () 1 22) > -71 'team_type' 'iso_fortran_env' '' 1 ((PROCEDURE UNKNOWN-INTENT > +76 'team_type' 'iso_fortran_env' '' 1 ((PROCEDURE UNKNOWN-INTENT > UNKNOWN-PROC DECL UNKNOWN 0 0 FUNCTION GENERIC) () (REAL 4 0 0 0 REAL ()) > 0 0 () () 0 () () () 1 31) > -19 '__copy_iso_fortran_env_Event_type' 'b' '' 72 ((PROCEDURE > +19 '__copy_iso_fortran_env_Event_type' 'b' '' 77 ((PROCEDURE > UNKNOWN-INTENT UNKNOWN-PROC DECL UNKNOWN 0 0 ARTIFICIAL SUBROUTINE > -ELEMENTAL PURE ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (73 > -74) () 0 () () () 0 0) > -27 '__copy_iso_fortran_env_Lock_type' 'b' '' 75 ((PROCEDURE > +ELEMENTAL PURE ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (78 > +79) () 0 () () () 0 0) > +27 '__copy_iso_fortran_env_Lock_type' 'b' '' 80 ((PROCEDURE > UNKNOWN-INTENT UNKNOWN-PROC DECL UNKNOWN 0 0 ARTIFICIAL SUBROUTINE > -ELEMENTAL PURE ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (76 > -77) () 0 () () () 0 0) > -35 '__copy_iso_fortran_env_Team_type' 'b' '' 78 ((PROCEDURE > +ELEMENTAL PURE ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (81 > +82) () 0 () () () 0 0) > +35 '__copy_iso_fortran_env_Team_type' 'b' '' 83 ((PROCEDURE > UNKNOWN-INTENT UNKNOWN-PROC DECL UNKNOWN 0 0 ARTIFICIAL SUBROUTINE > -ELEMENTAL PURE ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (79 > -80) () 0 () () () 0 0) > -73 'src' '' '' 72 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +ELEMENTAL PURE ALWAYS_EXPLICIT) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 (84 > +85) () 0 () () () 0 0) > +78 'src' '' '' 77 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 2 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > -74 'dst' '' '' 72 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +79 'dst' '' '' 77 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 2 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > -76 'src' '' '' 75 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +81 'src' '' '' 80 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 3 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > -77 'dst' '' '' 75 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +82 'dst' '' '' 80 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 3 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > -79 'src' '' '' 78 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +84 'src' '' '' 83 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 4 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > -80 'dst' '' '' 78 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > +85 'dst' '' '' 83 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 > ARTIFICIAL DUMMY) () (DERIVED 4 0 0 0 DERIVED ()) 0 0 () () 0 () () () 0 > 0) > ) > @@ -278,7 +293,8 @@ ARTIFICIAL DUMMY) () (DERIVED 4 0 0 0 DE > 'input_unit' 0 48 'int16' 0 49 'int32' 0 50 'int64' 0 51 'int8' 0 52 > 'integer_kinds' 0 53 'iostat_end' 0 54 'iostat_eor' 0 55 > 'iostat_inquire_internal_unit' 0 56 'iso_fortran_env' 0 57 'lock_type' 0 > -58 'logical_kinds' 0 59 'numeric_storage_size' 0 60 'output_unit' 0 61 > -'real128' 0 62 'real32' 0 63 'real64' 0 64 'real_kinds' 0 65 > -'stat_failed_image' 0 66 'stat_locked' 0 67 'stat_locked_other_image' 0 > -68 'stat_stopped_image' 0 69 'stat_unlocked' 0 70 'team_type' 0 71) > +58 'logical16' 0 59 'logical32' 0 60 'logical64' 0 61 'logical8' 0 62 > +'logical_kinds' 0 63 'numeric_storage_size' 0 64 'output_unit' 0 65 > +'real128' 0 66 'real16' 0 67 'real32' 0 68 'real64' 0 69 'real_kinds' 0 > +70 'stat_failed_image' 0 71 'stat_locked' 0 72 'stat_locked_other_image' > +0 73 'stat_stopped_image' 0 74 'stat_unlocked' 0 75 'team_type' 0 76) > > > Jakub > -- Andre Vehreschild * Email: vehre ad gmx dot de