particle_mod Module



Variables

Type Visibility Attributes Name Initial
type(particle), public, allocatable :: part(:)
type(particlecount), public :: count
real, public, allocatable :: val_av(:,:)
real, public, allocatable :: xscav_frac1(:,:)
real, public, allocatable :: mass(:,:)
real, public, allocatable :: mass_init(:,:)
real, public, allocatable :: wetdeposit(:,:)
real, public, allocatable :: drydeposit(:,:)
real, public, allocatable :: prob(:,:)
real, public, allocatable :: xplum(:)
real, public, allocatable :: yplum(:)
real, public, allocatable :: zplum(:)
integer, public, allocatable :: nclust(:)

Interfaces

public interface update_xlon

  • public subroutine update_xlon_dp(ipart, xchange)


    Updates the longitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real(kind=dp), intent(in) :: xchange
  • public subroutine update_xlon_sp(ipart, xchange)


    Updates the longitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real, intent(in) :: xchange
  • public subroutine update_xlon_int(ipart, xchange)


    Updates the longitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    integer, intent(in) :: xchange

public interface set_xlon

  • public subroutine set_xlon_dp(ipart, xvalue)


    Sets the longitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real(kind=dp), intent(in) :: xvalue
  • public subroutine set_xlon_sp(ipart, xvalue)


    Sets the longitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real, intent(in) :: xvalue
  • public subroutine set_xlon_int(ipart, xvalue)


    Sets the longitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    integer, intent(in) :: xvalue

public interface update_ylat

  • public subroutine update_ylat_dp(ipart, ychange)


    Updates the latitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real(kind=dp), intent(in) :: ychange
  • public subroutine update_ylat_sp(ipart, ychange)


    Updates the latitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real, intent(in) :: ychange
  • public subroutine update_ylat_int(ipart, ychange)


    Updates the latitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    integer, intent(in) :: ychange

public interface set_ylat

  • public subroutine set_ylat_dp(ipart, yvalue)


    Sets the latitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real(kind=dp), intent(in) :: yvalue
  • public subroutine set_ylat_sp(ipart, yvalue)


    Sets the latitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real, intent(in) :: yvalue
  • public subroutine set_ylat_int(ipart, yvalue)


    Sets the latitude of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    integer, intent(in) :: yvalue

public interface update_z

  • public subroutine update_z_dp(ipart, zchange)


    Updates the height of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real(kind=dp), intent(in) :: zchange
  • public subroutine update_z_sp(ipart, zchange)


    Updates the height of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real, intent(in) :: zchange

public interface set_z

  • public subroutine set_z_dp(ipart, zvalue)


    Updates the height of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real(kind=dp), intent(in) :: zvalue
  • public subroutine set_z_sp(ipart, zvalue)


    Updates the height of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real, intent(in) :: zvalue

public interface update_zeta

  • public subroutine update_zeta_dp(ipart, zchange)


    Updates the height of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real(kind=dp), intent(in) :: zchange
  • public subroutine update_zeta_sp(ipart, zchange)


    Updates the height of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real, intent(in) :: zchange

public interface set_zeta

  • public subroutine set_zeta_dp(ipart, zvalue)


    Updates the height of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real(kind=dp), intent(in) :: zvalue
  • public subroutine set_zeta_sp(ipart, zvalue)


    Updates the height of the particle


    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: ipart
    real, intent(in) :: zvalue

Derived Types

type, public ::  coordinates

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: xlon
real(kind=dp), public :: ylat
real, public :: z
real, public :: zeta

type, public ::  velocities

Components

Type Visibility Attributes Name Initial
real, public :: u
real, public :: v
real, public :: w
real, public :: weta

type, public ::  particle

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: xlon
real(kind=dp), public :: ylat
real(kind=dp), public :: xlon_prev
real(kind=dp), public :: ylat_prev
real(kind=dp), public :: z
real(kind=dp), public :: z_prev
real(kind=dp), public :: zeta
real(kind=dp), public :: zeta_prev
type(velocities), public :: turbvel
type(velocities), public :: mesovel
real, public :: settling
logical, public :: alive = .false.
logical, public :: spawned = .false.
logical, public :: nstop = .false.
logical, public :: etaupdate = .false.
logical, public :: meterupdate = .false.
integer(kind=2), public :: icbt
integer, public :: tstart
integer, public :: tend
integer, public :: npoint
integer, public :: nclass
integer, public :: idt
real, public :: ntime = 0.
real, public :: cartx_av = 0.
real, public :: carty_av = 0.
real, public :: cartz_av = 0.

