Changeset 2eefa58 in flexpart.git for src/concoutput_surf_nest.f90


Ignore:
Timestamp:
May 27, 2019, 3:28:44 PM (5 years ago)
Author:
Espen Sollum ATMOS <eso@…>
Branches:
master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug
Children:
6741557
Parents:
f963113
Message:

Added Ronas changes for inversion output

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/concoutput_surf_nest.f90

    r6a678e3 r2eefa58  
    7070  real :: sp_fact
    7171  real :: outnum,densityoutrecept(maxreceptor),xl,yl
     72! RLT
     73  real :: densitydryrecept(maxreceptor)
     74  real :: factor_dryrecept(maxreceptor)
    7275
    7376  !real densityoutgrid(0:numxgrid-1,0:numygrid-1,numzgrid),
     
    9699  character :: adate*8,atime*6
    97100  character(len=3) :: anspec
    98 
     101  logical :: lexist
    99102
    100103  ! Determine current calendar date, needed for the file name
     
    159162        densityoutgrid(ix,jy,kz)=(rho(iix,jjy,kzz,2)*dz1+ &
    160163             rho(iix,jjy,kzz-1,2)*dz2)/dz
     164! RLT
     165        densitydrygrid(ix,jy,kz)=(rho_dry(iix,jjy,kzz,2)*dz1+ &
     166             rho_dry(iix,jjy,kzz-1,2)*dz2)/dz
    161167      end do
    162168    end do
     
    169175      jjy=max(min(nint(yl),nymin1),0)
    170176      densityoutrecept(i)=rho(iix,jjy,1,2)
     177! RLT
     178    densitydryrecept(i)=rho_dry(iix,jjy,1,2)
    171179    end do
    172180
     181! RLT
     182! conversion factor for output relative to dry air
     183  factor_drygrid=densityoutgrid/densitydrygrid
     184  factor_dryrecept=densityoutrecept/densitydryrecept
    173185
    174186  ! Output is different for forward and backward simulations
     
    317329         write(unitoutgrid) sp_count_r
    318330         write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r)
    319          write(unitoutgrid) sp_count_r
    320          write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)
     331!         write(unitoutgrid) sp_count_r
     332!         write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)
    321333
    322334  ! Dry deposition
     
    354366         write(unitoutgrid) sp_count_r
    355367         write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r)
    356          write(unitoutgrid) sp_count_r
    357          write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)
     368!         write(unitoutgrid) sp_count_r
     369!         write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)
    358370
    359371
     
    399411         write(unitoutgrid) sp_count_r
    400412         write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r)
    401          write(unitoutgrid) sp_count_r
    402          write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)
     413!         write(unitoutgrid) sp_count_r
     414!         write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)
    403415         else
    404416
     
    440452         write(unitoutgrid) sp_count_r
    441453         write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r)
    442          write(unitoutgrid) sp_count_r
    443          write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)
     454!         write(unitoutgrid) sp_count_r
     455!         write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)
    444456         endif ! surf_only
    445457
     
    487499         write(unitoutgridppt) sp_count_r
    488500         write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r)
    489          write(unitoutgridppt) sp_count_r
    490          write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)
     501!         write(unitoutgridppt) sp_count_r
     502!         write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)
    491503
    492504
     
    526538         write(unitoutgridppt) sp_count_r
    527539         write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r)
    528          write(unitoutgridppt) sp_count_r
    529          write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)
     540!         write(unitoutgridppt) sp_count_r
     541!         write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)
    530542
    531543
     
    570582         write(unitoutgridppt) sp_count_r
    571583         write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r)
    572          write(unitoutgridppt) sp_count_r
    573          write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)
     584!         write(unitoutgridppt) sp_count_r
     585!         write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)
    574586         else
    575587
     
    611623         write(unitoutgridppt) sp_count_r
    612624         write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r)
    613          write(unitoutgridppt) sp_count_r
    614          write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)
     625!         write(unitoutgridppt) sp_count_r
     626!         write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)
    615627         endif ! surf_only
    616628
     
    624636
    625637  end do
     638
     639! RLT Aug 2017
     640! Write out conversion factor for dry air
     641  inquire(file=path(2)(1:length(2))//'factor_drygrid_nest',exist=lexist)
     642  if (lexist) then
     643    ! open and append
     644    open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid_nest',form='unformatted',&
     645            status='old',action='write',access='append')
     646  else
     647    ! create new
     648    open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid_nest',form='unformatted',&
     649            status='new',action='write')
     650  endif
     651  sp_count_i=0
     652  sp_count_r=0
     653  sp_fact=-1.
     654  sp_zer=.true.
     655  do kz=1,1
     656    do jy=0,numygridn-1
     657      do ix=0,numxgridn-1
     658        if (factor_drygrid(ix,jy,kz).gt.(1.+smallnum).or.factor_drygrid(ix,jy,kz).lt.(1.-smallnum)) then
     659          if (sp_zer.eqv..true.) then ! first value not equal to one
     660            sp_count_i=sp_count_i+1
     661            sparse_dump_i(sp_count_i)= &
     662                  ix+jy*numxgridn+kz*numxgridn*numygridn
     663            sp_zer=.false.
     664            sp_fact=sp_fact*(-1.)
     665          endif
     666          sp_count_r=sp_count_r+1
     667          sparse_dump_r(sp_count_r)= &
     668               sp_fact*factor_drygrid(ix,jy,kz)
     669        else ! factor is one
     670          sp_zer=.true.
     671        endif
     672      end do
     673    end do
     674  end do
     675  write(unitoutfactor) sp_count_i
     676  write(unitoutfactor) (sparse_dump_i(i),i=1,sp_count_i)
     677  write(unitoutfactor) sp_count_r
     678  write(unitoutfactor) (sparse_dump_r(i),i=1,sp_count_r)
     679  close(unitoutfactor)
    626680
    627681
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG