编辑代码

module nested_type_example
  implicit none

  type :: InnerType
    integer :: inner_a
    real :: inner_b
  end type InnerType

  type :: OuterType
    integer :: outer_a
    real :: outer_b
    type(InnerType) :: inner
  end type OuterType

  
contains

  subroutine print_outer(inner_val)
    type(OuterType), intent(in) :: inner_val
    write(*, *) "outer_a:", inner_val%outer_a
    write(*, *) "outer_b:", inner_val%outer_b
    write(*, *) "inner_a:", inner_val%inner%inner_a
    write(*, *) "inner_b:", inner_val%inner%inner_b
  end subroutine print_outer

end module nested_type_example

program main
    use nested_type_example
    implicit none

    type(OuterType) :: my_data

    my_data%outer_a = 1
    my_data%outer_b = 3.14
    my_data%inner%inner_a = 2
    my_data%inner%inner_b = 2.71828
    
    print *, "Hello  JSRUN    - from gfrotran"
    call print_outer(my_data)

end