LMDZ
mod_hallo Module Reference

Data Types

type  hallo
 
interface  register_swapfield2d_u
 
interface  register_swapfield2d_v
 
interface  register_swapfield_u
 
interface  register_swapfield_v
 
type  request
 
type  request_sr
 

Functions/Subroutines

subroutine init_mod_hallo
 
subroutine create_standard_mpi_buffer
 
subroutine create_global_mpi_buffer
 
subroutine allocate_buffer (Size, Index, Pos)
 
subroutine deallocate_buffer (Index)
 
subroutine settag (a_request, tag)
 
subroutine new_hallo (Field, Stride, NbLevel, offset, size, Ptr_request)
 
subroutine register_sendfield (Field, ij, ll, offset, size, target, a_request)
 
subroutine register_recvfield (Field, ij, ll, offset, size, target, a_request)
 
subroutine register_swapfield (FieldS, FieldR, ij, ll, jj_Nb_New, a_request)
 
subroutine register_swapfieldhallo (FieldS, FieldR, ij, ll, jj_Nb_New, Up, Down, a_request)
 
subroutine register_swapfield1d_u (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield2d_u1d (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield3d_u (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield1d_u2d (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield2d_u2d (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield3d_u2d (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield1d_v (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield2d_v1d (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield3d_v (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield1d_v2d (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield2d_v2d (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield3d_v2d (FieldS, FieldR, new_dist, a_request, old_dist, up, down)
 
subroutine register_swapfield_gen_u (FieldS, FieldR, ll, old_dist, new_dist, Up, Down, a_request)
 
subroutine register_swapfield_gen_v (FieldS, FieldR, ll, old_dist, new_dist, Up, Down, a_request)
 
subroutine register_hallo (Field, ij, ll, RUp, Rdown, SUp, SDown, a_request)
 
subroutine register_hallo_u (Field, ll, RUp, Rdown, SUp, SDown, a_request)
 
subroutine register_hallo_v (Field, ll, RUp, Rdown, SUp, SDown, a_request)
 
subroutine sendrequest (a_Request)
 
subroutine waitrequest (a_Request)
 
subroutine waitsendrequest (a_Request)
 
subroutine waitrecvrequest (a_Request)
 
subroutine copyfield (FieldS, FieldR, ij, ll, jj_Nb_New)
 
subroutine copyfieldhallo (FieldS, FieldR, ij, ll, jj_Nb_New, Up, Down)
 
subroutine gather_field_u (field_loc, field_glo, ll)
 
subroutine gather_field_v (field_loc, field_glo, ll)
 
subroutine scatter_field_u (field_glo, field_loc, ll)
 
subroutine scatter_field_v (field_glo, field_loc, ll)
 
subroutine init_hallo (Field, Stride, NbLevel, offset, size, NewHallo)
 

Variables

logical, save use_mpi_alloc
 
integer, parameter maxproc =512
 
integer, parameter defaultmaxbuffersize =1024*1024*100
 
integer, save maxbuffersize =0
 
integer, parameter listsize =1000
 
integer, save maxbuffersize_used
 
real, dimension(:), pointer, save buffer
 
integer, dimension(listsize), save buffer_pos
 
integer, save index_pos
 
type(distrib), save distrib_gather
 
integer, parameter maxrequest =200
 

Function/Subroutine Documentation

subroutine mod_hallo::allocate_buffer ( integer  Size,
integer  Index,
integer  Pos 
)

Definition at line 144 of file mod_hallo.F90.

Here is the caller graph for this function:

subroutine mod_hallo::copyfield ( real, dimension(ij,ll FieldS,
real, dimension(ij,ll FieldR,
integer  ij,
integer  ll,
integer, dimension(0:mpi_size-1)  jj_Nb_New 
)

Definition at line 1427 of file mod_hallo.F90.

subroutine mod_hallo::copyfieldhallo ( real, dimension(ij,ll FieldS,
real, dimension(ij,ll FieldR,
integer  ij,
integer  ll,
integer, dimension(0:mpi_size-1)  jj_Nb_New,
integer  Up,
integer  Down 
)

Definition at line 1465 of file mod_hallo.F90.

subroutine mod_hallo::create_global_mpi_buffer ( )

Definition at line 104 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::create_standard_mpi_buffer ( )

Definition at line 97 of file mod_hallo.F90.

Here is the caller graph for this function:

subroutine mod_hallo::deallocate_buffer ( integer  Index)

Definition at line 168 of file mod_hallo.F90.

Here is the caller graph for this function:

subroutine mod_hallo::gather_field_u ( real, dimension(ijb_u:ije_u,ll field_loc,
real, dimension(ip1jmp1,ll field_glo,
integer  ll 
)

Definition at line 1505 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::gather_field_v ( real, dimension(ijb_v:ije_v,ll field_loc,
real, dimension(ip1jm,ll field_glo,
integer  ll 
)

Definition at line 1528 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::init_hallo ( real, dimension(stride,nblevel), target  Field,
integer  Stride,
integer  NbLevel,
integer  offset,
integer  size,
type(hallo NewHallo 
)

Definition at line 156 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::init_mod_hallo ( )

Definition at line 66 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::new_hallo ( real, dimension(stride,nblevel), target  Field,
integer  Stride,
integer  NbLevel,
integer  offset,
integer  size,
type(request_sr), pointer  Ptr_request 
)

Definition at line 189 of file mod_hallo.F90.

Here is the caller graph for this function:

subroutine mod_hallo::register_hallo ( real, dimension(ij,ll Field,
integer  ij,
integer  ll,
integer  RUp,
integer  Rdown,
integer  SUp,
integer  SDown,
type(request a_request 
)

Definition at line 875 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::register_hallo_u ( real, dimension(ijb_u:ije_u,ll Field,
integer  ll,
integer  RUp,
integer  Rdown,
integer  SUp,
integer  SDown,
type(request a_request 
)

Definition at line 942 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::register_hallo_v ( real, dimension(ijb_v:ije_v,ll Field,
integer  ll,
integer  RUp,
integer  Rdown,
integer  SUp,
integer  SDown,
type(request a_request 
)

Definition at line 1007 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::register_recvfield ( real, dimension(ij,ll Field,
integer  ij,
integer  ll,
integer  offset,
integer  size,
integer  target,
type(request), target  a_request 
)

Definition at line 237 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::register_sendfield ( real, dimension(ij,ll Field,
integer  ij,
integer  ll,
integer  offset,
integer  size,
integer  target,
type(request), target  a_request 
)

Definition at line 221 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::register_swapfield ( real, dimension(ij,ll FieldS,
real, dimension(ij,ll FieldR,
integer  ij,
integer  ll,
integer, dimension(0:mpi_size-1)  jj_Nb_New,
type(request a_request 
)

Definition at line 254 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::register_swapfield1d_u ( real, dimension(:), intent(in)  FieldS,
real, dimension(:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 355 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield1d_u2d ( real, dimension(:,:), intent(in)  FieldS,
real, dimension(:,:), intent(out)  FieldR,
type(distrib), intent(in), optional  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 455 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield1d_v ( real, dimension(:), intent(in)  FieldS,
real, dimension(:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 561 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield1d_v2d ( real, dimension(:,:), intent(in)  FieldS,
real, dimension(:,:), intent(out)  FieldR,
type(distrib), intent(in), optional  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 662 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield2d_u1d ( real, dimension(:,:), intent(in)  FieldS,
real, dimension(:,:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 386 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield2d_u2d ( real, dimension(:,:,:), intent(in)  FieldS,
real, dimension(:,:,:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 487 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield2d_v1d ( real, dimension(:,:), intent(in)  FieldS,
real, dimension(:,:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 592 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield2d_v2d ( real, dimension(:,:,:), intent(in)  FieldS,
real, dimension(:,:,:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 693 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield3d_u ( real, dimension(:,:,:), intent(in)  FieldS,
real, dimension(:,:,:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 420 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield3d_u2d ( real, dimension(:,:,:,:), intent(in)  FieldS,
real, dimension(:,:,:,:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 522 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield3d_v ( real, dimension(:,:,:), intent(in)  FieldS,
real, dimension(:,:,:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 626 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield3d_v2d ( real, dimension(:,:,:,:), intent(in)  FieldS,
real, dimension(:,:,:,:), intent(out)  FieldR,
type(distrib), intent(in)  new_dist,
type(request), intent(inout)  a_request,
type(distrib), intent(in), optional  old_dist,
integer, intent(in), optional  up,
integer, intent(in), optional  down 
)

Definition at line 727 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::register_swapfield_gen_u ( real, dimension(old_dist%ijb_u:old_dist%ije_u,ll FieldS,
real, dimension(new_dist%ijb_u:new_dist%ije_u,ll FieldR,
integer  ll,
type(distrib old_dist,
type(distrib new_dist,
integer  Up,
integer  Down,
type(request a_request 
)

Definition at line 762 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::register_swapfield_gen_v ( real, dimension(old_dist%ijb_v:old_dist%ije_v,ll FieldS,
real, dimension(new_dist%ijb_v:new_dist%ije_v,ll FieldR,
integer  ll,
type(distrib old_dist,
type(distrib new_dist,
integer  Up,
integer  Down,
type(request a_request 
)

Definition at line 815 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::register_swapfieldhallo ( real, dimension(ij,ll FieldS,
real, dimension(ij,ll FieldR,
integer  ij,
integer  ll,
integer, dimension(0:mpi_size-1)  jj_Nb_New,
integer  Up,
integer  Down,
type(request a_request 
)

Definition at line 302 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::scatter_field_u ( real, dimension(ip1jmp1,ll field_glo,
real, dimension(ijb_u:ije_u,ll field_loc,
integer  ll 
)

Definition at line 1556 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::scatter_field_v ( real, dimension(ip1jmp1,ll field_glo,
real, dimension(ijb_v:ije_v,ll field_loc,
integer  ll 
)

Definition at line 1590 of file mod_hallo.F90.

Here is the call graph for this function:

subroutine mod_hallo::sendrequest ( type(request), target  a_Request)

Definition at line 1072 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::settag ( type(request a_request,
integer  tag 
)

Definition at line 180 of file mod_hallo.F90.

Here is the caller graph for this function:

subroutine mod_hallo::waitrecvrequest ( type(request), target  a_Request)

Definition at line 1346 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::waitrequest ( type(request), target  a_Request)

Definition at line 1196 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine mod_hallo::waitsendrequest ( type(request), target  a_Request)

Definition at line 1290 of file mod_hallo.F90.

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

real, dimension(:), pointer, save mod_hallo::buffer

Definition at line 13 of file mod_hallo.F90.

integer, dimension(listsize), save mod_hallo::buffer_pos

Definition at line 16 of file mod_hallo.F90.

integer, parameter mod_hallo::defaultmaxbuffersize =1024*1024*100

Definition at line 6 of file mod_hallo.F90.

type(distrib), save mod_hallo::distrib_gather

Definition at line 44 of file mod_hallo.F90.

integer save mod_hallo::index_pos

Definition at line 17 of file mod_hallo.F90.

integer parameter mod_hallo::listsize =1000

Definition at line 8 of file mod_hallo.F90.

integer parameter mod_hallo::maxbuffersize =0

Definition at line 7 of file mod_hallo.F90.

integer save mod_hallo::maxbuffersize_used

Definition at line 10 of file mod_hallo.F90.

integer parameter mod_hallo::maxproc =512

Definition at line 5 of file mod_hallo.F90.

integer, parameter mod_hallo::maxrequest =200

Definition at line 8 of file mod_hallo.F90.

logical save mod_hallo::use_mpi_alloc

Definition at line 4 of file mod_hallo.F90.