Changeset 3011


Ignore:
Timestamp:
Jul 24, 2023, 9:13:45 AM (16 months ago)
Author:
emillour
Message:

Common physics auxiliary routines:
Add possibility to broadcast 5D and 6D fields.
EM

Location:
trunk/LMDZ.COMMON/libf/phy_common
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/phy_common/mod_phys_lmdz_mpi_transfert.F90

    r1572 r3011  
    77  INTERFACE bcast_mpi
    88    MODULE PROCEDURE bcast_mpi_c,                                                     &
    9                      bcast_mpi_i,bcast_mpi_i1,bcast_mpi_i2,bcast_mpi_i3,bcast_mpi_i4, &
    10                      bcast_mpi_r,bcast_mpi_r1,bcast_mpi_r2,bcast_mpi_r3,bcast_mpi_r4, &
    11                      bcast_mpi_l,bcast_mpi_l1,bcast_mpi_l2,bcast_mpi_l3,bcast_mpi_l4
     9                     bcast_mpi_i,bcast_mpi_i1,bcast_mpi_i2,bcast_mpi_i3,bcast_mpi_i4,bcast_mpi_i5,bcast_mpi_i6, &
     10                     bcast_mpi_r,bcast_mpi_r1,bcast_mpi_r2,bcast_mpi_r3,bcast_mpi_r4,bcast_mpi_r5,bcast_mpi_r6, &
     11                     bcast_mpi_l,bcast_mpi_l1,bcast_mpi_l2,bcast_mpi_l3,bcast_mpi_l4,bcast_mpi_l5,bcast_mpi_l6
    1212  END INTERFACE
    1313
     
    117117  END SUBROUTINE bcast_mpi_i4
    118118
     119  SUBROUTINE bcast_mpi_i5(var)
     120  IMPLICIT NONE
     121    INTEGER,INTENT(INOUT) :: Var(:,:,:,:,:)
     122   
     123    CALL bcast_mpi_igen(Var,size(Var))
     124
     125  END SUBROUTINE bcast_mpi_i5
     126
     127  SUBROUTINE bcast_mpi_i6(var)
     128  IMPLICIT NONE
     129    INTEGER,INTENT(INOUT) :: Var(:,:,:,:,:,:)
     130   
     131    CALL bcast_mpi_igen(Var,size(Var))
     132
     133  END SUBROUTINE bcast_mpi_i6
     134
    119135
    120136!! -- Les reels -- !!
     
    164180  END SUBROUTINE bcast_mpi_r4
    165181 
     182  SUBROUTINE bcast_mpi_r5(var)
     183  IMPLICIT NONE
     184    REAL,INTENT(INOUT) :: Var(:,:,:,:,:)
     185   
     186    CALL bcast_mpi_rgen(Var,size(Var))
     187
     188  END SUBROUTINE bcast_mpi_r5
     189 
     190  SUBROUTINE bcast_mpi_r6(var)
     191  IMPLICIT NONE
     192    REAL,INTENT(INOUT) :: Var(:,:,:,:,:,:)
     193   
     194    CALL bcast_mpi_rgen(Var,size(Var))
     195
     196  END SUBROUTINE bcast_mpi_r6
     197 
     198
    166199!! -- Les booleans -- !!
    167200
     
    210243  END SUBROUTINE bcast_mpi_l4
    211244 
     245  SUBROUTINE bcast_mpi_l5(var)
     246  IMPLICIT NONE
     247    LOGICAL,INTENT(INOUT) :: Var(:,:,:,:,:)
     248   
     249    CALL bcast_mpi_lgen(Var,size(Var))
     250
     251  END SUBROUTINE bcast_mpi_l5
     252
     253  SUBROUTINE bcast_mpi_l6(var)
     254  IMPLICIT NONE
     255    LOGICAL,INTENT(INOUT) :: Var(:,:,:,:,:,:)
     256   
     257    CALL bcast_mpi_lgen(Var,size(Var))
     258
     259  END SUBROUTINE bcast_mpi_l6
     260 
     261
    212262!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    213263!! Definition des Scatter   --> 4D   !!
  • trunk/LMDZ.COMMON/libf/phy_common/mod_phys_lmdz_omp_transfert.F90

    r1543 r3011  
    2323  INTERFACE bcast_omp
    2424    MODULE PROCEDURE bcast_omp_c,                                                     &
    25                      bcast_omp_i,bcast_omp_i1,bcast_omp_i2,bcast_omp_i3,bcast_omp_i4, &
    26                      bcast_omp_r,bcast_omp_r1,bcast_omp_r2,bcast_omp_r3,bcast_omp_r4, &
    27                      bcast_omp_l,bcast_omp_l1,bcast_omp_l2,bcast_omp_l3,bcast_omp_l4
     25                     bcast_omp_i,bcast_omp_i1,bcast_omp_i2,bcast_omp_i3,bcast_omp_i4,bcast_omp_i5,bcast_omp_i6, &
     26                     bcast_omp_r,bcast_omp_r1,bcast_omp_r2,bcast_omp_r3,bcast_omp_r4,bcast_omp_r5,bcast_omp_r6, &
     27                     bcast_omp_l,bcast_omp_l1,bcast_omp_l2,bcast_omp_l3,bcast_omp_l4,bcast_omp_l5,bcast_omp_l6
    2828  END INTERFACE
    2929
     
    176176
    177177
     178  SUBROUTINE bcast_omp_i5(var)
     179  IMPLICIT NONE
     180    INTEGER,INTENT(INOUT) :: Var(:,:,:,:,:)
     181   
     182    CALL check_buffer_i(size(Var))
     183    CALL bcast_omp_igen(Var,size(Var),buffer_i)
     184
     185  END SUBROUTINE bcast_omp_i5
     186
     187
     188  SUBROUTINE bcast_omp_i6(var)
     189  IMPLICIT NONE
     190    INTEGER,INTENT(INOUT) :: Var(:,:,:,:,:,:)
     191   
     192    CALL check_buffer_i(size(Var))
     193    CALL bcast_omp_igen(Var,size(Var),buffer_i)
     194
     195  END SUBROUTINE bcast_omp_i6
     196
     197
    178198!! -- Les reels -- !!
    179199
     
    231251
    232252 
     253  SUBROUTINE bcast_omp_r5(var)
     254  IMPLICIT NONE
     255    REAL,INTENT(INOUT) :: Var(:,:,:,:,:)
     256   
     257    CALL check_buffer_r(size(Var))
     258    CALL bcast_omp_rgen(Var,size(Var),buffer_r)
     259
     260  END SUBROUTINE bcast_omp_r5
     261
     262 
     263  SUBROUTINE bcast_omp_r6(var)
     264  IMPLICIT NONE
     265    REAL,INTENT(INOUT) :: Var(:,:,:,:,:,:)
     266   
     267    CALL check_buffer_r(size(Var))
     268    CALL bcast_omp_rgen(Var,size(Var),buffer_r)
     269
     270  END SUBROUTINE bcast_omp_r6
     271
     272 
    233273!! -- Les booleans -- !!
    234274
     
    286326
    287327
     328  SUBROUTINE bcast_omp_l5(var)
     329  IMPLICIT NONE
     330    LOGICAL,INTENT(INOUT) :: Var(:,:,:,:,:)
     331   
     332    CALL check_buffer_l(size(Var))
     333    CALL bcast_omp_lgen(Var,size(Var),buffer_l)
     334
     335  END SUBROUTINE bcast_omp_l5
     336
     337
     338  SUBROUTINE bcast_omp_l6(var)
     339  IMPLICIT NONE
     340    LOGICAL,INTENT(INOUT) :: Var(:,:,:,:,:,:)
     341   
     342    CALL check_buffer_l(size(Var))
     343    CALL bcast_omp_lgen(Var,size(Var),buffer_l)
     344
     345  END SUBROUTINE bcast_omp_l6
     346
    288347
    289348!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • trunk/LMDZ.COMMON/libf/phy_common/mod_phys_lmdz_transfert_para.F90

    r1521 r3011  
    1111  INTERFACE bcast
    1212    MODULE PROCEDURE bcast_c,                                     &
    13                      bcast_i,bcast_i1,bcast_i2,bcast_i3,bcast_i4, &
    14                      bcast_r,bcast_r1,bcast_r2,bcast_r3,bcast_r4, &
    15                      bcast_l,bcast_l1,bcast_l2,bcast_l3,bcast_l4
     13                     bcast_i,bcast_i1,bcast_i2,bcast_i3,bcast_i4,bcast_i5,bcast_i6, &
     14                     bcast_r,bcast_r1,bcast_r2,bcast_r3,bcast_r4,bcast_r5,bcast_r6, &
     15                     bcast_l,bcast_l1,bcast_l2,bcast_l3,bcast_l4,bcast_l5,bcast_l6
    1616  END INTERFACE
    1717
     
    126126
    127127 
     128  SUBROUTINE bcast_i5(var)
     129  IMPLICIT NONE
     130    INTEGER,INTENT(INOUT) :: Var(:,:,:,:,:)
     131   
     132!$OMP MASTER
     133    CALL bcast_mpi(Var)
     134!$OMP END MASTER
     135    CALL bcast_omp(Var)
     136   
     137  END SUBROUTINE bcast_i5
     138
     139
     140  SUBROUTINE bcast_i6(var)
     141  IMPLICIT NONE
     142    INTEGER,INTENT(INOUT) :: Var(:,:,:,:,:,:)
     143   
     144!$OMP MASTER
     145    CALL bcast_mpi(Var)
     146!$OMP END MASTER
     147    CALL bcast_omp(Var)
     148   
     149  END SUBROUTINE bcast_i6
     150
     151
    128152!! -- Les reels -- !!
    129153 
     
    187211
    188212
     213  SUBROUTINE bcast_r5(var)
     214  IMPLICIT NONE
     215    REAL,INTENT(INOUT) :: Var(:,:,:,:,:)
     216   
     217!$OMP MASTER
     218    CALL bcast_mpi(Var)
     219!$OMP END MASTER
     220    CALL bcast_omp(Var)
     221   
     222  END SUBROUTINE bcast_r5
     223
     224
     225  SUBROUTINE bcast_r6(var)
     226  IMPLICIT NONE
     227    REAL,INTENT(INOUT) :: Var(:,:,:,:,:,:)
     228   
     229!$OMP MASTER
     230    CALL bcast_mpi(Var)
     231!$OMP END MASTER
     232    CALL bcast_omp(Var)
     233   
     234  END SUBROUTINE bcast_r6
     235
     236
    189237!! -- Les booleens -- !!
    190238 
     
    245293   
    246294  END SUBROUTINE bcast_l4
     295
     296
     297  SUBROUTINE bcast_l5(var)
     298  IMPLICIT NONE
     299    LOGICAL,INTENT(INOUT) :: Var(:,:,:,:,:)
     300   
     301!$OMP MASTER
     302    CALL bcast_mpi(Var)
     303!$OMP END MASTER
     304    CALL bcast_omp(Var)
     305   
     306  END SUBROUTINE bcast_l5
     307
     308
     309  SUBROUTINE bcast_l6(var)
     310  IMPLICIT NONE
     311    LOGICAL,INTENT(INOUT) :: Var(:,:,:,:,:,:)
     312   
     313!$OMP MASTER
     314    CALL bcast_mpi(Var)
     315!$OMP END MASTER
     316    CALL bcast_omp(Var)
     317   
     318  END SUBROUTINE bcast_l6
    247319
    248320
Note: See TracChangeset for help on using the changeset viewer.