1! Copyright 2013-2021 Free Software Foundation, Inc. 2! 3! This program is free software; you can redistribute it and/or modify 4! it under the terms of the GNU General Public License as published by 5! the Free Software Foundation; either version 3 of the License, or 6! (at your option) any later version. 7! 8! This program is distributed in the hope that it will be useful, 9! but WITHOUT ANY WARRANTY; without even the implied warranty of 10! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11! GNU General Public License for more details. 12! 13! You should have received a copy of the GNU General Public License 14! along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16program type 17 implicit none 18 19 type :: t1 20 integer :: t1_i 21 real :: t1_r 22 end type t1 23 24 type :: t2 25 integer :: t2_i 26 type (t1) :: t1_n 27 end type t2 28 29 type :: t3 30 integer :: t3_i 31 type (t2) :: t2_n 32 end type t3 33 34 type (t1) :: t1v 35 type (t2) :: t2v 36 type (t3), target :: t3v 37 type(t3), pointer :: t3p 38 39 nullify (t3p) 40 41 t1v%t1_i = 42 42 t1v%t1_r = 42.24 43 44 t2v%t2_i = 2 45 t2v%t1_n%t1_i = 21 46 t3v%t3_i = 3 47 t3v%t2_n%t2_i = 32 48 t3v%t2_n%t1_n%t1_i = 321 49 50 t3p => t3v 51 nullify (t3p) ! bp1 52 53end program type 54