Considering the rules relaxed in the language starting with Fortran 2003 regarding specification expressions where a reference to a specification function is permitted when the arguments to said function are restricted expressions themselves, is the following code standard-conforming? module m type :: t(N) integer, len :: N integer :: i(N) end type contains pure function getlen(x) result(r) integer, intent(in) :: x integer :: r r = x end function function f() result(r) type(t(N=getlen(2))) :: r !!<-- offending line per one compiler r%i = 42 end function end module Out of the two compilers I tried, one processed the code without any error indicators but another complained at the 'type(t(N=getlen(2))) :: r' declaration statement shown above. Thanks, Vipul Parekh ######################################################################## To unsubscribe from the COMP-FORTRAN-90 list, click the following link: https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=COMP-FORTRAN-90&A=1