Skip to content

Commit 07ea5a8

Browse files
rem1776rem1776
authored andcommitted
clean up typing for netcdf file objs
1 parent 969513e commit 07ea5a8

1 file changed

Lines changed: 13 additions & 30 deletions

File tree

offloading/offloading_io.F90

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -26,25 +26,19 @@ module offloading_io_mod
2626

2727
implicit none
2828

29-
30-
integer, parameter :: domain_decomposed = 0 !< enumeration for type of domain
31-
integer, parameter :: non_domain_decomposed = 1 !< enumeration for type of domain
32-
integer, parameter :: Unstructured_grid = 2 !< enumeration for type of domain
33-
3429
integer :: current_files_init !< number of currently initialized offloading files
3530
logical :: module_is_initialized !< .true. if module has been initialized
3631

3732
integer :: max_files = 10 !< amount of offloaded files to allocate space for
3833

39-
namelist / offloading_io_nml / max_files
34+
namelist / offloading_io_nml / max_files
4035

4136
!> Structure to hold offloading file information
4237
type :: offloading_obj_out
4338
integer :: id
4439
character(len=:), allocatable :: filename !< filename of the offloaded netcdf file
4540
class(FmsNetcdfFile_t), allocatable :: fileobj !< fms2_io file object
4641
type(domain2D) :: domain_out !< domain on offloading PEs
47-
integer :: type_of_domain !< type of domain (domain_decomposed, non_domain_decomposed, Unstructured_grid)
4842
end type
4943

5044
!> Offload equivalent of register_axis in fms2_io_mod
@@ -68,7 +62,6 @@ module offloading_io_mod
6862
private
6963

7064
public :: offloading_io_init, open_file_offload
71-
public :: domain_decomposed, non_domain_decomposed, Unstructured_grid
7265
public :: global_metadata_offload, close_file_offload, register_axis_offload, register_field_offload
7366
public :: write_data_offload
7467
public :: create_cubic_domain, create_lat_lon_domain
@@ -99,7 +92,6 @@ subroutine open_file_offload(fileobj, filename, domain_in, pe_in, pe_out)
9992
integer, parameter :: str_len = 255
10093
character(len=str_len) :: filename_out(1)
10194
integer :: object_id
102-
integer :: type_of_domain
10395
integer :: global_domain_size(2)
10496
integer :: ntile
10597
integer, allocatable :: all_current_pes(:)
@@ -115,15 +107,6 @@ subroutine open_file_offload(fileobj, filename, domain_in, pe_in, pe_out)
115107
allocate(all_current_pes(mpp_npes()))
116108
call mpp_get_current_pelist(all_current_pes)
117109

118-
select type(fileobj)
119-
type is (FmsNetcdfDomainFile_t)
120-
type_of_domain = non_domain_decomposed
121-
type is (FmsNetcdfFile_t)
122-
type_of_domain = domain_decomposed
123-
type is (FmsNetcdfUnstructuredDomainFile_t)
124-
type_of_domain = Unstructured_grid
125-
end select
126-
127110
filename_out(1) = ""
128111
if (mpp_pe() .eq. pe_in(1)) then
129112
!< The root model pe gets the domain info (ntiles and size of global domain)
@@ -333,7 +316,7 @@ subroutine global_metadata_offload(fileobj, attribute_name, attribute_value)
333316

334317
!> Register a domain axis (ie. x or y) on offloading PEs
335318
subroutine register_domain_axis_offload(fileobj, axis_name, cart)
336-
class(FmsNetcdfDomainFile_t), intent(inout) :: fileobj !< fms2_io file object
319+
class(FmsNetcdfFile_t), intent(inout) :: fileobj !< fms2_io file object
337320
character(len=*), intent(in) :: axis_name !< axis name to be written to file
338321
character(len=1), intent(in) :: cart !< must be either 'x' or 'y' for cartesian axis
339322

@@ -374,6 +357,8 @@ subroutine register_domain_axis_offload(fileobj, axis_name, cart)
374357
select type(file=>this%fileobj)
375358
type is(FmsNetcdfDomainFile_t)
376359
call register_axis(file, trim(var_info(1)), trim(var_info(2)))
360+
class default
361+
call mpp_error(FATAL, "offloading_io_mod::register_domain_axis_offload currently only supports FmsNetcdfDomainFile_t")
377362
end select
378363
endif
379364

