Changeset 6a678e3 in flexpart.git for src


Ignore:
Timestamp:
Jan 25, 2016, 2:17:34 PM (8 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, univie
Children:
26f6039
Parents:
fddc6ec
Message:

Added option to use double precision for calculating the deposition fields

Location:
src
Files:
1 added
1 deleted
20 edited

Legend:

Unmodified
Added
Removed
  • src/concoutput.f90

    r6b22af9 r6a678e3  
    6363  use par_mod
    6464  use com_mod
     65  use mean_mod
    6566
    6667  implicit none
     
    9091
    9192!real sparse_dump_u(numxgrid*numygrid*numzgrid)
    92   real :: auxgrid(nclassunc),gridtotal,gridsigmatotal,gridtotalunc
    93   real :: wetgridtotal,wetgridsigmatotal,wetgridtotalunc
    94   real :: drygridtotal,drygridsigmatotal,drygridtotalunc
     93  real(dep_prec) :: auxgrid(nclassunc)
     94  real(sp) :: gridtotal,gridsigmatotal,gridtotalunc
     95  real(dep_prec) :: wetgridtotal,wetgridsigmatotal,wetgridtotalunc
     96  real(dep_prec) :: drygridtotal,drygridsigmatotal,drygridtotalunc
    9597  real :: halfheight,dz,dz1,dz2,tot_mu(maxspec,maxpointspec_act)
    9698  real,parameter :: smallnum = tiny(0.0) ! smallest number that can be handled
  • src/concoutput_mpi.f90

    rfdc0f03 r6a678e3  
    6868  use com_mod
    6969  use mpi_mod
     70  use mean_mod
    7071
    7172  implicit none
     
    9596
    9697!real sparse_dump_u(numxgrid*numygrid*numzgrid)
    97   real :: auxgrid(nclassunc),gridtotal,gridsigmatotal,gridtotalunc
    98   real :: wetgridtotal,wetgridsigmatotal,wetgridtotalunc
    99   real :: drygridtotal,drygridsigmatotal,drygridtotalunc
     98  real(dep_prec) :: auxgrid(nclassunc)
     99  real(sp) :: gridtotal,gridsigmatotal,gridtotalunc
     100  real(dep_prec) :: wetgridtotal,wetgridsigmatotal,wetgridtotalunc
     101  real(dep_prec) :: drygridtotal,drygridsigmatotal,drygridtotalunc
    100102  real :: halfheight,dz,dz1,dz2,tot_mu(maxspec,maxpointspec_act)
    101103  real,parameter :: smallnum = tiny(0.0) ! smallest number that can be handled
  • src/concoutput_nest.f90

    r5f9d14a r6a678e3  
    6161  use par_mod
    6262  use com_mod
     63  use mean_mod
    6364
    6465  implicit none
     
    8889
    8990  !real sparse_dump_u(numxgrid*numygrid*numzgrid)
    90   real :: auxgrid(nclassunc)
     91  real(dep_prec) :: auxgrid(nclassunc)
    9192  real :: halfheight,dz,dz1,dz2,tot_mu(maxspec,maxpointspec_act)
    9293  real,parameter :: smallnum = tiny(0.0) ! smallest number that can be handled
  • src/concoutput_nest_mpi.f90

    r5f9d14a r6a678e3  
    6565  use com_mod
    6666  use mpi_mod
     67  use mean_mod
    6768
    6869  implicit none
     
    9293
    9394  !real sparse_dump_u(numxgrid*numygrid*numzgrid)
    94   real :: auxgrid(nclassunc)
     95  real(dep_prec) :: auxgrid(nclassunc)
    9596  real :: halfheight,dz,dz1,dz2,tot_mu(maxspec,maxpointspec_act)
    9697  real,parameter :: smallnum = tiny(0.0) ! smallest number that can be handled
  • src/concoutput_surf.f90

    r8a65cb0 r6a678e3  
    6363  use par_mod
    6464  use com_mod
     65  use mean_mod
    6566
    6667  implicit none
     
    9091
    9192  !real sparse_dump_u(numxgrid*numygrid*numzgrid)
    92   real :: auxgrid(nclassunc),gridtotal,gridsigmatotal,gridtotalunc
    93   real :: wetgridtotal,wetgridsigmatotal,wetgridtotalunc
    94   real :: drygridtotal,drygridsigmatotal,drygridtotalunc
     93  real(dep_prec) :: auxgrid(nclassunc)
     94  real(sp) :: gridtotal,gridsigmatotal,gridtotalunc
     95  real(dep_prec) :: wetgridtotal,wetgridsigmatotal,wetgridtotalunc
     96  real(dep_prec) :: drygridtotal,drygridsigmatotal,drygridtotalunc
    9597  real :: halfheight,dz,dz1,dz2,tot_mu(maxspec,maxpointspec_act)
    9698  real,parameter :: smallnum = tiny(0.0) ! smallest number that can be handled
  • src/concoutput_surf_mpi.f90

    r5f9d14a r6a678e3  
    6969  use com_mod
    7070  use mpi_mod
     71  use mean_mod
    7172
    7273  implicit none
     
    9697
    9798  !real sparse_dump_u(numxgrid*numygrid*numzgrid)
    98   real :: auxgrid(nclassunc),gridtotal,gridsigmatotal,gridtotalunc
    99   real :: wetgridtotal,wetgridsigmatotal,wetgridtotalunc
    100   real :: drygridtotal,drygridsigmatotal,drygridtotalunc
     99  real(dep_prec) :: auxgrid(nclassunc)
     100  real(sp) :: gridtotal,gridsigmatotal,gridtotalunc
     101  real(dep_prec) :: wetgridtotal,wetgridsigmatotal,wetgridtotalunc
     102  real(dep_prec) :: drygridtotal,drygridsigmatotal,drygridtotalunc
    101103  real :: halfheight,dz,dz1,dz2,tot_mu(maxspec,maxpointspec_act)
    102104  real,parameter :: smallnum = tiny(0.0) ! smallest number that can be handled
  • src/concoutput_surf_nest.f90

    rf13406c r6a678e3  
    6161  use par_mod
    6262  use com_mod
     63  use mean_mod
    6364
    6465  implicit none
     
    8889
    8990  !real sparse_dump_u(numxgrid*numygrid*numzgrid)
    90   real :: auxgrid(nclassunc)
     91  real(dep_prec) :: auxgrid(nclassunc)
    9192  real :: halfheight,dz,dz1,dz2,tot_mu(maxspec,maxpointspec_act)
    9293  real,parameter :: smallnum = tiny(0.0) ! smallest number that can be handled
  • src/concoutput_surf_nest_mpi.f90

    r5f9d14a r6a678e3  
    6464  use com_mod
    6565  use mpi_mod
     66  use mean_mod
    6667
    6768  implicit none
     
    9192
    9293  !real sparse_dump_u(numxgrid*numygrid*numzgrid)
    93   real :: auxgrid(nclassunc)
     94  real(dep_prec) :: auxgrid(nclassunc)
    9495  real :: halfheight,dz,dz1,dz2,tot_mu(maxspec,maxpointspec_act)
    9596  real,parameter :: smallnum = tiny(0.0) ! smallest number that can be handled
  • src/ecmwf_mod.f90

    • Property mode changed from 100755 to 100644
  • src/gfs_mod.f90

    • Property mode changed from 100755 to 100644
  • src/makefile

    rfdc0f03 r6a678e3  
    8282xmass_mod.o             flux_mod.o \
    8383point_mod.o             outg_mod.o \
    84                         random_mod.o
     84mean_mod.o              random_mod.o
    8585
    8686MPI_MODOBJS = \
     
    167167interpol_vdep.o         interpol_rain.o \
    168168hanna.o                 wetdepokernel.o \
    169 mean.o                  wetdepo.o \
     169                  wetdepo.o \
    170170hanna_short.o           windalign.o \
    171171hanna1.o                        \
     
    293293conccalc.o: com_mod.o outg_mod.o par_mod.o unc_mod.o
    294294conccalc_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o unc_mod.o
    295 concoutput.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o
     295concoutput.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
    296296concoutput_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o point_mod.o \
    297         unc_mod.o
    298 concoutput_nest.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o
     297        unc_mod.o mean_mod.o
     298concoutput_nest.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
    299299concoutput_nest_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o point_mod.o \
    300         unc_mod.o
    301 concoutput_surf.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o
     300        unc_mod.o mean_mod.o
     301concoutput_surf.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
    302302concoutput_surf_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o point_mod.o \
    303         unc_mod.o
    304 concoutput_surf_nest.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o
     303        unc_mod.o mean_mod.o
     304concoutput_surf_nest.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
    305305concoutput_surf_nest_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o \
    306         point_mod.o unc_mod.o
     306        point_mod.o unc_mod.o mean_mod.o
    307307conv_mod.o: par_mod.o
    308308convect43c.o: conv_mod.o par_mod.o
     
    359359interpol_wind_short_nests.o: com_mod.o interpol_mod.o par_mod.o
    360360juldate.o: par_mod.o
     361mean_mod.o: par_mod.o
    361362mpi_mod.o: com_mod.o par_mod.o unc_mod.o
    362 netcdf_output_mod.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o
     363netcdf_output_mod.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o
    363364obukhov.o: par_mod.o
    364365obukhov_gfs.o: par_mod.o
     
    366367openouttraj.o: com_mod.o par_mod.o point_mod.o
    367368openreceptors.o: com_mod.o par_mod.o
     369outg_mod.o: par_mod.o
    368370outgrid_init.o: com_mod.o flux_mod.o oh_mod.o outg_mod.o par_mod.o unc_mod.o
    369371outgrid_init_nest.o: com_mod.o outg_mod.o par_mod.o unc_mod.o
     
    376378partoutput_short_mpi.o: com_mod.o mpi_mod.o par_mod.o
    377379pbl_profile.o: par_mod.o
    378 plumetraj.o: com_mod.o par_mod.o point_mod.o
     380plumetraj.o: com_mod.o par_mod.o point_mod.o mean_mod.o
    379381psih.o: par_mod.o
    380382psim.o: par_mod.o
  • src/mpi_mod.f90

    rfdc0f03 r6a678e3  
    5353!                         unless a dedicated process runs getfields/readwind *
    5454! lmp_sync                If .false., use asynchronous MPI                   *
     55! mp_cp                   Real precision to use for deposition fields        *
    5556!                                                                            *
    5657!                                                                            *
     
    8485  integer :: mp_seed=0
    8586  integer, parameter :: mp_sp=MPI_REAL4, mp_dp=MPI_REAL8
    86   integer, parameter :: mp_pp=mp_sp
     87  integer :: mp_cp
    8788  integer, parameter :: id_root=0 ! master process
    8889
     
    163164!   mp_np       number of running processes, decided at run-time
    164165!***********************************************************************
    165     use par_mod, only: maxpart, numwfmem
     166    use par_mod, only: maxpart, numwfmem, dep_prec
    166167    use com_mod, only: mpi_mode
    167168
     
    170171    integer :: i,j,s,addmaxpart=0
    171172
    172 ! each process gets an ID (mp_pid) in the range 0,..,mp_np-1
     173! Each process gets an ID (mp_pid) in the range 0,..,mp_np-1
    173174    call MPI_INIT(mp_ierr)
    174175    if (mp_ierr /= 0) goto 100
     
    179180
    180181
    181 ! this variable is used to handle subroutines common to parallel/serial version
     182! Variable mpi_mode is used to handle subroutines common to parallel/serial version
    182183    if (lmp_sync) then
    183184      mpi_mode=2 ! hold 2 windfields in memory
     
    188189    if (mp_pid.ne.0) then
    189190      lroot = .false.
     191    end if
     192
     193! Set MPI precision to use for transferring deposition fields
     194!************************************************************
     195    if (dep_prec==dp) then
     196      mp_cp = MPI_REAL8
     197      if (lroot) write(*,*) 'Using double precision for deposition fields'
     198    else if (dep_prec==sp) then
     199      mp_cp = MPI_REAL4
     200      if (lroot) write(*,*) 'Using single precision for deposition fields'
     201    else
     202      write(*,*) 'ERROR: something went wrong setting MPI real precision'
     203      stop
    190204    end if
    191205
     
    16711685
    16721686    if ((WETDEP).and.(ldirect.gt.0)) then
    1673       call MPI_Reduce(wetgridunc, wetgridunc0, grid_size2d, mp_sp, MPI_SUM, id_root, &
     1687      call MPI_Reduce(wetgridunc, wetgridunc0, grid_size2d, mp_cp, MPI_SUM, id_root, &
    16741688           & mp_comm_used, mp_ierr)
    16751689      if (mp_ierr /= 0) goto 600
     
    16771691
    16781692    if ((DRYDEP).and.(ldirect.gt.0)) then
    1679       call MPI_Reduce(drygridunc, drygridunc0, grid_size2d, mp_sp, MPI_SUM, id_root, &
     1693      call MPI_Reduce(drygridunc, drygridunc0, grid_size2d, mp_cp, MPI_SUM, id_root, &
    16801694           & mp_comm_used, mp_ierr)
    16811695      if (mp_ierr /= 0) goto 600
     
    17471761
    17481762    if ((WETDEP).and.(ldirect.gt.0)) then
    1749       call MPI_Reduce(wetgriduncn, wetgriduncn0, grid_size2d, mp_sp, MPI_SUM, id_root, &
     1763      call MPI_Reduce(wetgriduncn, wetgriduncn0, grid_size2d, mp_cp, MPI_SUM, id_root, &
    17501764           & mp_comm_used, mp_ierr)
    17511765      if (mp_ierr /= 0) goto 600
     
    17531767
    17541768    if ((DRYDEP).and.(ldirect.gt.0)) then
    1755       call MPI_Reduce(drygriduncn, drygriduncn0, grid_size2d, mp_sp, MPI_SUM, id_root, &
     1769      call MPI_Reduce(drygriduncn, drygriduncn0, grid_size2d, mp_cp, MPI_SUM, id_root, &
    17561770           & mp_comm_used, mp_ierr)
    17571771      if (mp_ierr /= 0) goto 600
  • src/netcdf_output_mod.f90

    rd8107c2 r6a678e3  
    3636  !    switch write_releases
    3737  !  - additional updates for FLEXPART 9.x
     38  !
     39  ! ESO 2016
     40  !  - Deposition fields can be calculated in double precision, see variable
     41  !    'dep_prec' in par_mod
    3842  !*****************************************************************************
    3943
     
    4852                       wetgrid,wetgridsigma,drygrid,drygridsigma,grid,gridsigma,&
    4953                       area,arean,volumen, orooutn
    50   use par_mod,   only: dp, maxspec, maxreceptor, nclassunc,&
     54  use par_mod,   only: dep_prec, sp, dp, maxspec, maxreceptor, nclassunc,&
    5155                       unitoutrecept,unitoutreceptppt, nxmax,unittmp
    5256  use com_mod,   only: path,length,ldirect,ibdate,ibtime,iedate,ietime, &
     
    7074                       nested_output, ipout, surf_only, linit_cond, &
    7175                       flexversion,mpi_mode
     76
     77  use mean_mod
    7278
    7379  implicit none
     
    723729  integer, intent(in) :: itime
    724730  real, intent(in)    :: outnum
    725   real, intent(out)   :: gridtotalunc,wetgridtotalunc,drygridtotalunc
     731  real(dep_prec),intent(out):: wetgridtotalunc,drygridtotalunc
     732  real, intent(out)   :: gridtotalunc
    726733  real                :: densityoutrecept(maxreceptor)
    727734  integer             :: ncid,kp,ks,kz,ix,jy,iix,jjy,kzz,kzzm1,ngrid
    728   integer             :: nage,i,l, jj
     735  integer             :: nage,i,l,jj
    729736  real                :: tot_mu(maxspec,maxpointspec_act)
    730737  real                :: halfheight,dz,dz1,dz2
    731738  real                :: xl,yl,xlrot,ylrot,zagnd,zagndprev
    732   real                :: auxgrid(nclassunc),gridtotal,gridsigmatotal
    733   real                :: wetgridtotal,wetgridsigmatotal
    734   real                :: drygridtotal,drygridsigmatotal
     739  real(dep_prec)      :: auxgrid(nclassunc)
     740  real(dep_prec)      :: gridtotal,gridsigmatotal
     741  real(dep_prec)      :: wetgridtotal,wetgridsigmatotal
     742  real(dep_prec)      :: drygridtotal,drygridsigmatotal
     743  ! real(sp)            :: gridtotal,gridsigmatotal
     744  ! real(sp)            :: wetgridtotal,wetgridsigmatotal
     745  ! real(sp)            :: drygridtotal,drygridsigmatotal
    735746
    736747  real, parameter     :: weightair=28.97
     
    889900                   wetgridsigma(ix,jy),nclassunc)
    890901              ! Multiply by number of classes to get total concentration
    891               wetgrid(ix,jy)=wetgrid(ix,jy)*real(nclassunc)
     902              wetgrid(ix,jy)=wetgrid(ix,jy)*real(nclassunc,kind=dep_prec)
    892903              wetgridtotal=wetgridtotal+wetgrid(ix,jy)
    893904              ! Calculate standard deviation of the mean
    894905              wetgridsigma(ix,jy)= &
    895906                   wetgridsigma(ix,jy)* &
    896                    sqrt(real(nclassunc))
     907                   sqrt(real(nclassunc,kind=dep_prec))
    897908              wetgridsigmatotal=wetgridsigmatotal+ &
    898909                   wetgridsigma(ix,jy)
     
    10611072  integer, intent(in) :: itime
    10621073  real, intent(in)    :: outnum
    1063   real, intent(out)   :: gridtotalunc,wetgridtotalunc,drygridtotalunc
     1074  real(sp), intent(out)   :: gridtotalunc
     1075  real(dep_prec), intent(out)   :: wetgridtotalunc,drygridtotalunc
    10641076
    10651077  print*,'Netcdf output for surface only not yet implemented'
     
    11171129  real                :: halfheight,dz,dz1,dz2
    11181130  real                :: xl,yl,xlrot,ylrot,zagnd,zagndprev
    1119   real                :: auxgrid(nclassunc),gridtotal
     1131  real(dep_prec)      :: auxgrid(nclassunc)
     1132  real                :: gridtotal
    11201133  real, parameter     :: weightair=28.97
    11211134
  • src/outg_mod.f90

    rf13406c r6a678e3  
    2222module outg_mod
    2323
     24  use par_mod, only: dep_prec
     25
    2426  implicit none
    2527
     
    3739  real,allocatable, dimension (:,:,:) :: factor3d
    3840  real,allocatable, dimension (:,:,:) :: grid
    39   real,allocatable, dimension (:,:) :: wetgrid
    40   real,allocatable, dimension (:,:) :: drygrid
     41  real(dep_prec),allocatable, dimension (:,:) :: wetgrid
     42  real(dep_prec),allocatable, dimension (:,:) :: drygrid
    4143  real,allocatable, dimension (:,:,:) :: gridsigma
    42   real,allocatable, dimension (:,:) :: drygridsigma
    43   real,allocatable, dimension (:,:) :: wetgridsigma
     44  real(dep_prec),allocatable, dimension (:,:) :: drygridsigma
     45  real(dep_prec),allocatable, dimension (:,:) :: wetgridsigma
    4446  real,allocatable, dimension (:) :: sparse_dump_r
    4547  real,allocatable, dimension (:) :: sparse_dump_u
  • src/par_mod.f90

    rfdc0f03 r6a678e3  
    4141
    4242  !****************************************************************
    43   ! Parameter defining KIND parameter for double/single precision
    44   ! 'cp' sets the precision for some internal calculations (sp or dp),
    45   ! sp is default but dp can be used for increased precision.
    46   ! WARNING: for now, do not use 'dp'
     43  ! Parameters defining KIND parameter for double/single precision
    4744  !****************************************************************
    4845
    4946  integer,parameter :: dp=selected_real_kind(P=15)
    5047  integer,parameter :: sp=selected_real_kind(6)
    51   integer,parameter :: cp=sp ! sp is default
     48
     49  !****************************************************************
     50  ! dep_prec sets the precision for deposition calculations (sp or
     51  ! dp). sp is default, dp can be used for increased precision.
     52  !****************************************************************
     53
     54  integer,parameter :: dep_prec=dp
    5255
    5356  !***********************************************************
     
    7982  real,parameter :: hmixmin=100., hmixmax=4500., turbmesoscale=0.16
    8083  real,parameter :: d_trop=50., d_strat=0.1
    81   real,parameter :: rho_water=1000 !ZHG 2015 [kg/m3]
     84  real,parameter :: rho_water=1000. !ZHG 2015 [kg/m3]
    8285  ! karman                  Karman's constant
    8386  ! href [m]                Reference height for dry deposition
  • src/plumetraj.f90

    re200b7a r6a678e3  
    5555  use par_mod
    5656  use com_mod
     57  use mean_mod
    5758
    5859  implicit none
  • src/timemanager.f90

    rfdc0f03 r6a678e3  
    111111  ! real :: us(maxpart),vs(maxpart),ws(maxpart)
    112112  ! integer(kind=2) :: cbt(maxpart)
    113   real :: drydeposit(maxspec),gridtotalunc,wetgridtotalunc
    114   real :: drygridtotalunc,xold,yold,zold,xmassfract
     113  real(sp) :: gridtotalunc
     114  real(dep_prec) :: drydeposit(maxspec),wetgridtotalunc,drygridtotalunc
     115  real :: xold,yold,zold,xmassfract
    115116  real, parameter :: e_inv = 1.0/exp(1.0)
    116117  !double precision xm(maxspec,maxpointspec_act),
     
    595596!ZHG 2015
    596597                  !CGZ-lifetime: Check mass fraction left/save lifetime
    597                    ! if(real(npart(npoint(j)))*xmass1(j,ks)/xmass(npoint(j),ks).lt.inv_e.and.checklifetime(j,ks).eq.0.)then
     598                   ! if(real(npart(npoint(j)))*xmass1(j,ks)/xmass(npoint(j),ks).lt.e_inv.and.checklifetime(j,ks).eq.0.)then
    598599                       !Mass below 1% of initial >register lifetime
    599600                       ! checklifetime(j,ks)=abs(itra1(j)-itramem(j))
  • src/timemanager_mpi.f90

    rfdc0f03 r6a678e3  
    114114  real :: decfact
    115115
    116   real :: drydeposit(maxspec),gridtotalunc,wetgridtotalunc
    117   real :: drygridtotalunc,xold,yold,zold,xmassfract
     116  real(sp) :: gridtotalunc
     117  real(dep_prec) :: drygridtotalunc,wetgridtotalunc,drydeposit(maxspec)
     118  real :: xold,yold,zold,xmassfract
    118119  real, parameter :: e_inv = 1.0/exp(1.0)
    119120!double precision xm(maxspec,maxpointspec_act),
     
    261262! TODO: z0(7) changes with time, so should be dimension (numclass,2) to
    262263! allow transfer of the future value in the background
    263         call MPI_Bcast(z0,numclass,mp_pp,id_read,MPI_COMM_WORLD,mp_ierr)
     264        call MPI_Bcast(z0,numclass,mp_sp,id_read,MPI_COMM_WORLD,mp_ierr)
    264265        call mpif_gf_request
    265266      end if
     
    756757                   
    757758                   !CGZ-lifetime: Check mass fraction left/save lifetime
    758                    ! if(lroot.and.real(npart(npoint(j)))*xmass1(j,ks)/xmass(npoint(j),ks).lt.inv_e.and.checklifetime(j,ks).eq.0.)then
     759                   ! if(lroot.and.real(npart(npoint(j)))*xmass1(j,ks)/xmass(npoint(j),ks).lt.e_inv.and.checklifetime(j,ks).eq.0.)then
    759760                       !Mass below 1% of initial >register lifetime
    760761                   !     checklifetime(j,ks)=abs(itra1(j)-itramem(j))
  • src/unc_mod.f90

    rfdc0f03 r6a678e3  
    2222module unc_mod
    2323
    24   use par_mod, only:cp
     24  use par_mod, only:dep_prec
    2525
    2626  implicit none
     
    2828  real,allocatable ,dimension (:,:,:,:,:,:,:) :: gridunc
    2929  real,allocatable, dimension (:,:,:,:,:,:,:) :: griduncn
    30   real(cp),allocatable, dimension (:,:,:,:,:,:) :: drygridunc
    31   real(cp),allocatable, dimension (:,:,:,:,:,:) :: drygriduncn
    32   real(cp),allocatable, dimension (:,:,:,:,:,:) :: wetgridunc
    33   real(cp),allocatable, dimension (:,:,:,:,:,:) :: wetgriduncn
     30  real(dep_prec),allocatable, dimension (:,:,:,:,:,:) :: drygridunc
     31  real(dep_prec),allocatable, dimension (:,:,:,:,:,:) :: drygriduncn
     32  real(dep_prec),allocatable, dimension (:,:,:,:,:,:) :: wetgridunc
     33  real(dep_prec),allocatable, dimension (:,:,:,:,:,:) :: wetgriduncn
    3434
    3535! For sum of individual contributions, used for the MPI version
    36   real(cp),allocatable, dimension (:,:,:,:,:,:) :: drygridunc0
    37   real(cp),allocatable, dimension (:,:,:,:,:,:) :: drygriduncn0
    38   real(cp),allocatable, dimension (:,:,:,:,:,:) :: wetgridunc0
    39   real(cp),allocatable, dimension (:,:,:,:,:,:) :: wetgriduncn0
     36  real(dep_prec),allocatable, dimension (:,:,:,:,:,:) :: drygridunc0
     37  real(dep_prec),allocatable, dimension (:,:,:,:,:,:) :: drygriduncn0
     38  real(dep_prec),allocatable, dimension (:,:,:,:,:,:) :: wetgridunc0
     39  real(dep_prec),allocatable, dimension (:,:,:,:,:,:) :: wetgriduncn0
    4040
    4141  real,allocatable, dimension (:,:,:,:,:) :: init_cond
  • src/verttransform.f90

    r41d8574 r6a678e3  
    772772!          if (lsp.gt.convp) then !  prectype='lsp'
    773773!            lconvectprec = .false.
    774 !          else ! prectype='cp '
     774!          else ! prectype='cp'
    775775!            lconvectprec = .true.
    776776!           endif
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG