FV3 Bundle
|
Go to the source code of this file.
Functions | |
l_size ! loop over number of fields ke do je do ie to je n | if (.NOT. d_comm%R_do_buf(list)) cycle from_pe |
Variables | |
************************************************************************GNU Lesser General Public License **This file is part of the GFDL Flexible Modeling System(FMS). ! *! *FMS is free software without even the implied warranty of MERCHANTABILITY or *FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License *for more details **You should have received a copy of the GNU Lesser General Public *License along with FMS If | not |
************************************************************************GNU Lesser General Public License **This file is part of the GFDL Flexible Modeling System(FMS). ! *! *FMS is free software without even the implied warranty of MERCHANTABILITY or *FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License *for more details **You should have received a copy of the GNU Lesser General Public *License along with FMS If see< http:! ***********************************************************************subroutine MPP_DO_REDISTRIBUTE_3D_(f_in, f_out, d_comm, d_type) integer(LONG_KIND), intent(in) ::f_in(:), f_out(:) type(DomainCommunicator2D), intent(in) ::d_comm MPP_TYPE_, intent(in) ::d_type MPP_TYPE_ ::field_in(d_comm%domain_in%x(1)%data%begin:d_comm%domain_in%x(1)%data%end, &d_comm%domain_in%y(1)%data%begin:d_comm%domain_in%y(1)%data%end, d_comm%ke) pointer(ptr_field_in, field_in) MPP_TYPE_ ::field_out(d_comm%domain_out%x(1)%data%begin:d_comm%domain_out%x(1)%data%end, &d_comm%domain_out%y(1)%data%begin:d_comm%domain_out%y(1)%data%end, d_comm%ke) pointer(ptr_field_out, field_out) type(domain2D), pointer ::domain_in, domain_out integer ::i, j, k, l, n, l_size integer ::is, ie, js, je integer ::ke integer ::list, pos, msgsize integer ::to_pe, from_pe MPP_TYPE_ ::buffer(size(mpp_domains_stack(:))) pointer(ptr, buffer) integer ::buffer_pos, wordlen, errunit!fix ke errunit=stderr() l_size=size(f_out(:)) ! equal to size(f_in(:)) ke=d_comm%ke domain_in=> d_comm | domain_in |
domain_out | |
ie | |
je | |
l_size ! loop over number of fields | ptr_field_in |
l_size ! loop over number of fields ke do | j = js |
l_size ! loop over number of fields ke do je do | i = is |
l_size ! loop over number of fields ke do je do ie | pos |
l_size ! loop over number of fields ke do je do ie | pe |
l_size ! loop over number of fields ke do je do ie to | PE |
l_size ! loop over number of fields ke do je do ie to | to_pe |
l_size ! loop over number of fields ke do je do ie to | is |
l_size ! loop over number of fields ke do je do ie to | js |
l_size ! loop over number of fields ke do je do ie to je | msgsize |
from | from_pe |
from je l_size ! loop over number of in out fields | ptr_field_out |
*********************************************************************** * GNU Lesser General Public License* * This file is part of the GFDL Flexible Modeling System (FMS). !* !* FMS is free software without even the implied warranty of MERCHANTABILITY or* FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License* for more details* * You should have received a copy of the GNU Lesser General Public* License along with FMS If see<http:!*********************************************************************** subroutine MPP_DO_REDISTRIBUTE_3D_( f_in, f_out, d_comm, d_type ) integer(LONG_KIND), intent(in) :: f_in(:), f_out(:) type(DomainCommunicator2D), intent(in) :: d_comm MPP_TYPE_, intent(in) :: d_type MPP_TYPE_ :: field_in(d_comm%domain_in%x(1)%data%begin:d_comm%domain_in%x(1)%data%end, & d_comm%domain_in%y(1)%data%begin:d_comm%domain_in%y(1)%data%end,d_comm%ke) pointer( ptr_field_in, field_in) MPP_TYPE_ :: field_out(d_comm%domain_out%x(1)%data%begin:d_comm%domain_out%x(1)%data%end, & d_comm%domain_out%y(1)%data%begin:d_comm%domain_out%y(1)%data%end,d_comm%ke) pointer( ptr_field_out, field_out) type(domain2D), pointer :: domain_in, domain_out integer :: i, j, k, l, n, l_size integer :: is, ie, js, je integer :: ke integer :: list, pos, msgsize integer :: to_pe, from_pe MPP_TYPE_ :: buffer(size(mpp_domains_stack(:))) pointer( ptr, buffer ) integer :: buffer_pos, wordlen, errunit!fix ke errunit = stderr() l_size = size(f_out(:)) ! equal to size(f_in(:)) ke = d_comm%ke domain_in => d_comm domain_in |
Definition at line 4 of file mpp_do_redistribute.h.
domain_out |
Definition at line 43 of file mpp_do_redistribute.h.
from from_pe |
Definition at line 93 of file mpp_do_redistribute.h.
Definition at line 71 of file mpp_do_redistribute.h.
from ie |
Definition at line 64 of file mpp_do_redistribute.h.
from is |
Definition at line 72 of file mpp_do_redistribute.h.
Definition at line 70 of file mpp_do_redistribute.h.
from je |
Definition at line 65 of file mpp_do_redistribute.h.
from js |
Definition at line 72 of file mpp_do_redistribute.h.
Definition at line 79 of file mpp_do_redistribute.h.
*********************************************************************** * GNU Lesser General Public License* * This file is part of the GFDL Flexible Modeling System (FMS). !* !* FMS is free software without even the implied warranty of MERCHANTABILITY or* FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License* for more details* * You should have received a copy of the GNU Lesser General Public* License along with FMS If not |
Definition at line 4 of file mpp_do_redistribute.h.
nlist My domain from pe |
Definition at line 72 of file mpp_do_redistribute.h.
from PE |
Definition at line 72 of file mpp_do_redistribute.h.
from je pos |
Definition at line 72 of file mpp_do_redistribute.h.
l_size ! loop over number of fields ptr_field_in |
Definition at line 68 of file mpp_do_redistribute.h.
from je l_size ! loop over number of in out fields ptr_field_out |
Definition at line 97 of file mpp_do_redistribute.h.
Definition at line 72 of file mpp_do_redistribute.h.