- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The following code triggers an ICE. It happens when the size of an output variable in a type-bound procedure defined in a sumbmoudule is related to a type in a different module. It seems, in general part of the mess with host association and sumbmodules.
!MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MODULE mod1
TYPE basetype_1
INTEGER::DIM=0
END TYPE basetype_1
TYPE type1
TYPE(basetype_1)::q
END TYPE type1
TYPE(type1) varsize
CONTAINS
END MODULE mod1
!MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
!MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MODULE mod2
IMPLICIT NONE
! Base type
TYPE,ABSTRACT::basetype
CONTAINS
PROCEDURE(template_fun),PASS,DEFERRED::f1
END TYPE basetype
ABSTRACT INTERFACE
FUNCTION template_fun(varin)
use mod1,ONLY:varsize
IMPORT basetype
IMPLICIT NONE
CLASS(basetype),INTENT(IN)::varin
REAL(8)::template_fun(3,varsize%q%dim)
END FUNCTION template_fun
END INTERFACE
! Extended type 1
TYPE,EXTENDS(basetype)::extendedtype1
CONTAINS
PROCEDURE,PASS::f1=>f1_et1
END TYPE extendedtype1
! Extended type 2
TYPE,EXTENDS(basetype)::extendedtype2
CONTAINS
PROCEDURE,PASS::f1=>f1_et2
END TYPE extendedtype2
INTERFACE
MODULE FUNCTION f1_et1(varin)
use mod1,ONLY:varsize
IMPLICIT NONE
CLASS(extendedtype1),INTENT(IN)::varin
REAL(8)::f1_et1(3,varsize%q%dim)
END FUNCTION f1_et1
MODULE FUNCTION f1_et2(varin)
use mod1,ONLY:varsize
IMPLICIT NONE
CLASS(extendedtype2),INTENT(IN)::varin
REAL(8)::f1_et2(3,varsize%q%DIM)
END FUNCTION f1_et2
END INTERFACE
END MODULE mod2
!MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
!MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
SUBMODULE(mod2) submod
IMPLICIT NONE
CONTAINS
MODULE PROCEDURE f1_et1
f1_et1=0.d0
END PROCEDURE f1_et1
MODULE PROCEDURE f1_et2
f1_et2=0.d0
END PROCEDURE f1_et2
END SUBMODULE submod
!MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
!PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
PROGRAM MAIN
USE mod2
TYPE(extendedtype1)::pt
REAL(8),ALLOCATABLE::qz(:,:)
qz=pt%f1()
END PROGRAM
!PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Link Copied
0 Replies
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page