type, public ::  particlecount

Components

Type Visibility Attributes Name Initial
integer, public :: alive = 0
integer, public :: spawned = 0
integer, public :: terminated = 0
integer, public :: allocated = 0
integer, public :: iterm_max = 0
integer, public :: ninmem = 0
logical, public, allocatable :: inmem(:)
integer, public, allocatable :: ialive(:)
integer, public, allocatable :: iterm(:)

Functions

public function particle_allocated(ipart)

Checks if the memory of the particle is * still allocated *

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart

Return Value logical


Subroutines

public subroutine get_newpart_index(ipart, iterm_index)

Returns the first free spot to put a new particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: ipart
integer, intent(inout) :: iterm_index

public subroutine get_totalpart_num(npart)

Returns total number of particles spawned *

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: npart

public subroutine get_alivepart_num(npart)

Returns number of particles currently alive *

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: npart

public subroutine spawn_particles(itime, nmpart)

Spawning particles

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: itime
integer, intent(in) :: nmpart

public subroutine spawn_particle(itime, ipart)

Spawning particles

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: itime Read more…
integer, intent(in) :: ipart Read more…

public subroutine terminate_particle(ipart, itime)

Terminating specified particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart Read more…
integer, intent(in) :: itime Read more…

public subroutine rewrite_ialive()

Arguments

None

public subroutine rewrite_iterm()

Arguments

None

public subroutine rewrite_ialive_single(ipart)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart

public subroutine alloc_particles(nmpart)

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nmpart

public subroutine alloc_particle(ipart)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart Read more…

public subroutine dealloc_particle_range(istart, iend)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: istart
integer, intent(in) :: iend

public subroutine dealloc_particle(ipart)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart

public subroutine dealloc_all_particles()

Arguments

None

public subroutine update_xlon_dp(ipart, xchange)

Updates the longitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real(kind=dp), intent(in) :: xchange

public subroutine update_xlon_sp(ipart, xchange)

Updates the longitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real, intent(in) :: xchange

public subroutine update_xlon_int(ipart, xchange)

Updates the longitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
integer, intent(in) :: xchange

public subroutine set_xlon_dp(ipart, xvalue)

Sets the longitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real(kind=dp), intent(in) :: xvalue

public subroutine set_xlon_sp(ipart, xvalue)

Sets the longitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real, intent(in) :: xvalue

public subroutine set_xlon_int(ipart, xvalue)

Sets the longitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
integer, intent(in) :: xvalue

public subroutine update_ylat_dp(ipart, ychange)

Updates the latitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real(kind=dp), intent(in) :: ychange

public subroutine update_ylat_sp(ipart, ychange)

Updates the latitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real, intent(in) :: ychange

public subroutine update_ylat_int(ipart, ychange)

Updates the latitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
integer, intent(in) :: ychange

public subroutine set_ylat_dp(ipart, yvalue)

Sets the latitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real(kind=dp), intent(in) :: yvalue

public subroutine set_ylat_sp(ipart, yvalue)

Sets the latitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real, intent(in) :: yvalue

public subroutine set_ylat_int(ipart, yvalue)

Sets the latitude of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
integer, intent(in) :: yvalue

public subroutine update_z_dp(ipart, zchange)

Updates the height of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real(kind=dp), intent(in) :: zchange

public subroutine update_z_sp(ipart, zchange)

Updates the height of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real, intent(in) :: zchange

public subroutine update_zeta_dp(ipart, zchange)

Updates the height of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real(kind=dp), intent(in) :: zchange

public subroutine update_zeta_sp(ipart, zchange)

Updates the height of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real, intent(in) :: zchange

public subroutine set_z_dp(ipart, zvalue)

Updates the height of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real(kind=dp), intent(in) :: zvalue

public subroutine set_z_sp(ipart, zvalue)

Updates the height of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real, intent(in) :: zvalue

public subroutine set_zeta_dp(ipart, zvalue)

Updates the height of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real(kind=dp), intent(in) :: zvalue

public subroutine set_zeta_sp(ipart, zvalue)

Updates the height of the particle

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ipart
real, intent(in) :: zvalue