Changeset 462f74b in flexpart.git for src/conccalc.f90
- Timestamp:
- Jul 12, 2016, 11:02:42 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:
- 842074e
- Parents:
- f28aa0a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/conccalc.f90
rfdc0f03 r462f74b 21 21 22 22 subroutine conccalc(itime,weight) 23 ! i i23 ! i i 24 24 !***************************************************************************** 25 25 ! * … … 61 61 62 62 63 integer :: usekernel 64 65 usekernel=0 66 if (usekernel.ne.1) then 67 write (*,*) 'NOT USING THE KERNEL!' 68 endif 63 69 ! For forward simulations, make a loop over the number of species; 64 70 ! for backward simulations, make an additional loop over the … … 181 187 !***************************************************************************** 182 188 183 if (( itage.lt.10800).or.(xl.lt.0.5).or.(yl.lt.0.5).or. &189 if (((itage.lt.10800).or.(xl.lt.0.5).or.(yl.lt.0.5).or. & 184 190 (xl.gt.real(numxgrid-1)-0.5).or. & 185 (yl.gt.real(numygrid-1)-0.5)) then ! no kernel, direct attribution to grid cell191 (yl.gt.real(numygrid-1)-0.5)).or.(usekernel.eq.0)) then ! no kernel, direct attribution to grid cell 186 192 if ((ix.ge.0).and.(jy.ge.0).and.(ix.le.numxgrid-1).and. & 187 193 (jy.le.numygrid-1)) then 188 do ks=1,nspec 189 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 194 if (SCAVDEP) then 195 do ks=1,nspec 196 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 197 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 198 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*weight*xscav_frac1(i,ks) 199 end do 200 else 201 do ks=1,nspec 202 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 190 203 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 191 204 xmass1(i,ks)/rhoi*weight 192 end do 205 end do 206 endif 193 207 endif 194 208 … … 220 234 if ((jy.ge.0).and.(jy.le.numygrid-1)) then 221 235 w=wx*wy 222 do ks=1,nspec 223 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 236 if (SCAVDEP) then 237 do ks=1,nspec 238 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 239 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 240 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*w*weight*xscav_frac1(i,ks) 241 end do 242 else 243 do ks=1,nspec 244 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 224 245 gridunc(ix,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 225 246 xmass1(i,ks)/rhoi*weight*w 226 end do 247 end do 248 endif 227 249 endif 228 250 229 251 if ((jyp.ge.0).and.(jyp.le.numygrid-1)) then 230 252 w=wx*(1.-wy) 231 do ks=1,nspec 232 gridunc(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 253 if (SCAVDEP) then 254 do ks=1,nspec 255 gridunc(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 256 gridunc(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)+ & 257 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*weight*w*xscav_frac1(i,ks) 258 end do 259 else 260 do ks=1,nspec 261 gridunc(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 233 262 gridunc(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)+ & 234 263 xmass1(i,ks)/rhoi*weight*w 235 end do 236 endif 237 endif 264 end do 265 endif 266 endif 267 endif !ix ge 0 238 268 239 269 … … 241 271 if ((jyp.ge.0).and.(jyp.le.numygrid-1)) then 242 272 w=(1.-wx)*(1.-wy) 243 do ks=1,nspec 244 gridunc(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 273 if (SCAVDEP) then 274 do ks=1,nspec 275 gridunc(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 276 gridunc(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)+ & 277 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*w*weight*xscav_frac1(i,ks) 278 end do 279 else 280 do ks=1,nspec 281 gridunc(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 245 282 gridunc(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)+ & 246 283 xmass1(i,ks)/rhoi*weight*w 247 end do 284 end do 285 endif 248 286 endif 249 287 250 288 if ((jy.ge.0).and.(jy.le.numygrid-1)) then 251 289 w=(1.-wx)*wy 252 do ks=1,nspec 253 gridunc(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)= & 290 if (SCAVDEP) then 291 do ks=1,nspec 292 gridunc(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)= & 293 gridunc(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 294 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*weight*w*xscav_frac1(i,ks) 295 end do 296 else 297 do ks=1,nspec 298 gridunc(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)= & 254 299 gridunc(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 255 300 xmass1(i,ks)/rhoi*weight*w 256 end do 257 endif 258 endif 259 endif 260 261 301 end do 302 endif 303 endif 304 endif !ixp ge 0 305 endif 262 306 263 307 !************************************ … … 285 329 if ((ix.ge.0).and.(jy.ge.0).and.(ix.le.numxgridn-1).and. & 286 330 (jy.le.numygridn-1)) then 287 do ks=1,nspec 288 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 331 if (SCAVDEP) then 332 do ks=1,nspec 333 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 334 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 335 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*weight*xscav_frac1(i,ks) 336 end do 337 else 338 do ks=1,nspec 339 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 289 340 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 290 341 xmass1(i,ks)/rhoi*weight 291 end do 342 end do 343 endif 292 344 endif 293 345 … … 319 371 if ((jy.ge.0).and.(jy.le.numygridn-1)) then 320 372 w=wx*wy 321 do ks=1,nspec 322 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 373 if (SCAVDEP) then 374 do ks=1,nspec 375 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 376 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 377 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*weight*w*xscav_frac1(i,ks) 378 end do 379 else 380 do ks=1,nspec 381 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)= & 323 382 griduncn(ix,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 324 383 xmass1(i,ks)/rhoi*weight*w 325 end do 384 end do 385 endif 326 386 endif 327 387 328 388 if ((jyp.ge.0).and.(jyp.le.numygridn-1)) then 329 389 w=wx*(1.-wy) 330 do ks=1,nspec 331 griduncn(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 390 if (SCAVDEP) then 391 do ks=1,nspec 392 griduncn(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 393 griduncn(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)+ & 394 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*weight*w*xscav_frac1(i,ks) 395 end do 396 else 397 do ks=1,nspec 398 griduncn(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 332 399 griduncn(ix,jyp,kz,ks,nrelpointer,nclass(i),nage)+ & 333 400 xmass1(i,ks)/rhoi*weight*w 334 end do 401 end do 402 endif 335 403 endif 336 404 endif … … 340 408 if ((jyp.ge.0).and.(jyp.le.numygridn-1)) then 341 409 w=(1.-wx)*(1.-wy) 342 do ks=1,nspec 343 griduncn(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 410 if (SCAVDEP) then 411 do ks=1,nspec 412 griduncn(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 413 griduncn(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)+ & 414 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*weight*w*xscav_frac1(i,ks) 415 end do 416 else 417 do ks=1,nspec 418 griduncn(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)= & 344 419 griduncn(ixp,jyp,kz,ks,nrelpointer,nclass(i),nage)+ & 345 420 xmass1(i,ks)/rhoi*weight*w 346 end do 421 end do 422 endif 347 423 endif 348 424 349 425 if ((jy.ge.0).and.(jy.le.numygridn-1)) then 350 426 w=(1.-wx)*wy 351 do ks=1,nspec 352 griduncn(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)= & 427 if (SCAVDEP) then 428 do ks=1,nspec 429 griduncn(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)= & 430 griduncn(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 431 xmass1(i,ks)/(1-xscav_frac1(i,ks))/rhoi*weight*w*xscav_frac1(i,ks) 432 end do 433 else 434 do ks=1,nspec 435 griduncn(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)= & 353 436 griduncn(ixp,jy,kz,ks,nrelpointer,nclass(i),nage)+ & 354 437 xmass1(i,ks)/rhoi*weight*w 355 end do 438 end do 439 endif 356 440 endif 357 441 endif 358 442 endif 359 360 443 endif 361 444 endif
Note: See TracChangeset
for help on using the changeset viewer.