@@ -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