Changeset 2587 for branches/TAM_V3_0/NEMOTAM/OPATAM_SRC/mpp_tam.F90
- Timestamp:
- 2011-02-15T12:58:59+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/TAM_V3_0/NEMOTAM/OPATAM_SRC/mpp_tam.F90
r1885 r2587 47 47 & mpp_sum_reals, & 48 48 & mpp_global_or, & 49 & mpp_global_max_real 49 & mpp_global_max_real, & 50 & mpp_global_max_real2 50 51 51 52 CONTAINS … … 151 152 SUBROUTINE mpp_global_max_real( zin, zout ) 152 153 !!---------------------------------------------------------------------- 153 !! *** ROUTINE mpp_global_ or***154 !! *** ROUTINE mpp_global_max_real *** 154 155 !! 155 156 !! ** Purpose : Copy a local zin array to a global array and … … 213 214 END SUBROUTINE mpp_global_max_real 214 215 216 217 SUBROUTINE mpp_global_max_real2( zin, zout ) 218 !!---------------------------------------------------------------------- 219 !! *** ROUTINE mpp_global_max_real2 *** 220 !! 221 !! ** Purpose : Copy a local zin array to a global array and 222 !! apply the "max" operation for all elements in 223 !! a global (jpiglo,jpjglo) array across processors 224 !! 225 !! ** Method : MPI allreduce 226 !! 227 !! ** Action : This does only work for MPI. 228 !! It does not work for SHMEM. 229 !! 230 !! References : http://www.mpi-forum.org 231 !! 232 !! History : 233 !! ! 08-01 (K. Mogensen) Original code 234 !!---------------------------------------------------------------------- 235 236 !! * Arguments 237 REAL(wp), DIMENSION(jpi,jpj), INTENT(IN) :: & 238 & zin 239 REAL(wp), DIMENSION(jpiglo,jpjglo), INTENT(OUT) :: & 240 & zout 241 !! * Local declarations 242 INTEGER :: & 243 & ierr 244 #if defined key_mpp_mpi 245 #include <mpif.h> 246 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: & 247 & zcp 248 INTEGER :: & 249 & ji, & 250 & jj 251 252 ! Copy data for input to MPI 253 254 ALLOCATE( & 255 & zcp(jpiglo,jpjglo) & 256 & ) 257 zcp(:,:) = -1e+38 258 DO jj = nldj, nlej 259 DO ji = nldi, nlei 260 zcp(mig(ji),mjg(jj)) = zin(ji,jj) 261 ENDDO 262 ENDDO 263 264 ! Call the MPI library to find the coast lines globally 265 266 CALL mpi_allreduce( zcp, zout, jpiglo*jpjglo, mpivar, & 267 & mpi_max, mpi_comm_opa, ierr ) 268 269 DEALLOCATE( & 270 & zcp & 271 & ) 272 273 #elif defined key_mpp_shmem 274 #error "Only MPI support for MPP in NEMOVAR" 275 #else 276 zout(:,:) = zin(:,:) 277 #endif 278 279 END SUBROUTINE mpp_global_max_real2 280 215 281 END MODULE mpp_tam
Note: See TracChangeset
for help on using the changeset viewer.