From 09fce1cc0ae36bc827aad93def32d5da7785d8d9 Mon Sep 17 00:00:00 2001 From: Jiwon Gim Date: Wed, 5 Feb 2025 18:33:37 -0700 Subject: [PATCH] add ptr --- src/tuvx/interface_grid_map.F90 | 5 ++++- src/tuvx/interface_profile_map.F90 | 5 ++++- src/tuvx/interface_radiator_map.F90 | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/tuvx/interface_grid_map.F90 b/src/tuvx/interface_grid_map.F90 index 1c9827e5..29c99b07 100644 --- a/src/tuvx/interface_grid_map.F90 +++ b/src/tuvx/interface_grid_map.F90 @@ -106,6 +106,7 @@ function interal_get_grid(grid_map, c_grid_name, c_grid_name_length, & ! variables class(grid_t), pointer :: f_grid + class(grid_t), pointer :: f_grid_ptr type(grid_warehouse_t), pointer :: grid_warehouse character(len=:), allocatable :: f_grid_name character(len=:), allocatable :: f_grid_units @@ -126,7 +127,9 @@ function interal_get_grid(grid_map, c_grid_name, c_grid_name_length, & call c_f_pointer(grid_map, grid_warehouse) - f_grid = grid_warehouse%get_grid(f_grid_name, f_grid_units) + f_grid_ptr => grid_warehouse%get_grid(f_grid_name, f_grid_units) + allocate(f_grid, source = f_grid_ptr) + nullify(f_grid_ptr) select type(f_grid) type is(grid_from_host_t) diff --git a/src/tuvx/interface_profile_map.F90 b/src/tuvx/interface_profile_map.F90 index 1a232c80..3d7ecb9d 100644 --- a/src/tuvx/interface_profile_map.F90 +++ b/src/tuvx/interface_profile_map.F90 @@ -106,6 +106,7 @@ function internal_get_profile(profile_map, c_profile_name, & ! variables class(profile_t), pointer :: f_profile + class(profile_t), pointer :: f_profile_ptr type(profile_warehouse_t), pointer :: profile_warehouse character(len=:), allocatable :: f_profile_name character(len=:), allocatable :: f_profile_units @@ -126,7 +127,9 @@ function internal_get_profile(profile_map, c_profile_name, & call c_f_pointer(profile_map, profile_warehouse) - f_profile = profile_warehouse%get_profile(f_profile_name, f_profile_units) + f_profile_ptr => profile_warehouse%get_profile(f_profile_name, f_profile_units) + allocate(f_profile, source = f_profile_ptr) + nullify(f_profile_ptr) select type(f_profile) type is(profile_from_host_t) diff --git a/src/tuvx/interface_radiator_map.F90 b/src/tuvx/interface_radiator_map.F90 index bcd24c85..4cbf9f94 100644 --- a/src/tuvx/interface_radiator_map.F90 +++ b/src/tuvx/interface_radiator_map.F90 @@ -123,9 +123,9 @@ function internal_get_radiator(radiator_map, c_radiator_name, & error_code = 1 radiator_ptr = c_null_ptr else - f_radiator_ptr = radiator_warehouse%get_radiator(f_radiator_name) - ! allocate(f_radiator, source = f_radiator_ptr) - ! nullify(f_radiator_ptr) + f_radiator_ptr => radiator_warehouse%get_radiator(f_radiator_name) + allocate(f_radiator, source = f_radiator_ptr) + nullify(f_radiator_ptr) select type(f_radiator) type is(radiator_from_host_t)