module test implicit none type :: tt integer :: i = 0 real :: d = 0.0d0 character, dimension(5):: c = 'abcde' real, dimension(5) :: ad = 0.0d0 real, pointer :: pac end type tt contains subroutine init(t) implicit none type(tt), intent(inout) :: t t%i = 1 t%d = 2.0d0 end subroutine init subroutine get(t, name, value) implicit none type(tt), intent(in) :: t character(*), intent(in) :: name real(8), intent(out) :: value write(*,*) 'got:', name value = 3.0d0 end subroutine get subroutine step(t) implicit none type(tt), intent(inout) :: t t%i = t%i+1 t%d = t%d*1.01 write(*,*) t%i write(*,*) t%d end subroutine step end module test