Changeset 2753a5c in flexpart.git for src


Ignore:
Timestamp:
Dec 20, 2018, 2:55:22 PM (5 years ago)
Author:
Ignacio Pisso <ip@…>
Branches:
master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug
Children:
7123c70
Parents:
df96ea65 (diff), 4ad96c5 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

resolved merging conflicts with GFS branch

Location:
src
Files:
1 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • src/FLEXPART.f90

    r50958b8 r2753a5c  
    455455  call timemanager(metdata_format)
    456456
     457  if (verbosity.gt.0) then
    457458! NIK 16.02.2005
    458   do i=1,nspec
    459     write(*,*) '**********************************************'
    460     write(*,*) 'Scavenging statistics for species ', species(i), ':'
    461     write(*,*) 'Total number of occurences of below-cloud scavenging', &
    462          & tot_blc_count(i)
    463     write(*,*) 'Total number of occurences of in-cloud    scavenging', &
    464          & tot_inc_count(i)
    465     write(*,*) '**********************************************'
    466   end do
     459    do i=1,nspec
     460      if (tot_inc_count(i).gt.0) then
     461         write(*,*) '**********************************************'
     462         write(*,*) 'Scavenging statistics for species ', species(i), ':'
     463         write(*,*) 'Total number of occurences of below-cloud scavenging', &
     464           & tot_blc_count(i)
     465         write(*,*) 'Total number of occurences of in-cloud    scavenging', &
     466           & tot_inc_count(i)
     467         write(*,*) '**********************************************'
     468      endif
     469    end do
     470    write (*,*) 'timemanager> call wetdepo'
     471  endif
    467472 
    468473  write(*,*) 'CONGRATULATIONS: YOU HAVE SUCCESSFULLY COMPLETED A FLE&
  • src/com_mod.f90

    rc2bd55e re9e0f06  
    174174  real :: ri(5,numclass),rac(5,numclass),rcl(maxspec,5,numclass)
    175175  real :: rgs(maxspec,5,numclass),rlu(maxspec,5,numclass)
    176   real :: rm(maxspec),dryvel(maxspec),kao(maxspec)
     176  real :: rm(maxspec),dryvel(maxspec)
    177177  real :: ohcconst(maxspec),ohdconst(maxspec),ohnconst(maxspec)
    178   ! se  it is possible to associate a species with a second one to make transfer from gas to aerosol
    179   integer :: spec_ass(maxspec)
    180178
    181179  real :: area_hour(maxspec,24),point_hour(maxspec,24)
  • src/get_wetscav.f90

    r79e0349 re9e0f06  
    151151      if (height(il).gt.ztra1(jpart)) then
    152152        hz=il-1
    153 !        goto 26
    154153        exit
    155154      endif
    156155    end do
    157 !26  continue
    158 
    159156
    160157    if (ngrid.eq.0) then
     
    203200
    204201
    205 !ZHG oct 2014 : Calculated for 1) both 2) lsp 3) convp
     202!ZHG oct 2014 : Calculated for 1) both 2) lsp 3) convp - 2 and 3 not used removed by SE
    206203! Tentatively differentiate the grfraction for lsp and convp for treating differently the two forms
    207204! for now they are treated the same
    208205    grfraction(1)=max(0.05,cc*(lsp*lfr(i)+convp*cfr(j))/(lsp+convp))
    209     grfraction(2)=max(0.05,cc*(lfr(i)))
    210     grfraction(3)=max(0.05,cc*(cfr(j)))
    211 
    212206
    213207! 2) Computation of precipitation rate in sub-grid cell
    214208!******************************************************
    215209    prec(1)=(lsp+convp)/grfraction(1)
    216     prec(2)=(lsp)/grfraction(2)
    217     prec(3)=(convp)/grfraction(3)
    218 
    219210
    220211! 3) Computation of scavenging coefficients for all species
    221212!    Computation of wet deposition
    222213!**********************************************************
    223 
    224214
    225215      if (ngrid.gt.0) then
     
    237227!******************************************************************
    238228        if ((dquer(ks).le.0.).and.(weta_gas(ks).gt.0..or.wetb_gas(ks).gt.0.)) then
    239           !        if (weta(ks).gt.0. .or. wetb(ks).gt.0.) then
    240229          blc_count(ks)=blc_count(ks)+1
    241230          wetscav=weta_gas(ks)*prec(1)**wetb_gas(ks)
     
    271260          endif
    272261         
    273 !             write(*,*) 'bl-cloud, act_temp=',act_temp, ',prec=',prec(1),',wetscav=', wetscav, ', jpart=',jpart
    274 
    275262        endif ! gas or particle
    276263!      endif ! positive below-cloud scavenging parameters given in Species file
     
    285272        if ((ccn_aero(ks).gt.0. .or. in_aero(ks).gt.0.).or.(henry(ks).gt.0.and.dquer(ks).le.0)) then
    286273          inc_count(ks)=inc_count(ks)+1
    287 !          write(*,*) 'Incloud: ',inc_count
    288274! if negative coefficients (turned off) set to zero for use in equation
    289275          if (ccn_aero(ks).lt.0.) ccn_aero(ks)=0.
     
    300286! sec test
    301287!           cl=1E6*1E-7*prec(1)**0.3 !Sec GFS new
    302             cl=1E6*2E-7*prec(1)**0.36 !Sec ECMWF new
     288            cl=1E6*2E-7*prec(1)**0.36 !Sec ECMWF new, is also suitable for GFS
    303289!           cl=2E-7*prec(1)**0.36 !Andreas
    304290!           cl=1.6E-6*prec(1)**0.36 !Henrik
     
    322308          if (dquer(ks).gt.0.) then
    323309            S_i= frac_act/cl
    324 !           write(*,*) 'Si: ',S_i
    325 
    326310! GAS
    327311!****
    328312          else
    329 
    330313            cle=(1-cl)/(henry(ks)*(r_air/3500.)*act_temp)+cl
    331 !REPLACE to switch old/ new scheme
    332           ! S_i=frac_act/cle
    333314            S_i=1/cle
    334315          endif ! gas or particle
    335316
    336317! scavenging coefficient based on Hertel et al 1995 - using the S_i for either gas or aerosol
    337 !OLD
    338           if ((readclouds.and.ngrid.eq.0).or.(readclouds_this_nest.and.ngrid.gt.0)) then
     318!SEC wetscav fix, the cloud height is no longer needed, it gives wrong results
    339319            wetscav=incloud_ratio*S_i*(prec(1)/3.6E6)
    340           else
    341 !SEC wetscav fix
    342              wetscav=incloud_ratio*S_i*(prec(1)/3.6E6)
    343 !            wetscav=incloud_ratio*S_i*(prec(1)/3.6E6)/clouds_h
    344           endif
    345320        endif ! positive in-cloud scavenging parameters given in Species file
    346321      endif !incloud
  • src/netcdf_output_mod.f90

    rae43937 r4ad96c5  
    6767                       ccn_aero,in_aero, & ! wetc_in,wetd_in, &
    6868                       reldiff,henry,f0,density,dquer,dsigma,dryvel,&
    69 !                       weightmolar,ohreact,spec_ass,kao,vsetaver,&
    70                        weightmolar,ohcconst,ohdconst,spec_ass,kao,vsetaver,&
     69                       weightmolar,ohcconst,ohdconst,vsetaver,&
    7170                       ! for concoutput_netcdf and concoutput_nest_netcdf
    7271                       nxmin1,nymin1,nz,oro,oron,rho,rhon,&
     
    114113  logical, parameter :: write_area = .false.
    115114
     115  ! coordinate transformation from internal to world coord
     116  real :: xp1,yp1,xp2,yp2
    116117contains
    117118
     
    512513        call nf90_err(nf90_put_att(ncid, sID, 'ohcconst', ohcconst(i)))
    513514        call nf90_err(nf90_put_att(ncid, sID, 'ohdconst', ohdconst(i)))
    514         call nf90_err(nf90_put_att(ncid, sID, 'kao', kao(i)))
    515515        call nf90_err(nf90_put_att(ncid, sID, 'vsetaver', vsetaver(i)))
    516         call nf90_err(nf90_put_att(ncid, sID, 'spec_ass', spec_ass(i)))
    517516
    518517        if (lnest) then
     
    535534        call nf90_err(nf90_put_att(ncid, sID, 'ohcconst', ohcconst(i)))
    536535        call nf90_err(nf90_put_att(ncid, sID, 'ohdconst', ohdconst(i)))
    537         call nf90_err(nf90_put_att(ncid, sID, 'kao', kao(i)))
    538536        call nf90_err(nf90_put_att(ncid, sID, 'vsetaver', vsetaver(i)))
    539         call nf90_err(nf90_put_att(ncid, sID, 'spec_ass', spec_ass(i)))
    540537
    541538        if (lnest) then
     
    673670       call nf90_err(nf90_put_var(ncid, relendID, ireleaseend(i), (/i/)))
    674671       call nf90_err(nf90_put_var(ncid, relkindzID, kindz(i), (/i/)))
    675        call nf90_err(nf90_put_var(ncid, rellng1ID, xpoint1(i), (/i/)))
    676        call nf90_err(nf90_put_var(ncid, rellng2ID, xpoint2(i), (/i/)))
    677        call nf90_err(nf90_put_var(ncid, rellat1ID, ypoint1(i), (/i/)))
    678        call nf90_err(nf90_put_var(ncid, rellat2ID, ypoint2(i), (/i/)))
     672       xp1=xpoint1(i)*dx+xlon0
     673       yp1=ypoint1(i)*dy+ylat0
     674       xp2=xpoint2(i)*dx+xlon0
     675       yp2=ypoint2(i)*dy+ylat0
     676       call nf90_err(nf90_put_var(ncid, rellng1ID, xp1, (/i/)))
     677       call nf90_err(nf90_put_var(ncid, rellng2ID, xp2, (/i/)))
     678       call nf90_err(nf90_put_var(ncid, rellat1ID, yp1, (/i/)))
     679       call nf90_err(nf90_put_var(ncid, rellat2ID, yp2, (/i/)))
    679680       call nf90_err(nf90_put_var(ncid, relzz1ID, zpoint1(i), (/i/)))
    680681       call nf90_err(nf90_put_var(ncid, relzz2ID, zpoint2(i), (/i/)))
  • src/readspecies.f90

    raa8c34a rd6a245b  
    6767  character(len=16) :: pspecies
    6868  real :: pdecay, pweta_gas, pwetb_gas, preldiff, phenry, pf0, pdensity, pdquer
    69   real :: pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pkao
     69  real :: pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst
    7070  real :: pcrain_aero, pcsnow_aero, pccn_aero, pin_aero
    71   integer :: readerror, pspec_ass
     71  real :: parea_dow(7), parea_hour(24), ppoint_dow(7), ppoint_hour(24)
     72  integer :: readerror
    7273
    7374! declare namelist
     
    7677       pcrain_aero, pcsnow_aero, pccn_aero, pin_aero, &
    7778       preldiff, phenry, pf0, pdensity, pdquer, &
    78        pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pspec_ass, pkao
     79       pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, &
     80       parea_dow, parea_hour, ppoint_dow, ppoint_hour
    7981
    8082  pspecies="" ! read failure indicator value
     
    9698  pohdconst=-9.9E-09
    9799  pohnconst=2.0
    98   pspec_ass=-9
    99   pkao=-99.99
    100100  pweightmolar=-999.9
    101101
     102  do j=1,24           ! initialize everything to no variation
     103    area_hour(pos_spec,j)=1.
     104    point_hour(pos_spec,j)=1.
     105  end do
     106  do j=1,7
     107    area_dow(pos_spec,j)=1.
     108    point_dow(pos_spec,j)=1.
     109  end do
     110
     111  if (readerror.ne.0) then ! text format input
    102112! Open the SPECIES file and read species names and properties
    103113!************************************************************
     
    164174    read(unitspecies,'(f8.2)',end=22) ohnconst(pos_spec)
    165175!  write(*,*) ohnconst(pos_spec)
    166     read(unitspecies,'(i18)',end=22) spec_ass(pos_spec)
    167 !  write(*,*) spec_ass(pos_spec)
    168     read(unitspecies,'(f18.2)',end=22) kao(pos_spec)
    169 !       write(*,*) kao(pos_spec)
     176
     177! Read in daily and day-of-week variation of emissions, if available
     178!*******************************************************************
     179
     180    read(unitspecies,*,end=22)
     181    do j=1,24     ! 24 hours, starting with 0-1 local time
     182      read(unitspecies,*) ihour,area_hour(pos_spec,j),point_hour(pos_spec,j)
     183    end do
     184    read(unitspecies,*)
     185    do j=1,7      ! 7 days of the week, starting with Monday
     186      read(unitspecies,*) idow,area_dow(pos_spec,j),point_dow(pos_spec,j)
     187    end do
    170188
    171189    pspecies=species(pos_spec)
     
    188206    pohdconst=ohdconst(pos_spec)
    189207    pohnconst=ohnconst(pos_spec)
    190     pspec_ass=spec_ass(pos_spec)
    191     pkao=kao(pos_spec)
    192 
    193   else
     208
     209
     210    do j=1,24     ! 24 hours, starting with 0-1 local time
     211      parea_hour(j)=area_hour(pos_spec,j)
     212      ppoint_hour(j)=point_hour(pos_spec,j)
     213    end do
     214    do j=1,7      ! 7 days of the week, starting with Monday
     215      parea_dow(j)=area_dow(pos_spec,j)
     216      ppoint_dow(j)=point_dow(pos_spec,j)
     217    end do
     218
     219  else ! namelist available
    194220
    195221    species(pos_spec)=pspecies
     
    212238    ohdconst(pos_spec)=pohdconst
    213239    ohnconst(pos_spec)=pohnconst
    214     spec_ass(pos_spec)=pspec_ass
    215     kao(pos_spec)=pkao
     240
     241    do j=1,24     ! 24 hours, starting with 0-1 local time
     242      area_hour(pos_spec,j)=parea_hour(j)
     243      point_hour(pos_spec,j)=ppoint_hour(j)
     244    end do
     245    do j=1,7      ! 7 days of the week, starting with Monday
     246      area_dow(pos_spec,j)=parea_dow(j)
     247      point_dow(pos_spec,j)=ppoint_dow(j)
     248    end do
    216249
    217250  endif
     
    303336  end if
    304337
    305   if (spec_ass(pos_spec).gt.0) then
    306     spec_found=.FALSE.
    307     do j=1,pos_spec-1
    308       if (spec_ass(pos_spec).eq.specnum(j)) then
    309         spec_ass(pos_spec)=j
    310         spec_found=.TRUE.
    311         ASSSPEC=.TRUE.
    312       endif
    313     end do
    314     if (spec_found.eqv..false.) then
    315       goto 997
    316     endif
    317   endif
    318 
    319   if (dsigma(i).eq.1.) dsigma(i)=1.0001   ! avoid floating exception
    320338  if (dsigma(i).eq.0.) dsigma(i)=1.0001   ! avoid floating exception
    321339
     
    330348
    331349
    332 ! Read in daily and day-of-week variation of emissions, if available
    333 !*******************************************************************
    334 ! HSO: This is not yet implemented as namelist parameters
    335 
    336   do j=1,24           ! initialize everything to no variation
    337     area_hour(i,j)=1.
    338     point_hour(i,j)=1.
    339   end do
    340   do j=1,7
    341     area_dow(i,j)=1.
    342     point_dow(i,j)=1.
    343   end do
    344 
    345   if (readerror.ne.0) then ! text format input
    346 
    347     read(unitspecies,*,end=22)
    348     do j=1,24     ! 24 hours, starting with 0-1 local time
    349       read(unitspecies,*) ihour,area_hour(i,j),point_hour(i,j)
    350     end do
    351     read(unitspecies,*)
    352     do j=1,7      ! 7 days of the week, starting with Monday
    353       read(unitspecies,*) idow,area_dow(i,j),point_dow(i,j)
    354     end do
    355 
    356350  endif
    357351
  • src/timemanager.f90

    ra9cf4b1 rc7d1052  
    449449
    450450        !write(*,46) float(itime)/3600,itime,numpart
    451 45      format(i13,' SECONDS SIMULATED: ',i13, ' PARTICLES:    Uncertainty: ',3f7.3)
     45145      format(i13,' Seconds simulated: ',i13, ' Particles:    Uncertainty: ',3f7.3)
    45245246      format(' Simulated ',f7.1,' hours (',i13,' s), ',i13, ' particles')
    453453        if (ipout.ge.1) call partoutput(itime)    ! dump particle positions
  • src/par_mod.f90

    r79e0349 rdf96ea65  
    148148  ! ECMWF
    149149! integer,parameter :: nxmax=361,nymax=181,nuvzmax=92,nwzmax=92,nzmax=92,nxshift=359 ! 1.0 degree 92 level
     150!  integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=0 ! 1.0 degree 138 level
    150151!   integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 1.0 degree 138 level
    151152! integer,parameter :: nxmax=721,nymax=361,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359  ! 0.5 degree 138 level
     
    153154
    154155! GFS
    155    integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=0
     156   integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138
     157   integer :: nxshift=0
    156158
    157159
  • src/pathnames

    rf28aa0a ra712161  
    11../options/
    2 ../output/
     2./output/
    33/
    44/xnilu_wrk/flex_wrk/WIND_FIELDS/AVAILABLE_ECMWF_OPER_fields_global
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG