Changeset 8a65cb0 in flexpart.git for src/concoutput_surf.f90


Ignore:
Timestamp:
Mar 2, 2015, 3:11:55 PM (9 years ago)
Author:
Espen Sollum ATMOS <espen@…>
Branches:
master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
Children:
1d207bb
Parents:
60403cd
Message:

Added code, makefile for dev branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/concoutput_surf.f90

    rf13406c r8a65cb0  
    173173        yl=outlat0+real(jy)*dyout
    174174        xl=(xl-xlon0)/dx
    175         yl=(yl-ylat0)/dx
     175        yl=(yl-ylat0)/dy
    176176        iix=max(min(nint(xl),nxmin1),0)
    177177        jjy=max(min(nint(yl),nymin1),0)
     
    311311
    312312
    313 
    314 
    315313  !*******************************************************************
    316314  ! Generate output: may be in concentration (ng/m3) or in mixing
     
    320318  ! For backward simulations, the unit is seconds, stored in grid_time
    321319  !*******************************************************************
     320
    322321  if (verbosity.eq.1) then
    323322     print*,'concoutput_surf 4 (output)'
     
    328327  ! Concentration output
    329328  !*********************
     329
    330330  if ((iout.eq.1).or.(iout.eq.3).or.(iout.eq.5)) then
     331
    331332  if (verbosity.eq.1) then
    332333     print*,'concoutput_surf (Wet deposition)'
     
    343344         do jy=0,numygrid-1
    344345            do ix=0,numxgrid-1
    345   !oncentraion greater zero
     346  ! concentraion greater zero
    346347              if (wetgrid(ix,jy).gt.smallnum) then
    347348                 if (sp_zer.eqv..true.) then ! first non zero value
     
    369370         write(unitoutgrid) sp_count_r
    370371         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)
    373373
    374374  if (verbosity.eq.1) then
     
    411411         write(unitoutgrid) sp_count_r
    412412         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)
    417414
    418415  if (verbosity.eq.1) then
     
    421418     WRITE(*,*) 'SYSTEM_CLOCK',count_clock - count_clock0   
    422419  endif
     420
    423421  ! Concentrations
    424422
    425   ! if surf_only write only 1st layer
    426 
    427          if(surf_only.eq.1) then
     423  ! surf_only write only 1st layer
     424
    428425         sp_count_i=0
    429426         sp_count_r=0
     
    440437                    sp_zer=.false.
    441438                    sp_fact=sp_fact*(-1.)
    442                    endif
     439                  endif
    443440                   sp_count_r=sp_count_r+1
    444441                   sparse_dump_r(sp_count_r)= &
     
    451448                        gridsigma(ix,jy,kz)* &
    452449                        factor3d(ix,jy,kz)/tot_mu(ks,kp)
    453               else ! concentration is zero
     450                else ! concentration is zero
    454451                  sp_zer=.true.
    455               endif
    456               end do
    457             end do
    458           end do
     452                endif
     453             end do
     454           end do
     455         end do
    459456         write(unitoutgrid) sp_count_i
    460457         write(unitoutgrid) (sparse_dump_i(i),i=1,sp_count_i)
    461458         write(unitoutgrid) sp_count_r
    462459         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
    514463
    515464  ! Mixing ratio output
     
    553502         write(unitoutgridppt) sp_count_r
    554503         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)
    557505
    558506
     
    592540         write(unitoutgridppt) sp_count_r
    593541         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)
    596543
    597544
    598545  ! Mixing ratios
    599546
    600   ! if surf_only write only 1st layer
    601 
    602          if(surf_only.eq.1) then
     547  ! surf_only write only 1st layer
     548
    603549         sp_count_i=0
    604550         sp_count_r=0
     
    636582         write(unitoutgridppt) sp_count_r
    637583         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)
    682585
    683586      endif ! output for ppt
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG