Changeset 5158 for LMDZ6/branches/Amaury_dev/libf/dyn3dmem/bands.F90
- Timestamp:
- Aug 2, 2024, 2:12:03 PM (7 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/bands.F90
r5134 r5158 62 62 63 63 IF (ierr==0) THEN 64 doi=0,mpi_size-164 DO i=0,mpi_size-1 65 65 read (unit_number,*) j,jj_nb_caldyn(i) 66 66 enddo 67 67 68 doi=0,mpi_size-168 DO i=0,mpi_size-1 69 69 read (unit_number,*) j,jj_nb_vanleer(i) 70 70 enddo 71 71 72 doi=0,mpi_size-172 DO i=0,mpi_size-1 73 73 read (unit_number,*) j,jj_nb_dissip(i) 74 74 enddo 75 75 76 doi=0,mpi_size-176 DO i=0,mpi_size-1 77 77 read (unit_number,*) j,distrib_phys(i) 78 78 enddo 79 80 CLOSE(unit_number) 79 80 CLOSE(unit_number) 81 81 82 82 else 83 doi=0,mpi_size-183 DO i=0,mpi_size-1 84 84 jj_nb_caldyn(i)=(jjm+1)/mpi_size 85 85 IF (i<MOD(jjm+1,mpi_size)) jj_nb_caldyn(i)=jj_nb_caldyn(i)+1 86 86 enddo 87 87 … … 89 89 jj_nb_dissip(:)=jj_nb_caldyn(:) 90 90 91 doi=0,mpi_size-192 93 94 91 DO i=0,mpi_size-1 92 distrib_phys(i)=(iim*(jjm-1)+2)/mpi_size 93 IF (i<MOD(iim*(jjm-1)+2,mpi_size)) distrib_phys(i)=distrib_phys(i)+1 94 enddo 95 95 endif 96 96 … … 110 110 INTEGER :: jj_para_end(0:mpi_size-1) 111 111 112 doi=0,mpi_size-1112 DO i=0,mpi_size-1 113 113 jj_nb_vanleer2(i)=(jjm+1)/mpi_size 114 114 IF (i<MOD(jjm+1,mpi_size)) jj_nb_vanleer2(i)=jj_nb_vanleer2(i)+1 115 115 enddo 116 116 … … 126 126 ENDDO 127 127 128 doi=0,MPI_Size-1128 DO i=0,MPI_Size-1 129 129 jj_Nb_physic(i)=jj_para_end(i)-jj_para_begin(i)+1 130 130 IF (i/=0) THEN … … 135 135 enddo 136 136 137 doi=0,MPI_Size-1137 DO i=0,MPI_Size-1 138 138 jj_Nb_physic_bis(i)=jj_para_end(i)-jj_para_begin(i)+1 139 139 IF (i/=0) THEN … … 141 141 jj_Nb_physic_bis(i)=jj_Nb_physic_bis(i)-1 142 142 else 143 144 145 143 jj_Nb_physic_bis(i-1)=jj_Nb_physic_bis(i-1)+1 144 jj_Nb_physic_bis(i)=jj_Nb_physic_bis(i)-1 145 ENDIF 146 146 endif 147 147 enddo … … 193 193 CALL allgather_timer_average 194 194 195 doi=0,mpi_size-1195 DO i=0,mpi_size-1 196 196 value(i)=timer_average(jj_nb_caldyn(i),timer_caldyn,i) 197 198 enddo 199 200 doi=0,mpi_size-2201 doj=i+1,mpi_size-1202 203 204 205 206 207 208 209 210 211 197 index(i)=i 198 enddo 199 200 DO i=0,mpi_size-2 201 DO j=i+1,mpi_size-1 202 IF (value(i)>value(j)) THEN 203 tmpvalue=value(i) 204 value(i)=value(j) 205 value(j)=tmpvalue 206 207 tmpindex=index(i) 208 index(i)=index(j) 209 index(j)=tmpindex 210 endif 211 enddo 212 212 enddo 213 213 … … 215 215 max_proc=index(mpi_size-1) 216 216 217 doi=0,mpi_size-2217 DO i=0,mpi_size-2 218 218 minvalue=value(i) 219 219 min_proc=index(i) … … 222 222 jj_nb_caldyn(min_proc)=jj_nb_caldyn(min_proc)+1 223 223 jj_nb_caldyn(max_proc)=jj_nb_caldyn(max_proc)-1 224 224 exit 225 225 else 226 226 IF (timer_average(jj_nb_caldyn(min_proc)+1,timer_caldyn,min_proc) & 227 227 -timer_delta(jj_nb_caldyn(min_proc)+1,timer_caldyn,min_proc) < maxvalue) THEN 228 228 jj_nb_caldyn(min_proc)=jj_nb_caldyn(min_proc)+1 229 229 jj_nb_caldyn(max_proc)=jj_nb_caldyn(max_proc)-1 230 230 exit 231 231 endif 232 232 endif 233 233 endif … … 260 260 CALL allgather_timer_average 261 261 262 doi=0,mpi_size-1262 DO i=0,mpi_size-1 263 263 value(i)=timer_average(jj_nb_vanleer(i),timer_vanleer,i) 264 265 enddo 266 267 doi=0,mpi_size-2268 doj=i+1,mpi_size-1269 270 271 272 273 274 275 276 277 278 264 index(i)=i 265 enddo 266 267 DO i=0,mpi_size-2 268 DO j=i+1,mpi_size-1 269 IF (value(i)>value(j)) THEN 270 tmpvalue=value(i) 271 value(i)=value(j) 272 value(j)=tmpvalue 273 274 tmpindex=index(i) 275 index(i)=index(j) 276 index(j)=tmpindex 277 endif 278 enddo 279 279 enddo 280 280 … … 282 282 max_proc=index(mpi_size-1) 283 283 284 doi=0,mpi_size-2284 DO i=0,mpi_size-2 285 285 minvalue=value(i) 286 286 min_proc=index(i) … … 291 291 jj_nb_vanleer(min_proc)=jj_nb_vanleer(min_proc)+1 292 292 jj_nb_vanleer(max_proc)=jj_nb_vanleer(max_proc)-1 293 293 exit 294 294 else 295 295 IF (timer_average(jj_nb_vanleer(min_proc)+1,timer_vanleer,min_proc) < maxvalue) THEN … … 297 297 jj_nb_vanleer(max_proc)=jj_nb_vanleer(max_proc)-1 298 298 exit 299 299 endif 300 300 endif 301 301 endif … … 329 329 CALL allgather_timer_average 330 330 331 doi=0,mpi_size-1331 DO i=0,mpi_size-1 332 332 value(i)=timer_average(jj_nb_dissip(i),timer_dissip,i) 333 334 enddo 335 336 doi=0,mpi_size-2337 doj=i+1,mpi_size-1338 339 340 341 342 343 344 345 346 347 333 index(i)=i 334 enddo 335 336 DO i=0,mpi_size-2 337 DO j=i+1,mpi_size-1 338 IF (value(i)>value(j)) THEN 339 tmpvalue=value(i) 340 value(i)=value(j) 341 value(j)=tmpvalue 342 343 tmpindex=index(i) 344 index(i)=index(j) 345 index(j)=tmpindex 346 endif 347 enddo 348 348 enddo 349 349 … … 351 351 max_proc=index(mpi_size-1) 352 352 353 doi=0,mpi_size-2353 DO i=0,mpi_size-2 354 354 minvalue=value(i) 355 355 min_proc=index(i) … … 359 359 jj_nb_dissip(min_proc)=jj_nb_dissip(min_proc)+1 360 360 jj_nb_dissip(max_proc)=jj_nb_dissip(max_proc)-1 361 361 exit 362 362 else 363 363 IF (timer_average(jj_nb_dissip(min_proc)+1,timer_dissip,min_proc) & 364 364 - timer_delta(jj_nb_dissip(min_proc)+1,timer_dissip,min_proc) < maxvalue) THEN 365 365 jj_nb_dissip(min_proc)=jj_nb_dissip(min_proc)+1 366 366 jj_nb_dissip(max_proc)=jj_nb_dissip(max_proc)-1 367 367 exit 368 368 endif 369 369 endif 370 370 endif … … 401 401 402 402 medium=0 403 doi=0,mpi_size-1403 DO i=0,mpi_size-1 404 404 value(i)=timer_average(jj_nb_physic(i),timer_physic,i) 405 405 medium=medium+value(i) 406 406 enddo 407 407 … … 409 409 NbTot=0 410 410 IF (CPPKEY_PHYS) THEN 411 doi=0,mpi_size-1411 DO i=0,mpi_size-1 412 412 Inc(i)=nint(klon_mpi_para_nb(i)*(medium-value(i))/value(i)) 413 413 NbTot=NbTot+Inc(i) … … 418 418 else 419 419 Sgn=-1 420 420 NbTot=-NbTot 421 421 endif 422 422 423 423 Index=0 424 doi=1,NbTot424 DO i=1,NbTot 425 425 Inc(Index)=Inc(Index)-Sgn 426 427 428 enddo 429 430 doi=0,mpi_size-1426 Index=Index+1 427 IF (Index>mpi_size-1) Index=0 428 enddo 429 430 DO i=0,mpi_size-1 431 431 distrib_phys(i)=klon_mpi_para_nb(i)+inc(i) 432 432 enddo … … 457 457 458 458 IF (ierr==0) THEN 459 ! 460 doi=0,mpi_size-1459 ! write (unit_number,*) '*** Bandes caldyn ***' 460 DO i=0,mpi_size-1 461 461 write (unit_number,*) i,jj_nb_caldyn(i) 462 462 enddo 463 463 464 ! write (unit_number,*) '*** Bandes vanleer ***'465 doi=0,mpi_size-1464 ! write (unit_number,*) '*** Bandes vanleer ***' 465 DO i=0,mpi_size-1 466 466 write (unit_number,*) i,jj_nb_vanleer(i) 467 467 enddo 468 468 469 469 ! write (unit_number,*) '*** Bandes dissip ***' 470 doi=0,mpi_size-1470 DO i=0,mpi_size-1 471 471 write (unit_number,*) i,jj_nb_dissip(i) 472 472 enddo 473 473 474 doi=0,mpi_size-1474 DO i=0,mpi_size-1 475 475 write (unit_number,*) i,distrib_phys(i) 476 476 enddo 477 477 478 478 CLOSE(unit_number) 479 479 else
Note: See TracChangeset
for help on using the changeset viewer.