Changeset 854
- Timestamp:
- Oct 23, 2007, 2:03:16 PM (17 years ago)
- Location:
- LMDZ4/trunk/libf
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/dyn3dpar/gcm.F
r807 r854 230 230 #ifdef INCA 231 231 call init_const_lmdz(nbtrac,anneeref,dayref,iphysiq,day_step,nday) 232 call init_inca_para(iim,jjm+1,klon_glo,mpi_size,klon_mpi_para_nb) 232 call init_inca_para(iim,jjm+1,klon_glo,mpi_size,klon_mpi_para_nb, 233 $ COMM_LMDZ) 233 234 #endif 234 235 -
LMDZ4/trunk/libf/dyn3dpar/vlspltgen_p.F
r774 r854 184 184 185 185 call vlx_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu, 186 & ij_begin,ij_begin+2*iip1-1) 187 call vlx_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu, 188 & ij_end-2*iip1+1,ij_end) 186 & ij_begin,ij_end) 189 187 190 188 c$OMP MASTER … … 197 195 198 196 call vlxqs_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,qsat, 199 & ij_begin,ij_begin+2*iip1-1) 200 call vlxqs_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,qsat, 201 & ij_end-2*iip1+1,ij_end) 197 & ij_begin,ij_end) 202 198 c$OMP MASTER 203 199 call VTb(VTHallo) … … 219 215 call VTb(VTHallo) 220 216 call SendRequest(MyRequest1) 221 call VTe(VTHallo)222 c$OMP END MASTER223 c$OMP BARRIER224 do iq=1,nqmx225 226 if(iadv(iq) == 0) then227 228 cycle229 230 else if (iadv(iq)==10) then231 232 call vlx_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,233 & ij_begin+2*iip1,ij_end-2*iip1)234 235 else if (iadv(iq)==14) then236 237 call vlxqs_p(zq(1,1,iq),pente_max,zm(1,1,iq),mu,qsat,238 & ij_begin+2*iip1,ij_end-2*iip1)239 240 else241 242 stop 'vlspltgen_p : schema non parallelise'243 244 endif245 246 enddo247 c$OMP BARRIER248 c$OMP MASTER249 call VTb(VTHallo)250 217 call WaitRecvRequest(MyRequest1) 251 218 call WaitSendRequest(MyRequest1) … … 286 253 c$OMP BARRIER 287 254 call vlz_p(zq(1,1,iq),pente_max,zm(1,1,iq),mw, 288 & ij_begin,ij_begin+2*iip1-1) 289 call vlz_p(zq(1,1,iq),pente_max,zm(1,1,iq),mw, 290 & ij_end-2*iip1+1,ij_end) 255 & ij_begin,ij_end) 291 256 c$OMP BARRIER 292 257 … … 309 274 call VTb(VTHallo) 310 275 call SendRequest(MyRequest2) 311 call VTe(VTHallo)312 c$OMP END MASTER313 c$OMP BARRIER314 do iq=1,nqmx315 316 if(iadv(iq) == 0) then317 318 cycle319 320 else if (iadv(iq)==10 .or. iadv(iq)==14 ) then321 c$OMP BARRIER322 call vlz_p(zq(1,1,iq),pente_max,zm(1,1,iq),mw,323 & ij_begin+2*iip1,ij_end-2*iip1)324 c$OMP BARRIER325 else326 327 stop 'vlspltgen_p : schema non parallelise'328 329 endif330 331 enddo332 333 c$OMP BARRIER334 c$OMP MASTER335 call VTb(VTHallo)336 276 call WaitRecvRequest(MyRequest2) 337 277 call WaitSendRequest(MyRequest2) -
LMDZ4/trunk/libf/phylmd/surf_land_orchidee_mod.F90
r818 r854 485 485 INTEGER :: MyLastPoint 486 486 INTEGER :: LastPoint 487 INTEGER :: mpi_rank 488 INTEGER :: mpi_size 489 INTEGER :: ierr 487 INTEGER :: mpi_rank_orch 488 INTEGER :: mpi_size_orch 489 INTEGER :: ierr 490 490 ! 491 491 ! End definition … … 496 496 IF (is_parallel) THEN 497 497 #ifdef CPP_PARA 498 CALL MPI_COMM_SIZE(orch_comm,mpi_size ,ierr)499 CALL MPI_COMM_RANK(orch_comm,mpi_rank ,ierr)498 CALL MPI_COMM_SIZE(orch_comm,mpi_size_orch,ierr) 499 CALL MPI_COMM_RANK(orch_comm,mpi_rank_orch,ierr) 500 500 #endif 501 501 ELSE 502 mpi_rank =0503 mpi_size =1504 ENDIF 505 502 mpi_rank_orch=0 503 mpi_size_orch=1 504 ENDIF 505 506 506 IF (is_parallel) THEN 507 IF ( .NOT. is_north_pole) THEN507 IF (mpi_rank_orch /= 0) THEN 508 508 #ifdef CPP_PARA 509 CALL MPI_RECV(LastPoint,1,MPI_INTEGER,mpi_rank -1,1234,orch_comm,status,ierr)510 #endif 511 ENDIF 512 513 IF ( .NOT. is_south_pole) THEN509 CALL MPI_RECV(LastPoint,1,MPI_INTEGER,mpi_rank_orch-1,1234,orch_comm,status,ierr) 510 #endif 511 ENDIF 512 513 IF (mpi_rank_orch /= mpi_size_orch-1) THEN 514 514 #ifdef CPP_PARA 515 CALL MPI_SEND(MyLastPoint,1,MPI_INTEGER,mpi_rank +1,1234,orch_comm,ierr)516 #endif 517 ENDIF 518 ENDIF 519 520 IF ( is_north_pole) THEN515 CALL MPI_SEND(MyLastPoint,1,MPI_INTEGER,mpi_rank_orch+1,1234,orch_comm,ierr) 516 #endif 517 ENDIF 518 ENDIF 519 520 IF (mpi_rank_orch == 0) THEN 521 521 offset=0 522 522 ELSE -
LMDZ4/trunk/libf/phytherm/surf_land_orchidee_mod.F90
r837 r854 485 485 INTEGER :: MyLastPoint 486 486 INTEGER :: LastPoint 487 INTEGER :: mpi_rank 488 INTEGER :: mpi_size 489 INTEGER :: ierr 487 INTEGER :: mpi_rank_orch 488 INTEGER :: mpi_size_orch 489 INTEGER :: ierr 490 490 ! 491 491 ! End definition … … 496 496 IF (is_parallel) THEN 497 497 #ifdef CPP_PARA 498 CALL MPI_COMM_SIZE(orch_comm,mpi_size ,ierr)499 CALL MPI_COMM_RANK(orch_comm,mpi_rank ,ierr)498 CALL MPI_COMM_SIZE(orch_comm,mpi_size_orch,ierr) 499 CALL MPI_COMM_RANK(orch_comm,mpi_rank_orch,ierr) 500 500 #endif 501 501 ELSE 502 mpi_rank =0503 mpi_size =1504 ENDIF 505 502 mpi_rank_orch=0 503 mpi_size_orch=1 504 ENDIF 505 506 506 IF (is_parallel) THEN 507 IF ( .NOT. is_north_pole) THEN507 IF (mpi_rank_orch /= 0) THEN 508 508 #ifdef CPP_PARA 509 CALL MPI_RECV(LastPoint,1,MPI_INTEGER,mpi_rank -1,1234,orch_comm,status,ierr)510 #endif 511 ENDIF 512 513 IF ( .NOT. is_south_pole) THEN509 CALL MPI_RECV(LastPoint,1,MPI_INTEGER,mpi_rank_orch-1,1234,orch_comm,status,ierr) 510 #endif 511 ENDIF 512 513 IF (mpi_rank_orch /= mpi_size_orch-1) THEN 514 514 #ifdef CPP_PARA 515 CALL MPI_SEND(MyLastPoint,1,MPI_INTEGER,mpi_rank +1,1234,orch_comm,ierr)516 #endif 517 ENDIF 518 ENDIF 519 520 IF ( is_north_pole) THEN515 CALL MPI_SEND(MyLastPoint,1,MPI_INTEGER,mpi_rank_orch+1,1234,orch_comm,ierr) 516 #endif 517 ENDIF 518 ENDIF 519 520 IF (mpi_rank_orch == 0) THEN 521 521 offset=0 522 522 ELSE
Note: See TracChangeset
for help on using the changeset viewer.