Guest User

Untitled

a guest
Jun 24th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. MODULE DERIVED_TYPE
  2.  
  3. TYPE , PUBLIC :: DT_AA
  4.  
  5. INTEGER , PRIVATE :: I_00
  6.  
  7. CONTAINS
  8.  
  9. PROCEDURE, PUBLIC :: C_I_00 => CALC_DATA_I_00
  10. PROCEDURE, PUBLIC :: T_I_00 => TAKE_DATA_I_00
  11.  
  12. END TYPE DT_AA
  13.  
  14. PRIVATE :: CALC_DATA_I_00
  15. PRIVATE :: TAKE_DATA_I_01
  16.  
  17. TYPE( DT_AA ) :: A_DT_AA
  18.  
  19. CONTAINS
  20.  
  21. SUBROUTINE CALC_DATA_I_00( THIS, INDX )
  22.  
  23. CLASS( DT_AA ) :: THIS
  24. INTEGER, INTENT( IN ) :: INDX
  25.  
  26. THIS%I_00 = 4 + INDX
  27.  
  28. END SUBROUTINE CALC_DATA_I_00
  29.  
  30. FUNCTION TAKE_DATA_I_00( THIS ) RESULT( RES )
  31.  
  32. CLASS( DT_AA ) :: THIS
  33. INTEGER :: RES
  34.  
  35. RES = THIS%I_00
  36.  
  37. END FUNCTION TAKE_DATA_I_00
  38.  
  39. END MODULE DERIVED_TYPE
  40.  
  41. MODULE DERIVED_TYPE_01
  42.  
  43. USE, NON_INTRINSIC :: DERIVED_TYPE
  44.  
  45. IMPLICIT NONE
  46.  
  47. TYPE , PUBLIC :: DT_AB
  48.  
  49. INTEGER , DIMENSION( A_DT_AA%T_I_00() ) :: SERT
  50.  
  51. END TYPE DT_AB
  52.  
  53. END MODULE DERIVED_TYPE_01
  54.  
  55. PROGRAM MAIN_PROGRAM
  56.  
  57. USE, NON_INTRINSIC :: DERIVED_TYPE
  58.  
  59. IMPLICIT NONE
  60.  
  61. CALL A_DT_AA%C_I_00(1)
  62.  
  63. END PROGRAM MAIN_PROGRAM
Add Comment
Please, Sign In to add comment