Changes in src/timemanager_mpi.f90 [92fab65:f3054ea] in flexpart.git
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/timemanager_mpi.f90
r92fab65 rf3054ea 1 ! SPDX-FileCopyrightText: FLEXPART 1998-2019, see flexpart_license.txt 2 ! SPDX-License-Identifier: GPL-3.0-or-later 1 !********************************************************************** 2 ! Copyright 1998,1999,2000,2001,2002,2005,2007,2008,2009,2010 * 3 ! Andreas Stohl, Petra Seibert, A. Frank, Gerhard Wotawa, * 4 ! Caroline Forster, Sabine Eckhardt, John Burkhart, Harald Sodemann * 5 ! * 6 ! This file is part of FLEXPART. * 7 ! * 8 ! FLEXPART is free software: you can redistribute it and/or modify * 9 ! it under the terms of the GNU General Public License as published by* 10 ! the Free Software Foundation, either version 3 of the License, or * 11 ! (at your option) any later version. * 12 ! * 13 ! FLEXPART is distributed in the hope that it will be useful, * 14 ! but WITHOUT ANY WARRANTY; without even the implied warranty of * 15 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 16 ! GNU General Public License for more details. * 17 ! * 18 ! You should have received a copy of the GNU General Public License * 19 ! along with FLEXPART. If not, see <http://www.gnu.org/licenses/>. * 20 !********************************************************************** 3 21 4 22 subroutine timemanager(metdata_format) … … 91 109 implicit none 92 110 111 integer(selected_int_kind(16)) :: idummy,idummy2 93 112 integer :: metdata_format 94 113 logical :: reqv_state=.false. ! .true. if waiting for a MPI_Irecv to complete … … 97 116 integer :: ip,irec 98 117 integer :: loutnext,loutstart,loutend 99 integer :: ix,jy,ldeltat,itage,nage ,idummy118 integer :: ix,jy,ldeltat,itage,nage 100 119 integer :: i_nan=0,ii_nan,total_nan_intl=0 !added by mc to check instability in CBL scheme 101 120 integer :: numpart_tot_mpi ! for summing particles on all processes … … 159 178 !******************************************************************** 160 179 161 if (mp_dbg_mode) write(*,*) 'myid, itime: ',mp_pid,itime180 ! if (mp_dbg_mode) write(*,*) 'myid, itime: ',mp_pid,itime 162 181 163 182 if (WETDEP .and. itime .ne. 0 .and. numpart .gt. 0) then … … 280 299 281 300 if (lmpreader.and.lmp_use_reader) then 282 if ( itime.lt.ideltas*ldirect) then301 if (abs(itime).lt.ideltas*ldirect) then 283 302 cycle 284 303 else … … 480 499 creceptor(:,:)=0. 481 500 end if 482 else 501 else ! surf only 483 502 if (lroot) then 484 503 if (lnetcdfout.eq.1) then … … 488 507 #endif 489 508 else 490 call concoutput_surf(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) 509 if (linversionout.eq.1) then 510 call concoutput_inversion(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) 511 else 512 call concoutput_surf(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) 513 end if 491 514 end if 492 515 else … … 516 539 517 540 else 518 call concoutput_surf_nest(itime,outnum) 541 if(linversionout.eq.1) then 542 if (lroot) then 543 call concoutput_inversion_nest(itime,outnum) 544 else 545 griduncn(:,:,:,:,:,:,:)=0. 546 end if 547 else 548 if (lroot) then 549 call concoutput_surf_nest(itime,outnum) 550 else 551 griduncn(:,:,:,:,:,:,:)=0. 552 end if 553 end if 519 554 end if 520 555 else … … 724 759 do ks=1,nspec 725 760 if ((xscav_frac1(j,ks).lt.0)) then 726 call get_wetscav(itime,lsynctime,loutnext,j,ks,grfraction,idummy,idummy ,wetscav)761 call get_wetscav(itime,lsynctime,loutnext,j,ks,grfraction,idummy,idummy2,wetscav) 727 762 if (wetscav.gt.0) then 728 763 xscav_frac1(j,ks)=wetscav* & … … 877 912 !***************************************************************************** 878 913 879 ! eso :TODO: this not implemented yet (transfer particles to PID 0 or rewrite) 880 ! the tools to do this are already in mpi_mod.f90 881 if (lroot) then 882 do j=1,numpart 883 if (linit_cond.ge.1) call initial_cond_calc(itime,j) 884 end do 885 end if 886 887 914 do j=1,numpart 915 if (linit_cond.ge.1) call initial_cond_calc(itime,j) 916 end do 917 918 ! Transfer sum of init_cond field to root process, for output 919 call mpif_tm_reduce_initcond 920 888 921 if (ipout.eq.2) then 889 922 ! MPI process 0 creates the file, the other processes append to it … … 897 930 end if 898 931 899 ! eso :TODO: MPI 900 if (linit_cond.ge.1.and.lroot) call initial_cond_output(itime) ! dump initial cond. field 932 933 if (linit_cond.ge.1.and.lroot) then 934 if(linversionout.eq.1) then 935 call initial_cond_output_inversion(itime) ! dump initial cond. field 936 else 937 call initial_cond_output(itime) ! dump initial cond. fielf 938 endif 939 endif 901 940 902 941
Note: See TracChangeset
for help on using the changeset viewer.