89       IF (is_using_mpi) 
THEN 
  110       DO i=1,mpi_size*omp_size-1
 
  124    IF (is_omp_root) 
THEN 
  141     INTEGER :: FieldIn(:)
 
  142     INTEGER :: FieldOut(:)
 
  153     INTEGER :: FieldIn(:)
 
  154     INTEGER :: FieldOut(:)
 
  156     INTEGER,
SAVE,
ALLOCATABLE :: Field_tmp(:)
 
  158     IF (is_omp_root) 
ALLOCATE(field_tmp(
knon_mpi))
 
  162     IF (is_omp_root) fieldout(:)=field_tmp(:)
 
  164     IF (is_omp_root) 
DEALLOCATE(field_tmp)
 
  174     INTEGER :: FieldIn(:)
 
  175     INTEGER :: FieldOut(:)
 
  178     IF (is_using_mpi) 
THEN 
  180       CALL mpi_gatherv(fieldin,
knon_mpi,mpi_integer,                                &
 
  182                        mpi_master,comm_lmdz_phy,ierr)
 
  185       fieldout(:)=fieldin(:)
 
  211     REAL,
SAVE,
ALLOCATABLE :: Field_tmp(:)
 
  213     IF (is_omp_root) 
ALLOCATE(field_tmp(
knon_mpi))
 
  217     IF (is_omp_root) fieldout(:)=field_tmp(:)
 
  219     IF (is_omp_root) 
DEALLOCATE(field_tmp)
 
  233     IF (is_using_mpi) 
THEN 
  235       CALL mpi_gatherv(fieldin,
knon_mpi,mpi_real_lmdz,                                 &
 
  237                        mpi_master,comm_lmdz_phy,ierr)            
 
  240       fieldout(:)=fieldin(:)
 
  250     INTEGER :: FieldIn(:)
 
  251     INTEGER :: FieldOut(:)
 
  262     INTEGER :: FieldIn(:)
 
  263     INTEGER :: FieldOut(:)
 
  265     INTEGER,
SAVE,
ALLOCATABLE :: Field_tmp(:)
 
  267     IF (is_omp_root) 
ALLOCATE(field_tmp(
knon_mpi))
 
  268     IF (is_omp_root) field_tmp(:)=fieldin(:)
 
  272     IF (is_omp_root) 
DEALLOCATE(field_tmp)
 
  282     INTEGER :: FieldIn(:)
 
  283     INTEGER :: FieldOut(:)
 
  286     IF (is_using_mpi) 
THEN 
  290                         mpi_master,comm_lmdz_phy,ierr)
 
  293       fieldout(:)=fieldin(:)
 
  317     INTEGER,
SAVE,
ALLOCATABLE :: Field_tmp(:)
 
  319     IF (is_omp_root) 
ALLOCATE(field_tmp(
knon_mpi))
 
  320     IF (is_omp_root) field_tmp(:)=fieldin(:)
 
  324     IF (is_omp_root) 
DEALLOCATE(field_tmp)
 
  338     IF (is_using_mpi) 
THEN 
  342                         mpi_master,comm_lmdz_phy,ierr)
 
  345       fieldout(:)=fieldin(:)
 
integer, save knon_omp_begin
 
subroutine gather_surf_mpi_i(FieldIn, FieldOut)
 
subroutine gather_surf_mpi_r(FieldIn, FieldOut)
 
subroutine gather_surf_i(FieldIn, FieldOut)
 
integer, dimension(:), allocatable, save knon_glo_end_para
 
subroutine init_surf_para(knon)
 
subroutine scatter_surf_omp_i(FieldIn, FieldOut)
 
subroutine scatter_surf_omp_r(FieldIn, FieldOut)
 
integer, dimension(:), allocatable, save knon_mpi_para
 
subroutine scatter_surf_mpi_r(FieldIn, FieldOut)
 
subroutine gather_surf_r(FieldIn, FieldOut)
 
subroutine scatter_surf_mpi_i(FieldIn, FieldOut)
 
integer, dimension(:), allocatable, save knon_omp_begin_para
 
subroutine scatter_surf_r(FieldIn, FieldOut)
 
subroutine gather_surf_omp_i(FieldIn, FieldOut)
 
subroutine scatter_surf_i(FieldIn, FieldOut)
 
integer, dimension(:), allocatable, save knon_glo_para
 
integer, save knon_omp_end
 
integer, dimension(:), allocatable, save knon_glo_begin_para
 
integer, dimension(:), allocatable, save knon_omp_end_para
 
subroutine gather_surf_omp_r(FieldIn, FieldOut)
 
integer, dimension(:), allocatable, save knon_omp_para
 
integer, dimension(:), allocatable, save knon_mpi_end_para
 
integer, dimension(:), allocatable, save knon_mpi_begin_para
 
subroutine finalize_surf_para