@@ -382,7 +367,7 @@ end subroutine register_domain_axis_offload
382367

383368
!> Register a netcdf axis on offloading PEs
384369
subroutine register_netcdf_axis_offload(fileobj, axis_name, length)
385-
type(FmsNetcdfDomainFile_t), intent(inout) :: fileobj !< fms2_io file object
370+
class(FmsNetcdfFile_t), intent(inout) :: fileobj !< fms2_io file object
386371
character(len=*), intent(in) :: axis_name !< axis name to be written to file
387372
integer, intent(in) :: length !< length of the axis
388373

@@ -429,18 +414,20 @@ subroutine register_netcdf_axis_offload(fileobj, axis_name, length)
429414
endif
430415

431416
if (.not. is_model_pe) then
432-
!select type(wut=>this%fileobj)
433-
! type is(FmsNetcdfDomainFile_t)
417+
select type(wut=>this%fileobj)
418+
type is(FmsNetcdfDomainFile_t)
434419
call register_axis(this%fileobj, var_axis(1)(1:axis_length), var_length)
435-
!end select
420+
class default
421+
call mpp_error(FATAL, "offloading_io_mod::register_netcdf_axis_offload currently only supports FmsNetcdfDomainFile_t")
422+
end select
436423
endif
437424

438425
call mpp_set_current_pelist(all_current_pes)
439426
end subroutine register_netcdf_axis_offload
440427

441428
!> Register a netcdf field on offloading PEs
442429
subroutine register_field_offload(fileobj, varname, vartype, dimensions)
443-
type(FmsNetcdfFile_t), intent(inout) :: fileobj !> fms2_io file object
430+
class(FmsNetcdfFile_t), intent(inout) :: fileobj !> fms2_io file object
444431
character(len=*), intent(in) :: varname !> name of the variable to be registered
445432
character(len=*), intent(in) :: vartype !> type of the variable to be registered
446433
!! must be one of {r4_type, r8_type, i4_type, i8_type, str_type}
@@ -501,7 +488,7 @@ subroutine register_field_offload(fileobj, varname, vartype, dimensions)
501488

502489
!> Write 3D data to offloaded netcdf file
503490
subroutine write_data_offload_3d(fileobj, varname, vardata, unlim_dim_level)
504-
class(FmsNetcdfDomainFile_t), intent(inout) :: fileobj !< fms2_io file object
491+
class(FmsNetcdfFile_t), intent(inout) :: fileobj !< fms2_io file object
505492
character(len=*), intent(in) :: varname !< name of the variable to be written
506493
real(kind=r4_kind), intent(in) :: vardata(:,:,:) !< 3D data to be written
507494
integer, intent(in), optional :: unlim_dim_level !< level along unlimited dimension to write to
@@ -528,9 +515,6 @@ subroutine write_data_offload_3d(fileobj, varname, vardata, unlim_dim_level)
528515
id = fileobj%offloading_obj_in%id
529516
this => offloading_objs(id)
530517

531-
! from error message
532-
call mpp_domains_set_stack_size( 4866048)
533-
534518
allocate(all_current_pes(mpp_npes()))
535519
call mpp_get_current_pelist(all_current_pes)
536520

@@ -580,7 +564,7 @@ end subroutine write_data_offload_3d
580564

581565
!> Write 2D data to offloaded netcdf file
582566
subroutine write_data_offload_2d(fileobj, varname, vardata)
583-
class(FmsNetcdfDomainFile_t), intent(inout) :: fileobj !< fms2_io file object
567+
class(FmsNetcdfFile_t), intent(inout) :: fileobj !< fms2_io file object
584568
character(len=*), intent(in) :: varname !< name of the variable to be written
585569
real(kind=r4_kind), intent(in) :: vardata(:,:) !< 2D data to be written
586570

@@ -675,7 +659,6 @@ integer function init_offloading_object(filename, nx, ny, ntile)
675659
this => offloading_objs(current_files_init)
676660
this%id = current_files_init
677661
this%filename = trim(filename)
678-
this%type_of_domain = domain_decomposed
679662

680663
! does npes return current pelist or total??
681664
allocate(curr_pelist(mpp_npes()))

0 commit comments

Comments
 (0)