select_type(3f) - [FORTRAN:EXECUTION_CONTROL] select_type (LICENSE:PD)
Synopsis
Description
Example
select_type(VARIABLE)
Example
TYPE :: POINT REAL :: X, Y
TYPE, EXTENDS(POINT) :: POINT_3D REAL :: Z END TYPE POINT_3D
TYPE, EXTENDS(POINT) :: COLOR_POINT INTEGER :: COLOR
TYPE(POINT), TARGET :: P TYPE(POINT_3D), TARGET :: P3 TYPE(COLOR_POINT), TARGET :: C
CLASS(POINT), POINTER :: P_OR_C_OR_P3
do i=1,3
select case(i) case(1);P_OR_C_OR_P3 => C case(2);P_OR_C_OR_P3 => P case(3);P_OR_C_OR_P3 => P3 end selectSELECT TYPE ( A => P_OR_C_OR_P3 ) CLASS IS ( POINT ) ! any type of the class without a specific "TYPE IS" ! "CLASS ( POINT ) :: A" implied here PRINT *, CLASS POINT ,A%X, A%Y ! This block gets executed TYPE IS ( POINT ) PRINT *, POINT , A%X, A%Y TYPE IS ( POINT_3D ) ! "TYPE ( POINT_3D ) :: A" implied here PRINT *, POINT_3D ,A%X, A%Y, A%Z
enddo
! Output !
! CLASS POINT 3.54248252E-40 8.40779079E-45 ! POINT 0.00000000 0.00000000 ! POINT_3D 0.00000000 3.53541997E-40 8.40779079E-45
select_type (3) | November 13, 2019 |