Oasis3-MCT
Data Types | Functions/Subroutines | Variables
mod_oasis_part Module Reference

OASIS partition data and methods. More...

Data Types

type  prism_part_type
 Partition (decomposition) data for variables. More...
 

Functions/Subroutines

subroutine, public oasis_def_partition (id_part, kparal, kinfo, ig_size, name)
 The OASIS user interface to define partitions. More...
 
subroutine, public oasis_part_setup ()
 Synchronize partitions across all tasks, called at oasis enddef. More...
 
subroutine oasis_part_zero (s_prism_part)
 Zero partition information. More...
 
subroutine oasis_part_write (s_prism_part, npart)
 Print parition information. More...
 
subroutine, public oasis_part_create (id_part, TYPE, gsize, nx, ny, gridname, gscomm, mpicom, gridID)
 Create a new partition internally, needed for mapping. More...
 

Variables

integer(kind=ip_intwp_p), parameter mpart = 100
 maximum number of partitions allowed More...
 
integer(kind=ip_intwp_p), public prism_npart = 0
 number of partitions defined More...
 
type(prism_part_type), dimension(mpart), public prism_part
 list of defined partitions More...
 
integer(kind=ip_intwp_p) part_name_cnt = 0
 used to define partition names internally More...
 

Detailed Description

OASIS partition data and methods.

Function/Subroutine Documentation

◆ oasis_def_partition()

subroutine, public mod_oasis_part::oasis_def_partition ( integer(kind=ip_intwp_p), intent(out)  id_part,
integer(kind=ip_intwp_p), dimension(:), intent(in)  kparal,
integer(kind=ip_intwp_p), intent(out), optional  kinfo,
integer(kind=ip_intwp_p), intent(in), optional  ig_size,
character(len=*), intent(in), optional  name 
)

The OASIS user interface to define partitions.

Parameters
[out]id_partpartition id
[in]kparaldecomposition information
[out]kinforeturn code
[in]ig_sizetotal size of partition
[in]namename of partition
  • Increment partition number and store user values

Definition at line 60 of file mod_oasis_part.F90.

◆ oasis_part_create()

subroutine, public mod_oasis_part::oasis_part_create ( integer(ip_i4_p), intent(out)  id_part,
character(len=*), intent(in)  TYPE,
integer(ip_i4_p), intent(in)  gsize,
integer(ip_i4_p), intent(in)  nx,
integer(ip_i4_p), intent(in)  ny,
character(len=*), intent(in)  gridname,
integer(ip_i4_p), intent(in)  gscomm,
integer(ip_i4_p), intent(in)  mpicom,
integer(ip_i4_p), dimension(:), optional  gridID 
)

Create a new partition internally, needed for mapping.

Parameters
[out]id_partpartition id
[in]typetype of decomposition specified
[in]gsizeglobal size of grid
[in]nxglobal nx size
[in]nyglobal ny size
[in]gridnamegrid name
[in]gscommglobal seg map communicator
[in]mpicomlocal mpi comm
grididgridcell ID
  • Check if an existing gsmap can be reused
  • Check that all tasks agree and if so, return with that partition id
  • Instantiate a decomposition based on gsize and type
    • Create a new partition and set values
    • Initialize the partition gsmap and pgsmap

Definition at line 444 of file mod_oasis_part.F90.

◆ oasis_part_setup()

subroutine, public mod_oasis_part::oasis_part_setup ( )

Synchronize partitions across all tasks, called at oasis enddef.

  • Generate reduced partname list
  • Define all partitions on all tasks
  • Convert kparal information to data for the gsmap
  • Initialize the local gsmap and partition gsmap

Definition at line 142 of file mod_oasis_part.F90.

◆ oasis_part_write()

subroutine mod_oasis_part::oasis_part_write ( type(prism_part_type), intent(in)  s_prism_part,
integer(ip_i4_p), intent(in)  npart 
)
private

Print parition information.

Definition at line 390 of file mod_oasis_part.F90.

◆ oasis_part_zero()

subroutine mod_oasis_part::oasis_part_zero ( type(prism_part_type), intent(inout)  s_prism_part)
private

Zero partition information.

Definition at line 361 of file mod_oasis_part.F90.

Variable Documentation

◆ mpart

integer(kind=ip_intwp_p), parameter mod_oasis_part::mpart = 100
private

maximum number of partitions allowed

Definition at line 26 of file mod_oasis_part.F90.

◆ part_name_cnt

integer(kind=ip_intwp_p) mod_oasis_part::part_name_cnt = 0
private

used to define partition names internally

Definition at line 51 of file mod_oasis_part.F90.

◆ prism_npart

integer(kind=ip_intwp_p), public mod_oasis_part::prism_npart = 0

number of partitions defined

Definition at line 46 of file mod_oasis_part.F90.

◆ prism_part

type(prism_part_type), dimension(mpart), public mod_oasis_part::prism_part

list of defined partitions

Definition at line 47 of file mod_oasis_part.F90.