- Timestamp:
- 07/22/14 16:00:02 (10 years ago)
- Location:
- codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/init_phys_lmdz.F90
r222 r245 2 2 ! $Id$ 3 3 ! 4 SUBROUTINE init_phys_lmdz(iim,jjp1,llm, nb_proc,distrib)4 SUBROUTINE init_phys_lmdz(iim,jjp1,llm,comm_lmdz,nb_proc,distrib) 5 5 USE mod_phys_lmdz_omp_data, only: klon_omp 6 6 USE mod_grid_phy_lmdz, only: nbp_lev … … 13 13 INTEGER,INTENT(in) :: iim 14 14 INTEGER,INTENT(in) :: jjp1 15 INTEGER,INTENT(in) :: comm_lmdz 15 16 INTEGER,INTENT(in) :: llm 16 17 INTEGER,INTENT(in) :: nb_proc … … 19 20 20 21 CALL init_grid_phy_lmdz(iim,jjp1,sum(distrib),llm) 21 CALL init_phys_lmdz_para(iim,jjp1, nb_proc,distrib)22 CALL init_phys_lmdz_para(iim,jjp1,comm_lmdz,nb_proc,distrib) 22 23 !$OMP PARALLEL 23 24 CALL init_dimphy(klon_omp,nbp_lev) -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/iostart.F90
r227 r245 422 422 INTEGER :: ierr 423 423 424 IF (is_mpi_ root .AND. is_omp_root) THEN424 IF (is_mpi_master .AND. is_omp_master) THEN 425 425 426 426 ierr=NF90_INQ_VARID(nid_start,var_name,varid) -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/mod_phys_lmdz_mpi_data.F90
r227 r245 3 3 ! 4 4 MODULE mod_phys_lmdz_mpi_data 5 USE mod_const_mpi, only: MPI_REAL_LMDZ, COMM_LMDZ6 5 6 INTEGER,SAVE :: MPI_REAL_LMDZ 7 7 INTEGER,SAVE :: ii_begin 8 8 INTEGER,SAVE :: ii_end … … 40 40 INTEGER,SAVE :: mpi_rank 41 41 INTEGER,SAVE :: mpi_size 42 INTEGER,SAVE :: mpi_ root43 LOGICAL,SAVE :: is_mpi_ root42 INTEGER,SAVE :: mpi_master 43 LOGICAL,SAVE :: is_mpi_master 44 44 LOGICAL,SAVE :: is_using_mpi 45 !!$OMP THREADPRIVATE(mpi_rank,mpi_size,mpi_ root,is_mpi_root,is_using_mpi)45 !!$OMP THREADPRIVATE(mpi_rank,mpi_size,mpi_master,is_mpi_master,is_using_mpi) 46 46 47 47 … … 53 53 CONTAINS 54 54 55 SUBROUTINE Init_phys_lmdz_mpi_data(iim,jjp1,nb_proc,distrib) 56 USE mod_const_mpi, ONLY : COMM_LMDZ 55 SUBROUTINE Init_phys_lmdz_mpi_data(iim,jjp1,comm_lmdz, nb_proc,distrib) 57 56 IMPLICIT NONE 58 57 INTEGER,INTENT(in) :: iim 59 58 INTEGER,INTENT(in) :: jjp1 59 INTEGER,INTENT(in) :: comm_lmdz 60 60 INTEGER,INTENT(in) :: nb_proc 61 61 INTEGER,INTENT(in) :: distrib(0:nb_proc-1) … … 66 66 67 67 #ifdef CPP_MPI 68 INCLUDE 'mpif.h' 68 69 is_using_mpi=.TRUE. 69 70 #else … … 78 79 endif 79 80 80 COMM_LMDZ_PHY= COMM_LMDZ81 COMM_LMDZ_PHY=comm_lmdz 81 82 82 83 IF (is_using_mpi) THEN 83 84 #ifdef CPP_MPI 85 MPI_REAL_LMDZ = MPI_REAL8 84 86 CALL MPI_COMM_SIZE(COMM_LMDZ_PHY,mpi_size,ierr) 85 87 CALL MPI_COMM_RANK(COMM_LMDZ_PHY,mpi_rank,ierr) … … 91 93 92 94 IF (mpi_rank == 0) THEN 93 mpi_ root= 094 is_mpi_ root= .true.95 mpi_master = 0 96 is_mpi_master = .true. 95 97 ENDIF 96 98 … … 198 200 WRITE(*,*) 'jj_para_nb =', jj_para_nb 199 201 WRITE(*,*) 'jj_para_begin =', jj_para_begin 200 WRITE(*,*) 'jj_para_end =', jj_para_end 202 WRITE(*,*) 'jj_para_end =', jj_para_end 201 203 WRITE(*,*) 'ii_para_begin =', ii_para_begin 202 204 WRITE(*,*) 'ii_para_end =', ii_para_end … … 209 211 WRITE(*,*) 'mpi_rank =', mpi_rank 210 212 WRITE(*,*) 'mpi_size =', mpi_size 211 WRITE(*,*) 'mpi_ root =', mpi_root212 WRITE(*,*) 'is_mpi_ root =', is_mpi_root213 WRITE(*,*) 'mpi_master =', mpi_master 214 WRITE(*,*) 'is_mpi_master =', is_mpi_master 213 215 WRITE(*,*) 'is_north_pole =', is_north_pole 214 216 WRITE(*,*) 'is_south_pole =', is_south_pole -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/mod_phys_lmdz_mpi_transfert.F90
r222 r245 73 73 74 74 SUBROUTINE bcast_mpi_i(var) 75 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root75 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 76 76 IMPLICIT NONE 77 77 INTEGER,INTENT(INOUT) :: Var … … 79 79 INTEGER :: var_tmp(1) 80 80 81 IF (is_mpi_ root) var_tmp(1)=var81 IF (is_mpi_master) var_tmp(1)=var 82 82 CALL bcast_mpi_igen(Var_tmp,1) 83 83 var=var_tmp(1) … … 121 121 122 122 SUBROUTINE bcast_mpi_r(var) 123 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root123 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 124 124 IMPLICIT NONE 125 125 REAL,INTENT(INOUT) :: Var 126 126 REAL :: var_tmp(1) 127 127 128 IF (is_mpi_ root) var_tmp(1)=var128 IF (is_mpi_master) var_tmp(1)=var 129 129 CALL bcast_mpi_rgen(Var_tmp,1) 130 130 var=var_tmp(1) … … 167 167 168 168 SUBROUTINE bcast_mpi_l(var) 169 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root169 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 170 170 IMPLICIT NONE 171 171 LOGICAL,INTENT(INOUT) :: Var 172 172 LOGICAL :: var_tmp(1) 173 173 174 IF (is_mpi_ root) var_tmp(1)=var174 IF (is_mpi_master) var_tmp(1)=var 175 175 CALL bcast_mpi_lgen(Var_tmp,1) 176 176 var=var_tmp(1) … … 215 215 216 216 SUBROUTINE scatter_mpi_i(VarIn, VarOut) 217 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root217 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 218 218 IMPLICIT NONE 219 219 … … 226 226 227 227 SUBROUTINE scatter_mpi_i1(VarIn, VarOut) 228 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root228 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 229 229 IMPLICIT NONE 230 230 … … 237 237 238 238 SUBROUTINE scatter_mpi_i2(VarIn, VarOut) 239 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root239 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 240 240 IMPLICIT NONE 241 241 … … 248 248 249 249 SUBROUTINE scatter_mpi_i3(VarIn, VarOut) 250 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root250 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 251 251 IMPLICIT NONE 252 252 … … 260 260 261 261 SUBROUTINE scatter_mpi_r(VarIn, VarOut) 262 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root262 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 263 263 IMPLICIT NONE 264 264 … … 271 271 272 272 SUBROUTINE scatter_mpi_r1(VarIn, VarOut) 273 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root273 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 274 274 IMPLICIT NONE 275 275 … … 282 282 283 283 SUBROUTINE scatter_mpi_r2(VarIn, VarOut) 284 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root284 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 285 285 IMPLICIT NONE 286 286 … … 293 293 294 294 SUBROUTINE scatter_mpi_r3(VarIn, VarOut) 295 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root295 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 296 296 IMPLICIT NONE 297 297 … … 305 305 306 306 SUBROUTINE scatter_mpi_l(VarIn, VarOut) 307 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root307 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 308 308 IMPLICIT NONE 309 309 … … 316 316 317 317 SUBROUTINE scatter_mpi_l1(VarIn, VarOut) 318 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root318 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 319 319 IMPLICIT NONE 320 320 … … 327 327 328 328 SUBROUTINE scatter_mpi_l2(VarIn, VarOut) 329 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root329 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 330 330 IMPLICIT NONE 331 331 … … 338 338 339 339 SUBROUTINE scatter_mpi_l3(VarIn, VarOut) 340 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root340 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 341 341 IMPLICIT NONE 342 342 … … 355 355 356 356 SUBROUTINE gather_mpi_i(VarIn, VarOut) 357 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root357 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 358 358 IMPLICIT NONE 359 359 … … 369 369 370 370 SUBROUTINE gather_mpi_i1(VarIn, VarOut) 371 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root371 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 372 372 IMPLICIT NONE 373 373 … … 382 382 383 383 SUBROUTINE gather_mpi_i2(VarIn, VarOut) 384 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root384 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 385 385 IMPLICIT NONE 386 386 … … 395 395 396 396 SUBROUTINE gather_mpi_i3(VarIn, VarOut) 397 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root397 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 398 398 IMPLICIT NONE 399 399 … … 408 408 409 409 SUBROUTINE gather_mpi_r(VarIn, VarOut) 410 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root410 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 411 411 IMPLICIT NONE 412 412 … … 421 421 422 422 SUBROUTINE gather_mpi_r1(VarIn, VarOut) 423 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root423 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 424 424 IMPLICIT NONE 425 425 … … 434 434 435 435 SUBROUTINE gather_mpi_r2(VarIn, VarOut) 436 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root436 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 437 437 IMPLICIT NONE 438 438 … … 447 447 448 448 SUBROUTINE gather_mpi_r3(VarIn, VarOut) 449 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root449 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 450 450 IMPLICIT NONE 451 451 … … 460 460 461 461 SUBROUTINE gather_mpi_l(VarIn, VarOut) 462 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root462 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 463 463 IMPLICIT NONE 464 464 … … 473 473 474 474 SUBROUTINE gather_mpi_l1(VarIn, VarOut) 475 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root475 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 476 476 IMPLICIT NONE 477 477 … … 486 486 487 487 SUBROUTINE gather_mpi_l2(VarIn, VarOut) 488 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root488 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 489 489 IMPLICIT NONE 490 490 … … 499 499 500 500 SUBROUTINE gather_mpi_l3(VarIn, VarOut) 501 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root501 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 502 502 IMPLICIT NONE 503 503 … … 868 868 869 869 SUBROUTINE reduce_sum_mpi_i(VarIn, VarOut) 870 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root870 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 871 871 IMPLICIT NONE 872 872 … … 883 883 884 884 SUBROUTINE reduce_sum_mpi_i1(VarIn, VarOut) 885 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root885 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 886 886 IMPLICIT NONE 887 887 … … 894 894 895 895 SUBROUTINE reduce_sum_mpi_i2(VarIn, VarOut) 896 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root896 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 897 897 IMPLICIT NONE 898 898 … … 905 905 906 906 SUBROUTINE reduce_sum_mpi_i3(VarIn, VarOut) 907 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root907 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 908 908 IMPLICIT NONE 909 909 … … 916 916 917 917 SUBROUTINE reduce_sum_mpi_i4(VarIn, VarOut) 918 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root918 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 919 919 IMPLICIT NONE 920 920 … … 928 928 929 929 SUBROUTINE reduce_sum_mpi_r(VarIn, VarOut) 930 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root930 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 931 931 IMPLICIT NONE 932 932 … … 943 943 944 944 SUBROUTINE reduce_sum_mpi_r1(VarIn, VarOut) 945 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root945 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 946 946 IMPLICIT NONE 947 947 … … 954 954 955 955 SUBROUTINE reduce_sum_mpi_r2(VarIn, VarOut) 956 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root956 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 957 957 IMPLICIT NONE 958 958 … … 965 965 966 966 SUBROUTINE reduce_sum_mpi_r3(VarIn, VarOut) 967 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root967 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 968 968 IMPLICIT NONE 969 969 … … 976 976 977 977 SUBROUTINE reduce_sum_mpi_r4(VarIn, VarOut) 978 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_ root978 USE mod_phys_lmdz_mpi_data, ONLY : is_mpi_master 979 979 IMPLICIT NONE 980 980 … … 1236 1236 1237 1237 SUBROUTINE bcast_mpi_cgen(var,nb) 1238 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1238 USE mod_phys_lmdz_mpi_data 1239 1239 IMPLICIT NONE 1240 1240 … … 1250 1250 1251 1251 #ifdef CPP_MPI 1252 CALL MPI_BCAST(Var,nb,MPI_CHARACTER,mpi_ root_x,COMM_LMDZ_PHY,ierr)1252 CALL MPI_BCAST(Var,nb,MPI_CHARACTER,mpi_master,COMM_LMDZ_PHY,ierr) 1253 1253 #endif 1254 1254 … … 1258 1258 1259 1259 SUBROUTINE bcast_mpi_igen(var,nb) 1260 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1260 USE mod_phys_lmdz_mpi_data 1261 1261 IMPLICIT NONE 1262 1262 … … 1272 1272 1273 1273 #ifdef CPP_MPI 1274 CALL MPI_BCAST(Var,nb,MPI_INTEGER,mpi_ root_x,COMM_LMDZ_PHY,ierr)1274 CALL MPI_BCAST(Var,nb,MPI_INTEGER,mpi_master,COMM_LMDZ_PHY,ierr) 1275 1275 #endif 1276 1276 … … 1281 1281 1282 1282 SUBROUTINE bcast_mpi_rgen(var,nb) 1283 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1283 USE mod_phys_lmdz_mpi_data 1284 1284 IMPLICIT NONE 1285 1285 … … 1295 1295 1296 1296 #ifdef CPP_MPI 1297 CALL MPI_BCAST(Var,nb,MPI_REAL_LMDZ,mpi_ root_x,COMM_LMDZ_PHY,ierr)1297 CALL MPI_BCAST(Var,nb,MPI_REAL_LMDZ,mpi_master,COMM_LMDZ_PHY,ierr) 1298 1298 #endif 1299 1299 … … 1304 1304 1305 1305 SUBROUTINE bcast_mpi_lgen(var,nb) 1306 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1306 USE mod_phys_lmdz_mpi_data 1307 1307 IMPLICIT NONE 1308 1308 … … 1318 1318 1319 1319 #ifdef CPP_MPI 1320 CALL MPI_BCAST(Var,nb,MPI_LOGICAL,mpi_ root_x,COMM_LMDZ_PHY,ierr)1320 CALL MPI_BCAST(Var,nb,MPI_LOGICAL,mpi_master,COMM_LMDZ_PHY,ierr) 1321 1321 if (ierr.ne.MPI_SUCCESS) then 1322 1322 write(*,*) "bcast_mpi error: ierr=",ierr … … 1330 1330 1331 1331 SUBROUTINE scatter_mpi_igen(VarIn, VarOut, dimsize) 1332 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1332 USE mod_phys_lmdz_mpi_data 1333 1333 USE mod_grid_phy_lmdz 1334 1334 IMPLICIT NONE … … 1354 1354 1355 1355 1356 IF (is_mpi_ root) THEN1356 IF (is_mpi_master) THEN 1357 1357 Index=1 1358 1358 DO rank=0,mpi_size-1 … … 1369 1369 #ifdef CPP_MPI 1370 1370 CALL MPI_SCATTERV(VarTmp,counts,displs,MPI_INTEGER,VarOut,klon_mpi*dimsize, & 1371 MPI_INTEGER,mpi_ root_x, COMM_LMDZ_PHY,ierr)1371 MPI_INTEGER,mpi_master, COMM_LMDZ_PHY,ierr) 1372 1372 #endif 1373 1373 … … 1375 1375 1376 1376 SUBROUTINE scatter_mpi_rgen(VarIn, VarOut, dimsize) 1377 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1377 USE mod_phys_lmdz_mpi_data 1378 1378 USE mod_grid_phy_lmdz 1379 1379 IMPLICIT NONE … … 1398 1398 ENDIF 1399 1399 1400 IF (is_mpi_ root) THEN1400 IF (is_mpi_master) THEN 1401 1401 Index=1 1402 1402 DO rank=0,mpi_size-1 … … 1413 1413 #ifdef CPP_MPI 1414 1414 CALL MPI_SCATTERV(VarTmp,counts,displs,MPI_REAL_LMDZ,VarOut,klon_mpi*dimsize, & 1415 MPI_REAL_LMDZ,mpi_ root_x, COMM_LMDZ_PHY,ierr)1415 MPI_REAL_LMDZ,mpi_master, COMM_LMDZ_PHY,ierr) 1416 1416 1417 1417 #endif … … 1421 1421 1422 1422 SUBROUTINE scatter_mpi_lgen(VarIn, VarOut, dimsize) 1423 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1423 USE mod_phys_lmdz_mpi_data 1424 1424 USE mod_grid_phy_lmdz 1425 1425 IMPLICIT NONE … … 1444 1444 ENDIF 1445 1445 1446 IF (is_mpi_ root) THEN1446 IF (is_mpi_master) THEN 1447 1447 Index=1 1448 1448 DO rank=0,mpi_size-1 … … 1459 1459 #ifdef CPP_MPI 1460 1460 CALL MPI_SCATTERV(VarTmp,counts,displs,MPI_LOGICAL,VarOut,klon_mpi*dimsize, & 1461 MPI_LOGICAL,mpi_ root_x, COMM_LMDZ_PHY,ierr)1461 MPI_LOGICAL,mpi_master, COMM_LMDZ_PHY,ierr) 1462 1462 #endif 1463 1463 … … 1468 1468 1469 1469 SUBROUTINE gather_mpi_igen(VarIn, VarOut, dimsize) 1470 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1470 USE mod_phys_lmdz_mpi_data 1471 1471 USE mod_grid_phy_lmdz 1472 1472 IMPLICIT NONE … … 1491 1491 ENDIF 1492 1492 1493 IF (is_mpi_ root) THEN1493 IF (is_mpi_master) THEN 1494 1494 Index=1 1495 1495 DO rank=0,mpi_size-1 … … 1504 1504 #ifdef CPP_MPI 1505 1505 CALL MPI_GATHERV(VarIn,klon_mpi*dimsize,MPI_INTEGER,VarTmp,counts,displs, & 1506 MPI_INTEGER,mpi_ root_x, COMM_LMDZ_PHY,ierr)1506 MPI_INTEGER,mpi_master, COMM_LMDZ_PHY,ierr) 1507 1507 #endif 1508 1508 1509 1509 1510 IF (is_mpi_ root) THEN1510 IF (is_mpi_master) THEN 1511 1511 Index=1 1512 1512 DO rank=0,mpi_size-1 … … 1522 1522 1523 1523 SUBROUTINE gather_mpi_rgen(VarIn, VarOut, dimsize) 1524 USE mod_phys_lmdz_mpi_data , mpi_ root_x=>mpi_root1524 USE mod_phys_lmdz_mpi_data , mpi_master=>mpi_master 1525 1525 USE mod_grid_phy_lmdz 1526 1526 IMPLICIT NONE … … 1540 1540 INTEGER :: ierr 1541 1541 1542 IF (is_mpi_ root) THEN1542 IF (is_mpi_master) THEN 1543 1543 Index=1 1544 1544 DO rank=0,mpi_size-1 … … 1557 1557 #ifdef CPP_MPI 1558 1558 CALL MPI_GATHERV(VarIn,klon_mpi*dimsize,MPI_REAL_LMDZ,VarTmp,counts,displs, & 1559 MPI_REAL_LMDZ,mpi_ root_x, COMM_LMDZ_PHY,ierr)1559 MPI_REAL_LMDZ,mpi_master, COMM_LMDZ_PHY,ierr) 1560 1560 #endif 1561 1561 1562 IF (is_mpi_ root) THEN1562 IF (is_mpi_master) THEN 1563 1563 Index=1 1564 1564 DO rank=0,mpi_size-1 … … 1574 1574 1575 1575 SUBROUTINE gather_mpi_lgen(VarIn, VarOut, dimsize) 1576 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1576 USE mod_phys_lmdz_mpi_data 1577 1577 USE mod_grid_phy_lmdz 1578 1578 IMPLICIT NONE … … 1597 1597 ENDIF 1598 1598 1599 IF (is_mpi_ root) THEN1599 IF (is_mpi_master) THEN 1600 1600 Index=1 1601 1601 DO rank=0,mpi_size-1 … … 1610 1610 #ifdef CPP_MPI 1611 1611 CALL MPI_GATHERV(VarIn,klon_mpi*dimsize,MPI_LOGICAL,VarTmp,counts,displs, & 1612 MPI_LOGICAL,mpi_ root_x, COMM_LMDZ_PHY,ierr)1612 MPI_LOGICAL,mpi_master, COMM_LMDZ_PHY,ierr) 1613 1613 #endif 1614 1614 1615 IF (is_mpi_ root) THEN1615 IF (is_mpi_master) THEN 1616 1616 Index=1 1617 1617 DO rank=0,mpi_size-1 … … 1629 1629 1630 1630 SUBROUTINE reduce_sum_mpi_igen(VarIn,VarOut,nb) 1631 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1631 USE mod_phys_lmdz_mpi_data 1632 1632 USE mod_grid_phy_lmdz 1633 1633 IMPLICIT NONE … … 1649 1649 1650 1650 #ifdef CPP_MPI 1651 CALL MPI_REDUCE(VarIn,VarOut,nb,MPI_INTEGER,MPI_SUM,mpi_ root_x,COMM_LMDZ_PHY,ierr)1651 CALL MPI_REDUCE(VarIn,VarOut,nb,MPI_INTEGER,MPI_SUM,mpi_master,COMM_LMDZ_PHY,ierr) 1652 1652 #endif 1653 1653 … … 1655 1655 1656 1656 SUBROUTINE reduce_sum_mpi_rgen(VarIn,VarOut,nb) 1657 USE mod_phys_lmdz_mpi_data , mpi_root_x=>mpi_root1657 USE mod_phys_lmdz_mpi_data 1658 1658 USE mod_grid_phy_lmdz 1659 1659 … … 1675 1675 1676 1676 #ifdef CPP_MPI 1677 CALL MPI_REDUCE(VarIn,VarOut,nb,MPI_REAL_LMDZ,MPI_SUM,mpi_ root_x,COMM_LMDZ_PHY,ierr)1677 CALL MPI_REDUCE(VarIn,VarOut,nb,MPI_REAL_LMDZ,MPI_SUM,mpi_master,COMM_LMDZ_PHY,ierr) 1678 1678 #endif 1679 1679 -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/mod_phys_lmdz_omp_data.F90
r222 r245 6 6 INTEGER,SAVE :: omp_size 7 7 INTEGER,SAVE :: omp_rank 8 LOGICAL,SAVE :: is_omp_ root8 LOGICAL,SAVE :: is_omp_master 9 9 LOGICAL,SAVE :: is_using_omp 10 10 … … 16 16 INTEGER,SAVE :: klon_omp_begin 17 17 INTEGER,SAVE :: klon_omp_end 18 !$OMP THREADPRIVATE(omp_rank,klon_omp,is_omp_ root,klon_omp_begin,klon_omp_end)18 !$OMP THREADPRIVATE(omp_rank,klon_omp,is_omp_master,klon_omp_begin,klon_omp_end) 19 19 20 20 CONTAINS … … 50 50 #endif 51 51 52 is_omp_ root=.FALSE.52 is_omp_master=.FALSE. 53 53 !$OMP MASTER 54 54 IF (omp_rank==0) THEN 55 is_omp_ root=.TRUE.55 is_omp_master=.TRUE. 56 56 ELSE 57 57 abort_message = 'ANORMAL : OMP_MASTER /= 0' … … 97 97 WRITE(*,*)'omp_size =',omp_size 98 98 WRITE(*,*)'omp_rank =',omp_rank 99 WRITE(*,*)'is_omp_ root =',is_omp_root99 WRITE(*,*)'is_omp_master =',is_omp_master 100 100 WRITE(*,*)'klon_omp_para_nb =',klon_omp_para_nb 101 101 WRITE(*,*)'klon_omp_para_begin =',klon_omp_para_begin -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/mod_phys_lmdz_para.F90
r227 r245 17 17 CONTAINS 18 18 19 SUBROUTINE Init_phys_lmdz_para(iim,jjp1, nb_proc,distrib)19 SUBROUTINE Init_phys_lmdz_para(iim,jjp1,comm_lmdz, nb_proc,distrib) 20 20 IMPLICIT NONE 21 21 INTEGER,INTENT(in) :: iim 22 22 INTEGER,INTENT(in) :: jjp1 23 INTEGER,INTENT(in) :: comm_lmdz 23 24 INTEGER,INTENT(in) :: nb_proc 24 25 INTEGER,INTENT(in) :: distrib(0:nb_proc-1) 25 26 26 CALL Init_phys_lmdz_mpi_data(iim,jjp1, nb_proc,distrib)27 CALL Init_phys_lmdz_mpi_data(iim,jjp1,comm_lmdz, nb_proc, distrib) 27 28 !$OMP PARALLEL 28 29 CALL Init_phys_lmdz_omp_data(klon_mpi) 29 30 klon_loc=klon_omp 30 IF (is_mpi_ root .AND. is_omp_root) THEN31 IF (is_mpi_master .AND. is_omp_master) THEN 31 32 is_master=.TRUE. 32 33 ELSE … … 66 67 Test_Field2d_loc = 0. 67 68 68 IF (is_mpi_ root) THEN69 IF (is_mpi_master) THEN 69 70 !$OMP MASTER 70 71 DO l=1,nbp_lev … … 80 81 CALL Gather(Test_Field1d_loc,tmp1d_glo) 81 82 82 IF (is_mpi_ root) THEN83 IF (is_mpi_master) THEN 83 84 !$OMP MASTER 84 85 Checksum=sum(Test_Field1d_glo-tmp1d_glo) … … 92 93 CALL grid2dTo1d_glo(Test_Field2d_glo,tmp1d_glo) 93 94 94 IF (is_mpi_ root) THEN95 IF (is_mpi_master) THEN 95 96 !$OMP MASTER 96 97 Checksum=sum(Test_Field1d_glo-tmp1d_glo) … … 102 103 CALL reduce_sum(Test_Field1d_glo,tmp1d_glo) 103 104 104 IF (is_mpi_ root) THEN105 IF (is_mpi_master) THEN 105 106 !$OMP MASTER 106 107 Checksum=sum(Test_Field1d_glo*omp_size*mpi_size-tmp1d_glo) -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/writediagfi.F
r227 r245 41 41 use surfdat_h, only: phisfi 42 42 use control_mod, only: ecritphy, day_step, iphysiq 43 USE mod_phys_lmdz_para, only : is_parallel, is_mpi_ root,43 USE mod_phys_lmdz_para, only : is_parallel, is_mpi_master, 44 44 & is_master, gather 45 45 USE mod_grid_phy_lmdz, only : klon_glo, Grid1Dto2D_glo … … 296 296 call Gather(px,dx3_glop) 297 297 !$OMP MASTER 298 if (is_mpi_ root) then298 if (is_mpi_master) then 299 299 call Grid1Dto2D_glo(dx3_glop,dx3_glo) 300 300 ! copy dx3_glo() to dx3(:) and add redundant longitude … … 380 380 call Gather(px2,dx2_glop) 381 381 !$OMP MASTER 382 if (is_mpi_ root) then382 if (is_mpi_master) then 383 383 call Grid1Dto2D_glo(dx2_glop,dx2_glo) 384 384 ! copy dx2_glo() to dx2(:) and add redundant longitude -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/writediagsoil.F90
r227 r245 14 14 use comsoil_h, only: nsoilmx 15 15 use control_mod, only: ecritphy, day_step, iphysiq 16 use mod_phys_lmdz_para, only : is_mpi_ root, is_master, gather16 use mod_phys_lmdz_para, only : is_mpi_master, is_master, gather 17 17 use mod_grid_phy_lmdz, only : klon_glo, Grid1Dto2D_glo 18 18 … … 145 145 call Gather(px,dx3_glop) 146 146 !$OMP MASTER 147 if (is_mpi_ root) then147 if (is_mpi_master) then 148 148 call Grid1Dto2D_glo(dx3_glop,dx3_glo) 149 149 ! copy dx3_glo() to dx3(:) and add redundant longitude … … 220 220 call Gather(px2,dx2_glop) 221 221 !$OMP MASTER 222 if (is_mpi_ root) then222 if (is_mpi_master) then 223 223 call Grid1Dto2D_glo(dx2_glop,dx2_glo) 224 224 ! copy dx3_glo() to dx3(:) and add redundant longitude -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/writediagspecIR.F
r227 r245 45 45 ! USE surfdat_h, only : phisfi 46 46 #ifdef CPP_PARA 47 use mod_phys_lmdz_para, only : is_mpi_ root, is_master, gather47 use mod_phys_lmdz_para, only : is_mpi_master, is_master, gather 48 48 use mod_grid_phy_lmdz, only : klon_glo, Grid1Dto2D_glo 49 49 #endif … … 111 111 #else 112 112 logical,parameter :: is_master=.true. 113 logical,parameter :: is_mpi_ root=.true.113 logical,parameter :: is_mpi_master=.true. 114 114 #endif 115 115 … … 232 232 call Gather(px,dx3_glop) 233 233 !$OMP MASTER 234 if (is_mpi_ root) then234 if (is_mpi_master) then 235 235 call Grid1Dto2D_glo(dx3_glop,dx3_glo) 236 236 ! copy dx3_glo() to dx3(:) and add redundant longitude -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/writediagspecVI.F
r227 r245 45 45 ! USE surfdat_h 46 46 #ifdef CPP_PARA 47 use mod_phys_lmdz_para, only : is_mpi_ root, is_master, gather47 use mod_phys_lmdz_para, only : is_mpi_master, is_master, gather 48 48 use mod_grid_phy_lmdz, only : klon_glo, Grid1Dto2D_glo 49 49 #endif … … 111 111 #else 112 112 logical,parameter :: is_master=.true. 113 logical,parameter :: is_mpi_ root=.true.113 logical,parameter :: is_mpi_master=.true. 114 114 #endif 115 115 … … 232 232 call Gather(px,dx3_glop) 233 233 !$OMP MASTER 234 if (is_mpi_ root) then234 if (is_mpi_master) then 235 235 call Grid1Dto2D_glo(dx3_glop,dx3_glo) 236 236 ! copy dx3_glo() to dx3(:) and add redundant longitude -
codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/phystd/wstats.F90
r227 r245 1 1 subroutine wstats(ngrid,nom,titre,unite,dim,px) 2 2 3 use mod_phys_lmdz_para, only : is_mpi_ root, is_master, gather, klon_mpi_begin3 use mod_phys_lmdz_para, only : is_mpi_master, is_master, gather, klon_mpi_begin 4 4 use mod_grid_phy_lmdz, only : klon_glo, Grid1Dto2D_glo 5 5 … … 72 72 call Gather(px3,px3_glop) 73 73 !$OMP MASTER 74 if (is_mpi_ root) then74 if (is_mpi_master) then 75 75 call Grid1Dto2D_glo(px3_glop,px3_glo) 76 76 ! copy dx3_glo() to dx3(:) and add redundant longitude … … 85 85 call Gather(px2,px2_glop) 86 86 !$OMP MASTER 87 if (is_mpi_ root) then87 if (is_mpi_master) then 88 88 call Grid1Dto2D_glo(px2_glop,px2_glo) 89 89 ! copy px2_glo() to dx2(:) and add redundant longitude
Note: See TracChangeset
for help on using the changeset viewer.