Changeset fdc0f03 in flexpart.git
- Timestamp:
- Jan 21, 2016, 10:48:22 AM (8 years ago)
- Branches:
- master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
- Children:
- fddc6ec
- Parents:
- 41d8574
- Location:
- src
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
src/advance.f90
r5f9d14a rfdc0f03 550 550 !!! CHANGE 551 551 552 !!!----- TEST OF THE WELL-MIXED CRITERION: modified by mc, not to be included in final version mc553 ! if (zt.lt.h) then554 ! i_well=int(zt/h*25.)+1555 ! well_mixed_vector(i_well)=well_mixed_vector(i_well)+dt556 ! well_mixed_norm=well_mixed_norm+dt557 ! avg_air_dens(i_well)=avg_air_dens(i_well)+rhoa*dt558 ! avg_wst=avg_wst+wst*dt559 ! avg_ol=avg_ol+ol*dt560 ! avg_h=avg_h+h*dt561 ! end if562 ! h_well=h563 !------- END TEST564 565 552 ! Determine probability of deposition 566 553 !************************************ -
src/conccalc.f90
r8a65cb0 rfdc0f03 21 21 22 22 subroutine conccalc(itime,weight) 23 ! 23 ! i i 24 24 !***************************************************************************** 25 25 ! * -
src/concoutput_mpi.f90
rb069789 rfdc0f03 321 321 do kz=1,numzgrid 322 322 do l=1,nclassunc 323 ! auxgrid(l)=gridunc0(ix,jy,kz,ks,kp,l,nage)324 323 auxgrid(l)=gridunc(ix,jy,kz,ks,kp,l,nage) 325 324 end do -
src/gridcheck.f90
rd6a0977 rfdc0f03 84 84 real(kind=4) :: xaux1,xaux2,yaux1,yaux2 85 85 real(kind=8) :: xaux1in,xaux2in,yaux1in,yaux2in 86 integer :: gribVer,parCat,parNum,typSurf,valSurf,discipl,parI D86 integer :: gribVer,parCat,parNum,typSurf,valSurf,discipl,parId 87 87 !HSO end 88 88 integer :: ix,jy,i,ifn,ifield,j,k,iumax,iwmax,numskip … … 198 198 elseif ((parCat.eq.1).and.(parNum.eq.83).and.(typSurf.eq.105)) then ! clwc 199 199 isec1(6)=246 ! indicatorOfParameter 200 ! readclouds=.true. 201 ! sumclouds=.false. 200 202 elseif ((parCat.eq.1).and.(parNum.eq.84).and.(typSurf.eq.105)) then ! ciwc 201 203 isec1(6)=247 ! indicatorOfParameter 202 204 !ZHG end 205 ! ESO qc(=clwc+ciwc) 206 elseif ((parCat.eq.201).and.(parNum.eq.31).and.(typSurf.eq.105)) then ! qc 207 isec1(6)=201031 ! indicatorOfParameter 208 ! readclouds=.true. 209 ! sumclouds=.true. 203 210 elseif ((parCat.eq.3).and.(parNum.eq.0).and.(typSurf.eq.1)) then !SP 204 211 isec1(6)=134 ! indicatorOfParameter -
src/makefile
r02d4810 rfdc0f03 418 418 timemanager_mpi.o: com_mod.o flux_mod.o mpi_mod.o oh_mod.o outg_mod.o \ 419 419 par_mod.o point_mod.o unc_mod.o xmass_mod.o 420 unc_mod.o: par_mod.o 420 421 verttransform.o: cmapf_mod.o com_mod.o par_mod.o 421 422 verttransform_gfs.o: cmapf_mod.o com_mod.o par_mod.o -
src/mpi_mod.f90
r41d8574 rfdc0f03 119 119 logical, parameter :: mp_dbg_out = .false. 120 120 logical, parameter :: mp_time_barrier=.true. 121 logical, parameter :: mp_measure_time=. true.121 logical, parameter :: mp_measure_time=.false. 122 122 logical, parameter :: mp_exact_numpart=.true. 123 123 … … 477 477 478 478 ! real 479 call MPI_SCATTER(uap,numpart_mpi,mp_ pp,MPI_IN_PLACE,&480 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)481 if (mp_ierr /= 0) goto 600 482 call MPI_SCATTER(ucp,numpart_mpi,mp_ pp,MPI_IN_PLACE,&483 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)484 if (mp_ierr /= 0) goto 600 485 call MPI_SCATTER(uzp,numpart_mpi,mp_ pp,MPI_IN_PLACE,&486 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)487 if (mp_ierr /= 0) goto 600 488 489 call MPI_SCATTER(us,numpart_mpi,mp_ pp,MPI_IN_PLACE,&490 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)491 if (mp_ierr /= 0) goto 600 492 call MPI_SCATTER(vs,numpart_mpi,mp_ pp,MPI_IN_PLACE,&493 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)494 if (mp_ierr /= 0) goto 600 495 call MPI_SCATTER(ws,numpart_mpi,mp_ pp,MPI_IN_PLACE,&496 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)479 call MPI_SCATTER(uap,numpart_mpi,mp_sp,MPI_IN_PLACE,& 480 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 481 if (mp_ierr /= 0) goto 600 482 call MPI_SCATTER(ucp,numpart_mpi,mp_sp,MPI_IN_PLACE,& 483 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 484 if (mp_ierr /= 0) goto 600 485 call MPI_SCATTER(uzp,numpart_mpi,mp_sp,MPI_IN_PLACE,& 486 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 487 if (mp_ierr /= 0) goto 600 488 489 call MPI_SCATTER(us,numpart_mpi,mp_sp,MPI_IN_PLACE,& 490 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 491 if (mp_ierr /= 0) goto 600 492 call MPI_SCATTER(vs,numpart_mpi,mp_sp,MPI_IN_PLACE,& 493 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 494 if (mp_ierr /= 0) goto 600 495 call MPI_SCATTER(ws,numpart_mpi,mp_sp,MPI_IN_PLACE,& 496 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 497 497 if (mp_ierr /= 0) goto 600 498 498 … … 503 503 &numpart_mpi,mp_dp,id_root,mp_comm_used,mp_ierr) 504 504 if (mp_ierr /= 0) goto 600 505 call MPI_SCATTER(ztra1,numpart_mpi,mp_ pp,MPI_IN_PLACE,&506 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)505 call MPI_SCATTER(ztra1,numpart_mpi,mp_sp,MPI_IN_PLACE,& 506 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 507 507 if (mp_ierr /= 0) goto 600 508 508 509 509 do i=1,nspec 510 call MPI_SCATTER(xmass1(:,i),numpart_mpi,mp_ pp,MPI_IN_PLACE,&511 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)510 call MPI_SCATTER(xmass1(:,i),numpart_mpi,mp_sp,MPI_IN_PLACE,& 511 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 512 512 if (mp_ierr /= 0) goto 600 513 513 end do … … 537 537 538 538 ! reals 539 call MPI_SCATTER(uap,numpart_mpi,mp_ pp,uap,&540 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)541 if (mp_ierr /= 0) goto 600 542 call MPI_SCATTER(ucp,numpart_mpi,mp_ pp,ucp,&543 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)544 if (mp_ierr /= 0) goto 600 545 call MPI_SCATTER(uzp,numpart_mpi,mp_ pp,uzp,&546 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)547 if (mp_ierr /= 0) goto 600 548 549 call MPI_SCATTER(us,numpart_mpi,mp_ pp,us,&550 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)551 if (mp_ierr /= 0) goto 600 552 call MPI_SCATTER(vs,numpart_mpi,mp_ pp,vs,&553 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)554 if (mp_ierr /= 0) goto 600 555 call MPI_SCATTER(ws,numpart_mpi,mp_ pp,ws,&556 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)539 call MPI_SCATTER(uap,numpart_mpi,mp_sp,uap,& 540 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 541 if (mp_ierr /= 0) goto 600 542 call MPI_SCATTER(ucp,numpart_mpi,mp_sp,ucp,& 543 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 544 if (mp_ierr /= 0) goto 600 545 call MPI_SCATTER(uzp,numpart_mpi,mp_sp,uzp,& 546 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 547 if (mp_ierr /= 0) goto 600 548 549 call MPI_SCATTER(us,numpart_mpi,mp_sp,us,& 550 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 551 if (mp_ierr /= 0) goto 600 552 call MPI_SCATTER(vs,numpart_mpi,mp_sp,vs,& 553 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 554 if (mp_ierr /= 0) goto 600 555 call MPI_SCATTER(ws,numpart_mpi,mp_sp,ws,& 556 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 557 557 if (mp_ierr /= 0) goto 600 558 558 … … 563 563 &numpart_mpi,mp_dp,id_root,mp_comm_used,mp_ierr) 564 564 if (mp_ierr /= 0) goto 600 565 call MPI_SCATTER(ztra1,numpart_mpi,mp_ pp,ztra1,&566 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)565 call MPI_SCATTER(ztra1,numpart_mpi,mp_sp,ztra1,& 566 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 567 567 if (mp_ierr /= 0) goto 600 568 568 569 569 do i=1,nspec 570 call MPI_SCATTER(xmass1(:,i),numpart_mpi,mp_ pp,xmass1(:,i),&571 &numpart_mpi,mp_ pp,id_root,mp_comm_used,mp_ierr)570 call MPI_SCATTER(xmass1(:,i),numpart_mpi,mp_sp,xmass1(:,i),& 571 &numpart_mpi,mp_sp,id_root,mp_comm_used,mp_ierr) 572 572 if (mp_ierr /= 0) goto 600 573 573 end do … … 657 657 658 658 ! Reals: 659 call MPI_GATHER(uap, numpart_mpi, mp_ pp, uap, &660 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)661 if (mp_ierr /= 0) goto 600 662 call MPI_GATHER(ucp, numpart_mpi, mp_ pp, ucp, &663 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)664 if (mp_ierr /= 0) goto 600 665 call MPI_GATHER(uzp, numpart_mpi, mp_ pp, uzp, &666 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)667 if (mp_ierr /= 0) goto 600 668 669 call MPI_GATHER(us, numpart_mpi, mp_ pp, us, &670 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)671 if (mp_ierr /= 0) goto 600 672 call MPI_GATHER(vs, numpart_mpi, mp_ pp, vs, &673 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)674 if (mp_ierr /= 0) goto 600 675 call MPI_GATHER(ws, numpart_mpi, mp_ pp, ws, &676 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)659 call MPI_GATHER(uap, numpart_mpi, mp_sp, uap, & 660 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 661 if (mp_ierr /= 0) goto 600 662 call MPI_GATHER(ucp, numpart_mpi, mp_sp, ucp, & 663 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 664 if (mp_ierr /= 0) goto 600 665 call MPI_GATHER(uzp, numpart_mpi, mp_sp, uzp, & 666 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 667 if (mp_ierr /= 0) goto 600 668 669 call MPI_GATHER(us, numpart_mpi, mp_sp, us, & 670 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 671 if (mp_ierr /= 0) goto 600 672 call MPI_GATHER(vs, numpart_mpi, mp_sp, vs, & 673 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 674 if (mp_ierr /= 0) goto 600 675 call MPI_GATHER(ws, numpart_mpi, mp_sp, ws, & 676 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 677 677 if (mp_ierr /= 0) goto 600 678 678 … … 684 684 &numpart_mpi, mp_dp, id_root, mp_comm_used, mp_ierr) 685 685 if (mp_ierr /= 0) goto 600 686 call MPI_GATHER(ztra1, numpart_mpi, mp_ pp, ztra1, &687 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)686 call MPI_GATHER(ztra1, numpart_mpi, mp_sp, ztra1, & 687 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 688 688 if (mp_ierr /= 0) goto 600 689 689 690 690 do i=1, nspec 691 call MPI_GATHER(xmass1(:,i), numpart_mpi, mp_ pp, xmass1(:,i), &692 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)691 call MPI_GATHER(xmass1(:,i), numpart_mpi, mp_sp, xmass1(:,i), & 692 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 693 693 if (mp_ierr /= 0) goto 600 694 694 … … 722 722 723 723 ! Reals: 724 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_ pp, uap, &725 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)726 if (mp_ierr /= 0) goto 600 727 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_ pp, ucp, &728 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)729 if (mp_ierr /= 0) goto 600 730 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_ pp, uzp, &731 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)732 if (mp_ierr /= 0) goto 600 733 734 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_ pp, us, &735 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)724 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_sp, uap, & 725 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 726 if (mp_ierr /= 0) goto 600 727 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_sp, ucp, & 728 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 729 if (mp_ierr /= 0) goto 600 730 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_sp, uzp, & 731 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 732 if (mp_ierr /= 0) goto 600 733 734 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_sp, us, & 735 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 736 736 if (mp_ierr /= 0) goto 600 737 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_ pp, vs, &738 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)739 if (mp_ierr /= 0) goto 600 740 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_ pp, ws, &741 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)737 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_sp, vs, & 738 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 739 if (mp_ierr /= 0) goto 600 740 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_sp, ws, & 741 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 742 742 if (mp_ierr /= 0) goto 600 743 743 … … 749 749 &numpart_mpi, mp_dp, id_root, mp_comm_used, mp_ierr) 750 750 if (mp_ierr /= 0) goto 600 751 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_ pp, ztra1, &752 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)751 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_sp, ztra1, & 752 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 753 753 if (mp_ierr /= 0) goto 600 754 754 755 755 do i=1, nspec 756 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_ pp, xmass1(:,i), &757 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)756 call MPI_GATHER(MPI_IN_PLACE, numpart_mpi, mp_sp, xmass1(:,i), & 757 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 758 758 if (mp_ierr /= 0) goto 600 759 759 end do … … 784 784 785 785 ! Reals: 786 call MPI_GATHER(uap, numpart_mpi, mp_ pp, uap, &787 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)788 if (mp_ierr /= 0) goto 600 789 call MPI_GATHER(ucp, numpart_mpi, mp_ pp, ucp, &790 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)791 if (mp_ierr /= 0) goto 600 792 call MPI_GATHER(uzp, numpart_mpi, mp_ pp, uzp, &793 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)794 if (mp_ierr /= 0) goto 600 795 796 call MPI_GATHER(us, numpart_mpi, mp_ pp, us, &797 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)786 call MPI_GATHER(uap, numpart_mpi, mp_sp, uap, & 787 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 788 if (mp_ierr /= 0) goto 600 789 call MPI_GATHER(ucp, numpart_mpi, mp_sp, ucp, & 790 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 791 if (mp_ierr /= 0) goto 600 792 call MPI_GATHER(uzp, numpart_mpi, mp_sp, uzp, & 793 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 794 if (mp_ierr /= 0) goto 600 795 796 call MPI_GATHER(us, numpart_mpi, mp_sp, us, & 797 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 798 798 if (mp_ierr /= 0) goto 600 799 call MPI_GATHER(vs, numpart_mpi, mp_ pp, vs, &800 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)801 if (mp_ierr /= 0) goto 600 802 call MPI_GATHER(ws, numpart_mpi, mp_ pp, ws, &803 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)799 call MPI_GATHER(vs, numpart_mpi, mp_sp, vs, & 800 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 801 if (mp_ierr /= 0) goto 600 802 call MPI_GATHER(ws, numpart_mpi, mp_sp, ws, & 803 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 804 804 if (mp_ierr /= 0) goto 600 805 805 … … 811 811 &numpart_mpi, mp_dp, id_root, mp_comm_used, mp_ierr) 812 812 if (mp_ierr /= 0) goto 600 813 call MPI_GATHER(ztra1, numpart_mpi, mp_ pp, ztra1, &814 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)813 call MPI_GATHER(ztra1, numpart_mpi, mp_sp, ztra1, & 814 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 815 815 if (mp_ierr /= 0) goto 600 816 816 817 817 do i=1, nspec 818 call MPI_GATHER(xmass1(:,i), numpart_mpi, mp_ pp, xmass1(:,i), &819 &numpart_mpi, mp_ pp, id_root, mp_comm_used, mp_ierr)818 call MPI_GATHER(xmass1(:,i), numpart_mpi, mp_sp, xmass1(:,i), & 819 &numpart_mpi, mp_sp, id_root, mp_comm_used, mp_ierr) 820 820 if (mp_ierr /= 0) goto 600 821 821 end do … … 914 914 ! Static fields/variables sent only at startup 915 915 if (first_call) then 916 call MPI_Bcast(oro(:,:),d2_size3,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)917 if (mp_ierr /= 0) goto 600 918 call MPI_Bcast(excessoro(:,:),d2_size3,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)919 if (mp_ierr /= 0) goto 600 920 call MPI_Bcast(lsm(:,:),d2_size3,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)921 if (mp_ierr /= 0) goto 600 922 call MPI_Bcast(xlanduse(:,:,:),d2_size3*numclass,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)916 call MPI_Bcast(oro(:,:),d2_size3,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 917 if (mp_ierr /= 0) goto 600 918 call MPI_Bcast(excessoro(:,:),d2_size3,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 919 if (mp_ierr /= 0) goto 600 920 call MPI_Bcast(lsm(:,:),d2_size3,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 921 if (mp_ierr /= 0) goto 600 922 call MPI_Bcast(xlanduse(:,:,:),d2_size3*numclass,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 923 923 if (mp_ierr /= 0) goto 600 924 924 call MPI_Bcast(wftime,d1_size1,MPI_INTEGER,id_read,MPI_COMM_WORLD,mp_ierr) … … 934 934 endif 935 935 936 call MPI_Bcast(uu(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)937 if (mp_ierr /= 0) goto 600 938 call MPI_Bcast(vv(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)939 if (mp_ierr /= 0) goto 600 940 call MPI_Bcast(uupol(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)941 if (mp_ierr /= 0) goto 600 942 call MPI_Bcast(vvpol(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)943 if (mp_ierr /= 0) goto 600 944 call MPI_Bcast(ww(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)936 call MPI_Bcast(uu(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 937 if (mp_ierr /= 0) goto 600 938 call MPI_Bcast(vv(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 939 if (mp_ierr /= 0) goto 600 940 call MPI_Bcast(uupol(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 941 if (mp_ierr /= 0) goto 600 942 call MPI_Bcast(vvpol(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 943 if (mp_ierr /= 0) goto 600 944 call MPI_Bcast(ww(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 945 945 if (mp_ierr /= 0) goto 600 946 call MPI_Bcast(tt(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)947 if (mp_ierr /= 0) goto 600 948 call MPI_Bcast(rho(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)949 if (mp_ierr /= 0) goto 600 950 call MPI_Bcast(drhodz(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)951 if (mp_ierr /= 0) goto 600 952 call MPI_Bcast(tth(:,:,:,li:ui),d3s2,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)953 if (mp_ierr /= 0) goto 600 954 call MPI_Bcast(qvh(:,:,:,li:ui),d3s2,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)955 if (mp_ierr /= 0) goto 600 956 call MPI_Bcast(qv(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)946 call MPI_Bcast(tt(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 947 if (mp_ierr /= 0) goto 600 948 call MPI_Bcast(rho(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 949 if (mp_ierr /= 0) goto 600 950 call MPI_Bcast(drhodz(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 951 if (mp_ierr /= 0) goto 600 952 call MPI_Bcast(tth(:,:,:,li:ui),d3s2,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 953 if (mp_ierr /= 0) goto 600 954 call MPI_Bcast(qvh(:,:,:,li:ui),d3s2,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 955 if (mp_ierr /= 0) goto 600 956 call MPI_Bcast(qv(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 957 957 if (mp_ierr /= 0) goto 600 958 call MPI_Bcast(pv(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)958 call MPI_Bcast(pv(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 959 959 if (mp_ierr /= 0) goto 600 960 960 call MPI_Bcast(clouds(:,:,:,li:ui),d3s1,MPI_INTEGER1,id_read,MPI_COMM_WORLD,mp_ierr) … … 963 963 ! cloud water/ice: 964 964 if (readclouds) then 965 ! call MPI_Bcast(icloud_stats(:,:,:,li:ui),d2s1*5,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)965 ! call MPI_Bcast(icloud_stats(:,:,:,li:ui),d2s1*5,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 966 966 ! if (mp_ierr /= 0) goto 600 967 call MPI_Bcast(clw4(:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)968 if (mp_ierr /= 0) goto 600 969 ! call MPI_Bcast(clwc(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)967 call MPI_Bcast(clw4(:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 968 if (mp_ierr /= 0) goto 600 969 ! call MPI_Bcast(clwc(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 970 970 ! if (mp_ierr /= 0) goto 600 971 ! call MPI_Bcast(ciwc(:,:,:,li:ui),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)971 ! call MPI_Bcast(ciwc(:,:,:,li:ui),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 972 972 ! if (mp_ierr /= 0) goto 600 973 973 end if 974 974 975 975 ! 2D fields 976 call MPI_Bcast(cloudsh(:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)977 if (mp_ierr /= 0) goto 600 978 call MPI_Bcast(vdep(:,:,:,li:ui),d2s2,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)979 if (mp_ierr /= 0) goto 600 980 call MPI_Bcast(ps(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)976 call MPI_Bcast(cloudsh(:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 977 if (mp_ierr /= 0) goto 600 978 call MPI_Bcast(vdep(:,:,:,li:ui),d2s2,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 979 if (mp_ierr /= 0) goto 600 980 call MPI_Bcast(ps(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 981 981 if (mp_ierr /= 0) goto 600 982 call MPI_Bcast(sd(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)982 call MPI_Bcast(sd(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 983 983 if (mp_ierr /= 0) goto 600 984 call MPI_Bcast(tcc(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)984 call MPI_Bcast(tcc(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 985 985 if (mp_ierr /= 0) goto 600 986 call MPI_Bcast(tt2(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)987 if (mp_ierr /= 0) goto 600 988 call MPI_Bcast(td2(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)989 if (mp_ierr /= 0) goto 600 990 call MPI_Bcast(lsprec(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)991 if (mp_ierr /= 0) goto 600 992 call MPI_Bcast(convprec(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)993 if (mp_ierr /= 0) goto 600 994 call MPI_Bcast(ustar(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)995 if (mp_ierr /= 0) goto 600 996 call MPI_Bcast(wstar(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)997 if (mp_ierr /= 0) goto 600 998 call MPI_Bcast(hmix(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)999 if (mp_ierr /= 0) goto 600 1000 call MPI_Bcast(tropopause(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)986 call MPI_Bcast(tt2(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 987 if (mp_ierr /= 0) goto 600 988 call MPI_Bcast(td2(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 989 if (mp_ierr /= 0) goto 600 990 call MPI_Bcast(lsprec(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 991 if (mp_ierr /= 0) goto 600 992 call MPI_Bcast(convprec(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 993 if (mp_ierr /= 0) goto 600 994 call MPI_Bcast(ustar(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 995 if (mp_ierr /= 0) goto 600 996 call MPI_Bcast(wstar(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 997 if (mp_ierr /= 0) goto 600 998 call MPI_Bcast(hmix(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 999 if (mp_ierr /= 0) goto 600 1000 call MPI_Bcast(tropopause(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1001 1001 if (mp_ierr /= 0) goto 600 1002 call MPI_Bcast(oli(:,:,:,li:ui),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1003 if (mp_ierr /= 0) goto 600 1004 1005 call MPI_Bcast(z0,numclass,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1002 call MPI_Bcast(oli(:,:,:,li:ui),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1003 if (mp_ierr /= 0) goto 600 1004 1005 call MPI_Bcast(z0,numclass,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1006 1006 if (mp_ierr /= 0) goto 600 1007 1007 … … 1094 1094 ! Static fields/variables sent only at startup 1095 1095 if (first_call) then 1096 call MPI_Bcast(oron(:,:,:),d2_size3,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1097 if (mp_ierr /= 0) goto 600 1098 call MPI_Bcast(excessoron(:,:,:),d2_size3,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1099 if (mp_ierr /= 0) goto 600 1100 call MPI_Bcast(lsmn(:,:,:),d2_size3,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1101 if (mp_ierr /= 0) goto 600 1102 call MPI_Bcast(xlandusen(:,:,:,:),d2_size3*numclass,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1096 call MPI_Bcast(oron(:,:,:),d2_size3,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1097 if (mp_ierr /= 0) goto 600 1098 call MPI_Bcast(excessoron(:,:,:),d2_size3,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1099 if (mp_ierr /= 0) goto 600 1100 call MPI_Bcast(lsmn(:,:,:),d2_size3,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1101 if (mp_ierr /= 0) goto 600 1102 call MPI_Bcast(xlandusen(:,:,:,:),d2_size3*numclass,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1103 1103 if (mp_ierr /= 0) goto 600 1104 1104 first_call=.false. … … 1110 1110 do i=1, numbnests 1111 1111 ! 3D fields 1112 call MPI_Bcast(uun(:,:,:,li:ui,i),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1113 if (mp_ierr /= 0) goto 600 1114 call MPI_Bcast(vvn(:,:,:,li:ui,i),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1115 if (mp_ierr /= 0) goto 600 1116 call MPI_Bcast(wwn(:,:,:,li:ui,i),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1117 if (mp_ierr /= 0) goto 600 1118 call MPI_Bcast(ttn(:,:,:,li:ui,i),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1119 if (mp_ierr /= 0) goto 600 1120 call MPI_Bcast(rhon(:,:,:,li:ui,i),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1121 if (mp_ierr /= 0) goto 600 1122 call MPI_Bcast(drhodzn(:,:,:,li:ui,i),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1123 if (mp_ierr /= 0) goto 600 1124 call MPI_Bcast(tthn(:,:,:,li:ui,i),d3s2,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1125 if (mp_ierr /= 0) goto 600 1126 call MPI_Bcast(qvhn(:,:,:,li:ui,i),d3s2,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1127 if (mp_ierr /= 0) goto 600 1128 call MPI_Bcast(qvn(:,:,:,li:ui,i),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1129 if (mp_ierr /= 0) goto 600 1130 call MPI_Bcast(pvn(:,:,:,li:ui,i),d3s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1112 call MPI_Bcast(uun(:,:,:,li:ui,i),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1113 if (mp_ierr /= 0) goto 600 1114 call MPI_Bcast(vvn(:,:,:,li:ui,i),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1115 if (mp_ierr /= 0) goto 600 1116 call MPI_Bcast(wwn(:,:,:,li:ui,i),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1117 if (mp_ierr /= 0) goto 600 1118 call MPI_Bcast(ttn(:,:,:,li:ui,i),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1119 if (mp_ierr /= 0) goto 600 1120 call MPI_Bcast(rhon(:,:,:,li:ui,i),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1121 if (mp_ierr /= 0) goto 600 1122 call MPI_Bcast(drhodzn(:,:,:,li:ui,i),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1123 if (mp_ierr /= 0) goto 600 1124 call MPI_Bcast(tthn(:,:,:,li:ui,i),d3s2,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1125 if (mp_ierr /= 0) goto 600 1126 call MPI_Bcast(qvhn(:,:,:,li:ui,i),d3s2,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1127 if (mp_ierr /= 0) goto 600 1128 call MPI_Bcast(qvn(:,:,:,li:ui,i),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1129 if (mp_ierr /= 0) goto 600 1130 call MPI_Bcast(pvn(:,:,:,li:ui,i),d3s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1131 1131 if (mp_ierr /= 0) goto 600 1132 1132 call MPI_Bcast(cloudsn(:,:,:,li:ui,i),d3s1,MPI_INTEGER1,id_read,MPI_COMM_WORLD,mp_ierr) … … 1134 1134 1135 1135 ! 2D fields 1136 call MPI_Bcast(cloudsnh(:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1137 if (mp_ierr /= 0) goto 600 1138 call MPI_Bcast(vdepn(:,:,:,li:ui,i),d2s2,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1139 if (mp_ierr /= 0) goto 600 1140 call MPI_Bcast(psn(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1141 if (mp_ierr /= 0) goto 600 1142 call MPI_Bcast(sdn(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1143 if (mp_ierr /= 0) goto 600 1144 call MPI_Bcast(tccn(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1145 if (mp_ierr /= 0) goto 600 1146 call MPI_Bcast(tt2n(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1147 if (mp_ierr /= 0) goto 600 1148 call MPI_Bcast(td2n(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1149 if (mp_ierr /= 0) goto 600 1150 call MPI_Bcast(lsprecn(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1151 if (mp_ierr /= 0) goto 600 1152 call MPI_Bcast(convprecn(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1153 if (mp_ierr /= 0) goto 600 1154 call MPI_Bcast(ustarn(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1155 if (mp_ierr /= 0) goto 600 1156 call MPI_Bcast(wstarn(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1157 if (mp_ierr /= 0) goto 600 1158 call MPI_Bcast(olin(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1159 if (mp_ierr /= 0) goto 600 1160 call MPI_Bcast(hmixn(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1161 if (mp_ierr /= 0) goto 600 1162 call MPI_Bcast(tropopausen(:,:,:,li:ui,i),d2s1,mp_ pp,id_read,MPI_COMM_WORLD,mp_ierr)1136 call MPI_Bcast(cloudsnh(:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1137 if (mp_ierr /= 0) goto 600 1138 call MPI_Bcast(vdepn(:,:,:,li:ui,i),d2s2,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1139 if (mp_ierr /= 0) goto 600 1140 call MPI_Bcast(psn(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1141 if (mp_ierr /= 0) goto 600 1142 call MPI_Bcast(sdn(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1143 if (mp_ierr /= 0) goto 600 1144 call MPI_Bcast(tccn(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1145 if (mp_ierr /= 0) goto 600 1146 call MPI_Bcast(tt2n(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1147 if (mp_ierr /= 0) goto 600 1148 call MPI_Bcast(td2n(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1149 if (mp_ierr /= 0) goto 600 1150 call MPI_Bcast(lsprecn(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1151 if (mp_ierr /= 0) goto 600 1152 call MPI_Bcast(convprecn(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1153 if (mp_ierr /= 0) goto 600 1154 call MPI_Bcast(ustarn(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1155 if (mp_ierr /= 0) goto 600 1156 call MPI_Bcast(wstarn(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1157 if (mp_ierr /= 0) goto 600 1158 call MPI_Bcast(olin(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1159 if (mp_ierr /= 0) goto 600 1160 call MPI_Bcast(hmixn(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1161 if (mp_ierr /= 0) goto 600 1162 call MPI_Bcast(tropopausen(:,:,:,li:ui,i),d2s1,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr) 1163 1163 if (mp_ierr /= 0) goto 600 1164 1164 end do … … 1252 1252 if (dest.eq.id_read) cycle 1253 1253 i=dest*nvar_async 1254 call MPI_Isend(uu(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1255 if (mp_ierr /= 0) goto 600 1256 i=i+1 1257 call MPI_Isend(vv(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1258 if (mp_ierr /= 0) goto 600 1259 i=i+1 1260 call MPI_Isend(uupol(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1261 if (mp_ierr /= 0) goto 600 1262 i=i+1 1263 call MPI_Isend(vvpol(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1264 if (mp_ierr /= 0) goto 600 1265 i=i+1 1266 call MPI_Isend(ww(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1267 if (mp_ierr /= 0) goto 600 1268 i=i+1 1269 call MPI_Isend(tt(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1270 if (mp_ierr /= 0) goto 600 1271 i=i+1 1272 call MPI_Isend(rho(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1273 if (mp_ierr /= 0) goto 600 1274 i=i+1 1275 call MPI_Isend(drhodz(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1276 if (mp_ierr /= 0) goto 600 1277 i=i+1 1278 call MPI_Isend(tth(:,:,:,mind),d3s2,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1279 if (mp_ierr /= 0) goto 600 1280 i=i+1 1281 call MPI_Isend(qvh(:,:,:,mind),d3s2,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1282 if (mp_ierr /= 0) goto 600 1283 i=i+1 1284 call MPI_Isend(qv(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1285 if (mp_ierr /= 0) goto 600 1286 i=i+1 1287 call MPI_Isend(pv(:,:,:,mind),d3s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1254 call MPI_Isend(uu(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1255 if (mp_ierr /= 0) goto 600 1256 i=i+1 1257 call MPI_Isend(vv(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1258 if (mp_ierr /= 0) goto 600 1259 i=i+1 1260 call MPI_Isend(uupol(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1261 if (mp_ierr /= 0) goto 600 1262 i=i+1 1263 call MPI_Isend(vvpol(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1264 if (mp_ierr /= 0) goto 600 1265 i=i+1 1266 call MPI_Isend(ww(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1267 if (mp_ierr /= 0) goto 600 1268 i=i+1 1269 call MPI_Isend(tt(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1270 if (mp_ierr /= 0) goto 600 1271 i=i+1 1272 call MPI_Isend(rho(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1273 if (mp_ierr /= 0) goto 600 1274 i=i+1 1275 call MPI_Isend(drhodz(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1276 if (mp_ierr /= 0) goto 600 1277 i=i+1 1278 call MPI_Isend(tth(:,:,:,mind),d3s2,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1279 if (mp_ierr /= 0) goto 600 1280 i=i+1 1281 call MPI_Isend(qvh(:,:,:,mind),d3s2,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1282 if (mp_ierr /= 0) goto 600 1283 i=i+1 1284 call MPI_Isend(qv(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1285 if (mp_ierr /= 0) goto 600 1286 i=i+1 1287 call MPI_Isend(pv(:,:,:,mind),d3s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1288 1288 if (mp_ierr /= 0) goto 600 1289 1289 i=i+1 … … 1292 1292 if (mp_ierr /= 0) goto 600 1293 1293 1294 call MPI_Isend(cloudsh(:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1295 if (mp_ierr /= 0) goto 600 1296 i=i+1 1297 call MPI_Isend(vdep(:,:,:,mind),d2s2,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1298 if (mp_ierr /= 0) goto 600 1299 i=i+1 1300 call MPI_Isend(ps(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1301 if (mp_ierr /= 0) goto 600 1302 i=i+1 1303 call MPI_Isend(sd(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1304 if (mp_ierr /= 0) goto 600 1305 i=i+1 1306 call MPI_Isend(tcc(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1307 if (mp_ierr /= 0) goto 600 1308 i=i+1 1309 call MPI_Isend(tt2(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1310 if (mp_ierr /= 0) goto 600 1311 i=i+1 1312 call MPI_Isend(td2(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1313 if (mp_ierr /= 0) goto 600 1314 i=i+1 1315 call MPI_Isend(lsprec(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1316 if (mp_ierr /= 0) goto 600 1317 i=i+1 1318 call MPI_Isend(convprec(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1319 if (mp_ierr /= 0) goto 600 1320 i=i+1 1321 call MPI_Isend(ustar(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1322 if (mp_ierr /= 0) goto 600 1323 i=i+1 1324 call MPI_Isend(wstar(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1325 if (mp_ierr /= 0) goto 600 1326 i=i+1 1327 call MPI_Isend(hmix(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1328 if (mp_ierr /= 0) goto 600 1329 i=i+1 1330 call MPI_Isend(tropopause(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1331 if (mp_ierr /= 0) goto 600 1332 i=i+1 1333 call MPI_Isend(oli(:,:,:,mind),d2s1,mp_ pp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr)1294 call MPI_Isend(cloudsh(:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1295 if (mp_ierr /= 0) goto 600 1296 i=i+1 1297 call MPI_Isend(vdep(:,:,:,mind),d2s2,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1298 if (mp_ierr /= 0) goto 600 1299 i=i+1 1300 call MPI_Isend(ps(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1301 if (mp_ierr /= 0) goto 600 1302 i=i+1 1303 call MPI_Isend(sd(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1304 if (mp_ierr /= 0) goto 600 1305 i=i+1 1306 call MPI_Isend(tcc(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1307 if (mp_ierr /= 0) goto 600 1308 i=i+1 1309 call MPI_Isend(tt2(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1310 if (mp_ierr /= 0) goto 600 1311 i=i+1 1312 call MPI_Isend(td2(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1313 if (mp_ierr /= 0) goto 600 1314 i=i+1 1315 call MPI_Isend(lsprec(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1316 if (mp_ierr /= 0) goto 600 1317 i=i+1 1318 call MPI_Isend(convprec(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1319 if (mp_ierr /= 0) goto 600 1320 i=i+1 1321 call MPI_Isend(ustar(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1322 if (mp_ierr /= 0) goto 600 1323 i=i+1 1324 call MPI_Isend(wstar(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1325 if (mp_ierr /= 0) goto 600 1326 i=i+1 1327 call MPI_Isend(hmix(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1328 if (mp_ierr /= 0) goto 600 1329 i=i+1 1330 call MPI_Isend(tropopause(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1331 if (mp_ierr /= 0) goto 600 1332 i=i+1 1333 call MPI_Isend(oli(:,:,:,mind),d2s1,mp_sp,dest,tm1,MPI_COMM_WORLD,reqs(i),mp_ierr) 1334 1334 if (mp_ierr /= 0) goto 600 1335 1335 … … 1337 1337 if (readclouds) then 1338 1338 i=i+1 1339 ! call MPI_Isend(icloud_stats(:,:,:,mind),d2s1*5,mp_ pp,dest,tm1,&1339 ! call MPI_Isend(icloud_stats(:,:,:,mind),d2s1*5,mp_sp,dest,tm1,& 1340 1340 ! &MPI_COMM_WORLD,reqs(i),mp_ierr) 1341 call MPI_Isend(clw4(:,:,mind),d2s1,mp_ pp,dest,tm1,&1341 call MPI_Isend(clw4(:,:,mind),d2s1,mp_sp,dest,tm1,& 1342 1342 &MPI_COMM_WORLD,reqs(i),mp_ierr) 1343 1343 1344 1344 if (mp_ierr /= 0) goto 600 1345 1345 1346 ! call MPI_Isend(clwc(:,:,:,mind),d3s1,mp_ pp,dest,tm1,&1346 ! call MPI_Isend(clwc(:,:,:,mind),d3s1,mp_sp,dest,tm1,& 1347 1347 ! &MPI_COMM_WORLD,reqs(i),mp_ierr) 1348 1348 ! if (mp_ierr /= 0) goto 600 1349 1349 ! i=i+1 1350 1350 1351 ! call MPI_Isend(ciwc(:,:,:,mind),d3s1,mp_ pp,dest,tm1,&1351 ! call MPI_Isend(ciwc(:,:,:,mind),d3s1,mp_sp,dest,tm1,& 1352 1352 ! &MPI_COMM_WORLD,reqs(i),mp_ierr) 1353 1353 ! if (mp_ierr /= 0) goto 600 … … 1431 1431 ! Get MPI tags/requests for communications 1432 1432 j=mp_pid*nvar_async 1433 call MPI_Irecv(uu(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1434 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1435 if (mp_ierr /= 0) goto 600 1436 j=j+1 1437 call MPI_Irecv(vv(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1438 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1439 if (mp_ierr /= 0) goto 600 1440 j=j+1 1441 call MPI_Irecv(uupol(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1442 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1443 if (mp_ierr /= 0) goto 600 1444 j=j+1 1445 call MPI_Irecv(vvpol(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1446 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1447 if (mp_ierr /= 0) goto 600 1448 j=j+1 1449 call MPI_Irecv(ww(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1433 call MPI_Irecv(uu(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1434 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1435 if (mp_ierr /= 0) goto 600 1436 j=j+1 1437 call MPI_Irecv(vv(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1438 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1439 if (mp_ierr /= 0) goto 600 1440 j=j+1 1441 call MPI_Irecv(uupol(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1442 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1443 if (mp_ierr /= 0) goto 600 1444 j=j+1 1445 call MPI_Irecv(vvpol(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1446 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1447 if (mp_ierr /= 0) goto 600 1448 j=j+1 1449 call MPI_Irecv(ww(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1450 1450 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1451 1451 if (mp_ierr /= 0) goto 600 1452 1452 j=j+1 1453 call MPI_Irecv(tt(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1454 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1455 if (mp_ierr /= 0) goto 600 1456 j=j+1 1457 call MPI_Irecv(rho(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1458 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1459 if (mp_ierr /= 0) goto 600 1460 j=j+1 1461 call MPI_Irecv(drhodz(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1462 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1463 if (mp_ierr /= 0) goto 600 1464 j=j+1 1465 call MPI_Irecv(tth(:,:,:,mind),d3s2,mp_ pp,id_read,MPI_ANY_TAG,&1466 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1467 if (mp_ierr /= 0) goto 600 1468 j=j+1 1469 call MPI_Irecv(qvh(:,:,:,mind),d3s2,mp_ pp,id_read,MPI_ANY_TAG,&1470 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1471 if (mp_ierr /= 0) goto 600 1472 j=j+1 1473 1474 call MPI_Irecv(qv(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1453 call MPI_Irecv(tt(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1454 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1455 if (mp_ierr /= 0) goto 600 1456 j=j+1 1457 call MPI_Irecv(rho(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1458 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1459 if (mp_ierr /= 0) goto 600 1460 j=j+1 1461 call MPI_Irecv(drhodz(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1462 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1463 if (mp_ierr /= 0) goto 600 1464 j=j+1 1465 call MPI_Irecv(tth(:,:,:,mind),d3s2,mp_sp,id_read,MPI_ANY_TAG,& 1466 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1467 if (mp_ierr /= 0) goto 600 1468 j=j+1 1469 call MPI_Irecv(qvh(:,:,:,mind),d3s2,mp_sp,id_read,MPI_ANY_TAG,& 1470 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1471 if (mp_ierr /= 0) goto 600 1472 j=j+1 1473 1474 call MPI_Irecv(qv(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1475 1475 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1476 1476 if (mp_ierr /= 0) goto 600 1477 1477 j=j+1 1478 call MPI_Irecv(pv(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1478 call MPI_Irecv(pv(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1479 1479 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1480 1480 if (mp_ierr /= 0) goto 600 … … 1485 1485 j=j+1 1486 1486 1487 call MPI_Irecv(cloudsh(:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1488 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1489 if (mp_ierr /= 0) goto 600 1490 j=j+1 1491 call MPI_Irecv(vdep(:,:,:,mind),d2s2,mp_ pp,id_read,MPI_ANY_TAG,&1492 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1493 if (mp_ierr /= 0) goto 600 1494 j=j+1 1495 call MPI_Irecv(ps(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1487 call MPI_Irecv(cloudsh(:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1488 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1489 if (mp_ierr /= 0) goto 600 1490 j=j+1 1491 call MPI_Irecv(vdep(:,:,:,mind),d2s2,mp_sp,id_read,MPI_ANY_TAG,& 1492 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1493 if (mp_ierr /= 0) goto 600 1494 j=j+1 1495 call MPI_Irecv(ps(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1496 1496 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1497 1497 if (mp_ierr /= 0) goto 600 1498 1498 j=j+1 1499 call MPI_Irecv(sd(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1499 call MPI_Irecv(sd(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1500 1500 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1501 1501 if (mp_ierr /= 0) goto 600 1502 1502 j=j+1 1503 call MPI_Irecv(tcc(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1503 call MPI_Irecv(tcc(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1504 1504 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1505 1505 if (mp_ierr /= 0) goto 600 1506 1506 j=j+1 1507 call MPI_Irecv(tt2(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1508 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1509 if (mp_ierr /= 0) goto 600 1510 j=j+1 1511 call MPI_Irecv(td2(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1512 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1513 if (mp_ierr /= 0) goto 600 1514 j=j+1 1515 call MPI_Irecv(lsprec(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1516 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1517 if (mp_ierr /= 0) goto 600 1518 j=j+1 1519 call MPI_Irecv(convprec(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1520 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1521 if (mp_ierr /= 0) goto 600 1522 1523 call MPI_Irecv(ustar(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1524 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1525 if (mp_ierr /= 0) goto 600 1526 j=j+1 1527 call MPI_Irecv(wstar(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1528 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1529 if (mp_ierr /= 0) goto 600 1530 j=j+1 1531 call MPI_Irecv(hmix(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1532 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1533 if (mp_ierr /= 0) goto 600 1534 j=j+1 1535 call MPI_Irecv(tropopause(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1507 call MPI_Irecv(tt2(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1508 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1509 if (mp_ierr /= 0) goto 600 1510 j=j+1 1511 call MPI_Irecv(td2(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1512 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1513 if (mp_ierr /= 0) goto 600 1514 j=j+1 1515 call MPI_Irecv(lsprec(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1516 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1517 if (mp_ierr /= 0) goto 600 1518 j=j+1 1519 call MPI_Irecv(convprec(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1520 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1521 if (mp_ierr /= 0) goto 600 1522 1523 call MPI_Irecv(ustar(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1524 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1525 if (mp_ierr /= 0) goto 600 1526 j=j+1 1527 call MPI_Irecv(wstar(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1528 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1529 if (mp_ierr /= 0) goto 600 1530 j=j+1 1531 call MPI_Irecv(hmix(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1532 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1533 if (mp_ierr /= 0) goto 600 1534 j=j+1 1535 call MPI_Irecv(tropopause(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1536 1536 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1537 1537 if (mp_ierr /= 0) goto 600 1538 1538 j=j+1 1539 call MPI_Irecv(oli(:,:,:,mind),d2s1,mp_ pp,id_read,MPI_ANY_TAG,&1539 call MPI_Irecv(oli(:,:,:,mind),d2s1,mp_sp,id_read,MPI_ANY_TAG,& 1540 1540 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1541 1541 if (mp_ierr /= 0) goto 600 … … 1547 1547 j=j+1 1548 1548 1549 ! call MPI_Irecv(icloud_stats(:,:,:,mind),d2s1*5,mp_ pp,id_read,MPI_ANY_TAG,&1549 ! call MPI_Irecv(icloud_stats(:,:,:,mind),d2s1*5,mp_sp,id_read,MPI_ANY_TAG,& 1550 1550 ! &MPI_COMM_WORLD,reqs(j),mp_ierr) 1551 call MPI_Irecv(clw4(:,:,mind),d2s1*5,mp_ pp,id_read,MPI_ANY_TAG,&1551 call MPI_Irecv(clw4(:,:,mind),d2s1*5,mp_sp,id_read,MPI_ANY_TAG,& 1552 1552 &MPI_COMM_WORLD,reqs(j),mp_ierr) 1553 1553 if (mp_ierr /= 0) goto 600 1554 1554 1555 ! call MPI_Irecv(clwc(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1555 ! call MPI_Irecv(clwc(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1556 1556 ! &MPI_COMM_WORLD,reqs(j),mp_ierr) 1557 1557 ! if (mp_ierr /= 0) goto 600 1558 1558 ! j=j+1 1559 ! call MPI_Irecv(ciwc(:,:,:,mind),d3s1,mp_ pp,id_read,MPI_ANY_TAG,&1559 ! call MPI_Irecv(ciwc(:,:,:,mind),d3s1,mp_sp,id_read,MPI_ANY_TAG,& 1560 1560 ! &MPI_COMM_WORLD,reqs(j),mp_ierr) 1561 1561 ! if (mp_ierr /= 0) goto 600 … … 1656 1656 1657 1657 ! 1) Using a separate grid (gridunc0) for received values 1658 ! call MPI_Reduce(gridunc, gridunc0, grid_size3d, mp_ pp, MPI_SUM, id_root, &1658 ! call MPI_Reduce(gridunc, gridunc0, grid_size3d, mp_sp, MPI_SUM, id_root, & 1659 1659 ! & mp_comm_used, mp_ierr) 1660 1660 ! if (mp_ierr /= 0) goto 600 … … 1662 1662 ! 2) Using in-place reduction 1663 1663 if (lroot) then 1664 call MPI_Reduce(MPI_IN_PLACE, gridunc, grid_size3d, mp_ pp, MPI_SUM, id_root, &1664 call MPI_Reduce(MPI_IN_PLACE, gridunc, grid_size3d, mp_sp, MPI_SUM, id_root, & 1665 1665 & mp_comm_used, mp_ierr) 1666 1666 if (mp_ierr /= 0) goto 600 1667 1667 else 1668 call MPI_Reduce(gridunc, gridunc, grid_size3d, mp_ pp, MPI_SUM, id_root, &1668 call MPI_Reduce(gridunc, gridunc, grid_size3d, mp_sp, MPI_SUM, id_root, & 1669 1669 & mp_comm_used, mp_ierr) 1670 1670 end if 1671 1671 1672 1672 if ((WETDEP).and.(ldirect.gt.0)) then 1673 call MPI_Reduce(wetgridunc, wetgridunc0, grid_size2d, mp_ pp, MPI_SUM, id_root, &1673 call MPI_Reduce(wetgridunc, wetgridunc0, grid_size2d, mp_sp, MPI_SUM, id_root, & 1674 1674 & mp_comm_used, mp_ierr) 1675 1675 if (mp_ierr /= 0) goto 600 … … 1677 1677 1678 1678 if ((DRYDEP).and.(ldirect.gt.0)) then 1679 call MPI_Reduce(drygridunc, drygridunc0, grid_size2d, mp_ pp, MPI_SUM, id_root, &1679 call MPI_Reduce(drygridunc, drygridunc0, grid_size2d, mp_sp, MPI_SUM, id_root, & 1680 1680 & mp_comm_used, mp_ierr) 1681 1681 if (mp_ierr /= 0) goto 600 … … 1684 1684 ! Receptor concentrations 1685 1685 if (lroot) then 1686 call MPI_Reduce(MPI_IN_PLACE,creceptor,rcpt_size,mp_ pp,MPI_SUM,id_root, &1686 call MPI_Reduce(MPI_IN_PLACE,creceptor,rcpt_size,mp_sp,MPI_SUM,id_root, & 1687 1687 & mp_comm_used,mp_ierr) 1688 1688 if (mp_ierr /= 0) goto 600 1689 1689 else 1690 call MPI_Reduce(creceptor,creceptor,rcpt_size,mp_ pp,MPI_SUM,id_root, &1690 call MPI_Reduce(creceptor,creceptor,rcpt_size,mp_sp,MPI_SUM,id_root, & 1691 1691 & mp_comm_used,mp_ierr) 1692 1692 end if … … 1732 1732 1733 1733 ! Using a separate grid (gridunc0) for received values, for debugging 1734 ! call MPI_Reduce(griduncn, griduncn0, grid_size3d, mp_ pp, MPI_SUM, id_root, &1734 ! call MPI_Reduce(griduncn, griduncn0, grid_size3d, mp_sp, MPI_SUM, id_root, & 1735 1735 ! & mp_comm_used, mp_ierr) 1736 1736 ! if (mp_ierr /= 0) goto 600 … … 1738 1738 ! Using in-place reduction 1739 1739 if (lroot) then 1740 call MPI_Reduce(MPI_IN_PLACE, griduncn, grid_size3d, mp_ pp, MPI_SUM, id_root, &1740 call MPI_Reduce(MPI_IN_PLACE, griduncn, grid_size3d, mp_sp, MPI_SUM, id_root, & 1741 1741 & mp_comm_used, mp_ierr) 1742 1742 if (mp_ierr /= 0) goto 600 1743 1743 else 1744 call MPI_Reduce(griduncn, griduncn, grid_size3d, mp_ pp, MPI_SUM, id_root, &1744 call MPI_Reduce(griduncn, griduncn, grid_size3d, mp_sp, MPI_SUM, id_root, & 1745 1745 & mp_comm_used, mp_ierr) 1746 1746 end if 1747 1747 1748 1748 if ((WETDEP).and.(ldirect.gt.0)) then 1749 call MPI_Reduce(wetgriduncn, wetgriduncn0, grid_size2d, mp_ pp, MPI_SUM, id_root, &1749 call MPI_Reduce(wetgriduncn, wetgriduncn0, grid_size2d, mp_sp, MPI_SUM, id_root, & 1750 1750 & mp_comm_used, mp_ierr) 1751 1751 if (mp_ierr /= 0) goto 600 … … 1753 1753 1754 1754 if ((DRYDEP).and.(ldirect.gt.0)) then 1755 call MPI_Reduce(drygriduncn, drygriduncn0, grid_size2d, mp_ pp, MPI_SUM, id_root, &1755 call MPI_Reduce(drygriduncn, drygriduncn0, grid_size2d, mp_sp, MPI_SUM, id_root, & 1756 1756 & mp_comm_used, mp_ierr) 1757 1757 if (mp_ierr /= 0) goto 600 -
src/par_mod.f90
r41d8574 rfdc0f03 42 42 !**************************************************************** 43 43 ! Parameter defining KIND parameter for double/single precision 44 ! 'cp' sets the precision for some internal calculations (sp or dp), 45 ! sp is default but dp can be used for increased precision. 46 ! WARNING: for now, do not use 'dp' 44 47 !**************************************************************** 45 48 46 49 integer,parameter :: dp=selected_real_kind(P=15) 47 50 integer,parameter :: sp=selected_real_kind(6) 48 51 integer,parameter :: cp=sp ! sp is default 49 52 50 53 !*********************************************************** -
src/readwind_mpi.f90
r41d8574 rfdc0f03 458 458 !hg 459 459 call shift_field(clwch,nxfield,ny,nuvzmax,nuvz,numwfmem,n) 460 call shift_field(ciwch,nxfield,ny,nuvzmax,nuvz,numwfmem,n)460 if (.not.sumclouds) call shift_field(ciwch,nxfield,ny,nuvzmax,nuvz,numwfmem,n) 461 461 !hg end 462 462 -
src/timemanager.f90
r41d8574 rfdc0f03 113 113 real :: drydeposit(maxspec),gridtotalunc,wetgridtotalunc 114 114 real :: drygridtotalunc,xold,yold,zold,xmassfract 115 real, parameter :: e_inv = 1.0/exp(1.0) 115 116 !double precision xm(maxspec,maxpointspec_act), 116 117 ! + xm_depw(maxspec,maxpointspec_act), … … 594 595 !ZHG 2015 595 596 !CGZ-lifetime: Check mass fraction left/save lifetime 596 ! if(real(npart(npoint(j)))*xmass1(j,ks)/xmass(npoint(j),ks).lt. 0.01.and.checklifetime(j,ks).eq.0.)then597 ! if(real(npart(npoint(j)))*xmass1(j,ks)/xmass(npoint(j),ks).lt.inv_e.and.checklifetime(j,ks).eq.0.)then 597 598 !Mass below 1% of initial >register lifetime 598 599 ! checklifetime(j,ks)=abs(itra1(j)-itramem(j)) -
src/timemanager_mpi.f90
r41d8574 rfdc0f03 116 116 real :: drydeposit(maxspec),gridtotalunc,wetgridtotalunc 117 117 real :: drygridtotalunc,xold,yold,zold,xmassfract 118 real, parameter :: e_inv = 1.0/exp(1.0) 118 119 !double precision xm(maxspec,maxpointspec_act), 119 120 ! + xm_depw(maxspec,maxpointspec_act), … … 755 756 756 757 !CGZ-lifetime: Check mass fraction left/save lifetime 757 ! if(lroot.and.real(npart(npoint(j)))*xmass1(j,ks)/xmass(npoint(j),ks).lt. 0.01.and.checklifetime(j,ks).eq.0.)then758 ! if(lroot.and.real(npart(npoint(j)))*xmass1(j,ks)/xmass(npoint(j),ks).lt.inv_e.and.checklifetime(j,ks).eq.0.)then 758 759 !Mass below 1% of initial >register lifetime 759 760 ! checklifetime(j,ks)=abs(itra1(j)-itramem(j)) -
src/unc_mod.f90
r8a65cb0 rfdc0f03 22 22 module unc_mod 23 23 24 use par_mod, only:cp 25 24 26 implicit none 25 27 26 28 real,allocatable ,dimension (:,:,:,:,:,:,:) :: gridunc 27 29 real,allocatable, dimension (:,:,:,:,:,:,:) :: griduncn 28 real ,allocatable, dimension (:,:,:,:,:,:) :: drygridunc29 real ,allocatable, dimension (:,:,:,:,:,:) :: drygriduncn30 real ,allocatable, dimension (:,:,:,:,:,:) :: wetgridunc31 real ,allocatable, dimension (:,:,:,:,:,:) :: wetgriduncn30 real(cp),allocatable, dimension (:,:,:,:,:,:) :: drygridunc 31 real(cp),allocatable, dimension (:,:,:,:,:,:) :: drygriduncn 32 real(cp),allocatable, dimension (:,:,:,:,:,:) :: wetgridunc 33 real(cp),allocatable, dimension (:,:,:,:,:,:) :: wetgriduncn 32 34 33 35 ! For sum of individual contributions, used for the MPI version 34 real ,allocatable, dimension (:,:,:,:,:,:) :: drygridunc035 real ,allocatable, dimension (:,:,:,:,:,:) :: drygriduncn036 real ,allocatable, dimension (:,:,:,:,:,:) :: wetgridunc037 real ,allocatable, dimension (:,:,:,:,:,:) :: wetgriduncn036 real(cp),allocatable, dimension (:,:,:,:,:,:) :: drygridunc0 37 real(cp),allocatable, dimension (:,:,:,:,:,:) :: drygriduncn0 38 real(cp),allocatable, dimension (:,:,:,:,:,:) :: wetgridunc0 39 real(cp),allocatable, dimension (:,:,:,:,:,:) :: wetgriduncn0 38 40 39 41 real,allocatable, dimension (:,:,:,:,:) :: init_cond
Note: See TracChangeset
for help on using the changeset viewer.