Changeset 6ecb30a in flexpart.git for src/convmix.f90
- Timestamp:
- Aug 17, 2017, 4:39:17 PM (7 years ago)
- Branches:
- master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
- Children:
- 5b34509
- Parents:
- 61e07ba
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/convmix.f90
r8a65cb0 r6ecb30a 20 20 !********************************************************************** 21 21 22 subroutine convmix(itime )22 subroutine convmix(itime,metdata_format) 23 23 ! i 24 24 !************************************************************** … … 31 31 !CHANGES by A. Stohl: 32 32 ! various run-time optimizations - February 2005 33 ! CHANGES by C. Forster, November 2005, NCEP GFS version 34 ! in the ECMWF version convection is calculated on the 35 ! original eta-levels 36 ! in the GFS version convection is calculated on the 37 ! FLEXPART levels 38 ! 39 ! Unified ECMWF and GFS builds 40 ! Marian Harustak, 12.5.2017 41 ! - Merged convmix and convmix_gfs into one routine using if-then 42 ! for meteo-type dependent code 33 43 !************************************************************** 34 44 … … 37 47 use com_mod 38 48 use conv_mod 49 use class_gribfile 39 50 40 51 implicit none … … 44 55 integer :: jy, kpart, ktop, ngrid,kz 45 56 integer :: igrid(maxpart), ipoint(maxpart), igridn(maxpart,maxnests) 57 integer :: metdata_format 46 58 47 59 ! itime [s] current time … … 104 116 105 117 ngrid=0 118 if (metdata_format.eq.GRIBFILE_CENTRE_ECMWF) then 106 119 do j=numbnests,1,-1 107 120 if ( x.gt.xln(j)+eps .and. x.lt.xrn(j)-eps .and. & … … 111 124 endif 112 125 end do 126 else 127 do j=numbnests,1,-1 128 if ( x.gt.xln(j) .and. x.lt.xrn(j) .and. & 129 y.gt.yln(j) .and. y.lt.yrn(j) ) then 130 ngrid=j 131 goto 23 132 endif 133 end do 134 endif 113 135 23 continue 114 136 … … 167 189 td2conv=(td2(ix,jy,1,mind1)*dt2+td2(ix,jy,1,mind2)*dt1)*dtt 168 190 !!$ do kz=1,nconvlev+1 !old 191 if (metdata_format.eq.GRIBFILE_CENTRE_ECMWF) then 169 192 do kz=1,nuvz-1 !bugfix 170 193 tconv(kz)=(tth(ix,jy,kz+1,mind1)*dt2+ & … … 173 196 qvh(ix,jy,kz+1,mind2)*dt1)*dtt 174 197 end do 198 else 199 do kz=1,nuvz-1 !bugfix 200 pconv(kz)=(pplev(ix,jy,kz,mind1)*dt2+ & 201 pplev(ix,jy,kz,mind2)*dt1)*dtt 202 tconv(kz)=(tt(ix,jy,kz,mind1)*dt2+ & 203 tt(ix,jy,kz,mind2)*dt1)*dtt 204 qconv(kz)=(qv(ix,jy,kz,mind1)*dt2+ & 205 qv(ix,jy,kz,mind2)*dt1)*dtt 206 end do 207 end if 175 208 176 209 ! Calculate translocation matrix 177 call calcmatrix(lconv,delt,cbaseflux(ix,jy) )210 call calcmatrix(lconv,delt,cbaseflux(ix,jy),metdata_format) 178 211 igrold = igr 179 212 ktop = 0 … … 252 285 ! calculate translocation matrix 253 286 !******************************* 254 call calcmatrix(lconv,delt,cbasefluxn(ix,jy,inest) )287 call calcmatrix(lconv,delt,cbasefluxn(ix,jy,inest),metdata_format) 255 288 igrold = igr 256 289 ktop = 0
Note: See TracChangeset
for help on using the changeset viewer.