Changeset 8a65cb0 in flexpart.git for src/concoutput_surf.f90
- Timestamp:
- Mar 2, 2015, 3:11:55 PM (9 years ago)
- Branches:
- master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
- Children:
- 1d207bb
- Parents:
- 60403cd
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/concoutput_surf.f90
rf13406c r8a65cb0 173 173 yl=outlat0+real(jy)*dyout 174 174 xl=(xl-xlon0)/dx 175 yl=(yl-ylat0)/d x175 yl=(yl-ylat0)/dy 176 176 iix=max(min(nint(xl),nxmin1),0) 177 177 jjy=max(min(nint(yl),nymin1),0) … … 311 311 312 312 313 314 315 313 !******************************************************************* 316 314 ! Generate output: may be in concentration (ng/m3) or in mixing … … 320 318 ! For backward simulations, the unit is seconds, stored in grid_time 321 319 !******************************************************************* 320 322 321 if (verbosity.eq.1) then 323 322 print*,'concoutput_surf 4 (output)' … … 328 327 ! Concentration output 329 328 !********************* 329 330 330 if ((iout.eq.1).or.(iout.eq.3).or.(iout.eq.5)) then 331 331 332 if (verbosity.eq.1) then 332 333 print*,'concoutput_surf (Wet deposition)' … … 343 344 do jy=0,numygrid-1 344 345 do ix=0,numxgrid-1 345 ! oncentraion greater zero346 ! concentraion greater zero 346 347 if (wetgrid(ix,jy).gt.smallnum) then 347 348 if (sp_zer.eqv..true.) then ! first non zero value … … 369 370 write(unitoutgrid) sp_count_r 370 371 write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r) 371 ! write(unitoutgrid) sp_count_r 372 write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 372 ! write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 373 373 374 374 if (verbosity.eq.1) then … … 411 411 write(unitoutgrid) sp_count_r 412 412 write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r) 413 ! write(unitoutgrid) sp_count_r 414 write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 415 416 413 ! write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 417 414 418 415 if (verbosity.eq.1) then … … 421 418 WRITE(*,*) 'SYSTEM_CLOCK',count_clock - count_clock0 422 419 endif 420 423 421 ! Concentrations 424 422 425 ! if surf_only write only 1st layer 426 427 if(surf_only.eq.1) then 423 ! surf_only write only 1st layer 424 428 425 sp_count_i=0 429 426 sp_count_r=0 … … 440 437 sp_zer=.false. 441 438 sp_fact=sp_fact*(-1.) 442 439 endif 443 440 sp_count_r=sp_count_r+1 444 441 sparse_dump_r(sp_count_r)= & … … 451 448 gridsigma(ix,jy,kz)* & 452 449 factor3d(ix,jy,kz)/tot_mu(ks,kp) 453 else ! concentration is zero450 else ! concentration is zero 454 451 sp_zer=.true. 455 endif456 457 458 452 endif 453 end do 454 end do 455 end do 459 456 write(unitoutgrid) sp_count_i 460 457 write(unitoutgrid) (sparse_dump_i(i),i=1,sp_count_i) 461 458 write(unitoutgrid) sp_count_r 462 459 write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r) 463 ! write(unitoutgrid) sp_count_r 464 write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 465 else 466 467 ! write full vertical resolution 468 if (verbosity.eq.1) then 469 print*,'concoutput_surf (write full vertical resolution)' 470 CALL SYSTEM_CLOCK(count_clock) 471 WRITE(*,*) 'SYSTEM_CLOCK',count_clock - count_clock0 472 endif 473 474 sp_count_i=0 475 sp_count_r=0 476 sp_fact=-1. 477 sp_zer=.true. 478 do kz=1,numzgrid 479 do jy=0,numygrid-1 480 do ix=0,numxgrid-1 481 if (grid(ix,jy,kz).gt.smallnum) then 482 if (sp_zer.eqv..true.) then ! first non zero value 483 sp_count_i=sp_count_i+1 484 sparse_dump_i(sp_count_i)= & 485 ix+jy*numxgrid+kz*numxgrid*numygrid 486 sp_zer=.false. 487 sp_fact=sp_fact*(-1.) 488 endif 489 sp_count_r=sp_count_r+1 490 sparse_dump_r(sp_count_r)= & 491 sp_fact* & 492 grid(ix,jy,kz)* & 493 factor3d(ix,jy,kz)/tot_mu(ks,kp) 494 ! if ((factor(ix,jy,kz)/tot_mu(ks,kp)).eq.0) 495 ! + write (*,*) factor(ix,jy,kz),tot_mu(ks,kp),ks,kp 496 sparse_dump_u(sp_count_r)= & 497 gridsigma(ix,jy,kz)* & 498 factor3d(ix,jy,kz)/tot_mu(ks,kp) 499 else ! concentration is zero 500 sp_zer=.true. 501 endif 502 end do 503 end do 504 end do 505 write(unitoutgrid) sp_count_i 506 write(unitoutgrid) (sparse_dump_i(i),i=1,sp_count_i) 507 write(unitoutgrid) sp_count_r 508 write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r) 509 ! write(unitoutgrid) sp_count_r 510 write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 511 endif ! surf_only 512 513 endif ! concentration output 460 ! write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 461 462 endif ! concentration output 514 463 515 464 ! Mixing ratio output … … 553 502 write(unitoutgridppt) sp_count_r 554 503 write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r) 555 ! write(unitoutgridppt) sp_count_r 556 write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 504 ! write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 557 505 558 506 … … 592 540 write(unitoutgridppt) sp_count_r 593 541 write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r) 594 ! write(unitoutgridppt) sp_count_r 595 write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 542 ! write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 596 543 597 544 598 545 ! Mixing ratios 599 546 600 ! if surf_only write only 1st layer 601 602 if(surf_only.eq.1) then 547 ! surf_only write only 1st layer 548 603 549 sp_count_i=0 604 550 sp_count_r=0 … … 636 582 write(unitoutgridppt) sp_count_r 637 583 write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r) 638 ! write(unitoutgridppt) sp_count_r 639 write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 640 else 641 642 ! write full vertical resolution 643 644 sp_count_i=0 645 sp_count_r=0 646 sp_fact=-1. 647 sp_zer=.true. 648 do kz=1,numzgrid 649 do jy=0,numygrid-1 650 do ix=0,numxgrid-1 651 if (grid(ix,jy,kz).gt.smallnum) then 652 if (sp_zer.eqv..true.) then ! first non zero value 653 sp_count_i=sp_count_i+1 654 sparse_dump_i(sp_count_i)= & 655 ix+jy*numxgrid+kz*numxgrid*numygrid 656 sp_zer=.false. 657 sp_fact=sp_fact*(-1.) 658 endif 659 sp_count_r=sp_count_r+1 660 sparse_dump_r(sp_count_r)= & 661 sp_fact* & 662 1.e12*grid(ix,jy,kz) & 663 /volume(ix,jy,kz)/outnum* & 664 weightair/weightmolar(ks)/densityoutgrid(ix,jy,kz) 665 sparse_dump_u(sp_count_r)= & 666 1.e12*gridsigma(ix,jy,kz)/volume(ix,jy,kz)/ & 667 outnum*weightair/weightmolar(ks)/ & 668 densityoutgrid(ix,jy,kz) 669 else ! concentration is zero 670 sp_zer=.true. 671 endif 672 end do 673 end do 674 end do 675 write(unitoutgridppt) sp_count_i 676 write(unitoutgridppt) (sparse_dump_i(i),i=1,sp_count_i) 677 write(unitoutgridppt) sp_count_r 678 write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r) 679 ! write(unitoutgridppt) sp_count_r 680 write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 681 endif ! surf_only 584 ! write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 682 585 683 586 endif ! output for ppt
Note: See TracChangeset
for help on using the changeset viewer.