particles_types_mod module reference

Dummy data structures and methods for drifters package.

More…

Data Types

buffer

A buffer structure for message passing.

linked_list

A wrapper for the particle linked list (since an array of pointers is not allowed)

particle

particle types are data structures describing a tracked particle

particles

A grand data structure for the particles in the local MOM domain.

particles_gridded

Container for gridded fields.

xyt

xyt is a data structure containing particle position and velocity fields.

Detailed Description

Dummy data structures and methods for drifters package.

Type Documentation

type particles_types_mod/buffer

A buffer structure for message passing.

Type fields
  • % size [integer] :: Size of buffer.

  • % data [real(:,:),pointer] :: Buffer memory.

type particles_types_mod/linked_list

A wrapper for the particle linked list (since an array of pointers is not allowed)

Type fields
  • % first [type( particle ),pointer] :: Pointer to the beginning of a linked list of parts.

type particles_types_mod/particle

particle types are data structures describing a tracked particle

Type fields
  • % prev [type( particle ),pointer] :: Previous link in list.

  • % next [type( particle ),pointer] :: Next link in list.

  • % lon [real] :: Longitude of particle (degree N or unit of grid coordinate)

  • % lat [real] :: Latitude of particle (degree E or unit of grid coordinate)

  • % depth [real] :: Depth of particle.

  • % uvel [real] :: Zonal velocity of particle (m/s)

  • % vvel [real] :: Meridional velocity of particle (m/s)

  • % lon_old [real] :: previous lon (degrees)

  • % lat_old [real] :: previous lat (degrees)

  • % uvel_old [real] :: previous uvel

  • % vvel_old [real] :: previous vvel

  • % start_lon [real] :: starting longitude where particle was created

  • % start_lat [real] :: starting latitude where particle was created

  • % start_day [real] :: origination position (degrees) and day

  • % start_year [integer] :: origination year

  • % halo_part [real] :: equal to zero for particles on the computational domain, and 1 for particles on the halo

  • % id [integer(kind=8)] :: particle identifier

  • % drifter_num [integer(kind=8)] :: particle identifier

  • % ine [integer] :: nearest i-index in NE direction (for convenience)

  • % jne [integer] :: nearest j-index in NE direction (for convenience)

  • % xi [real] :: non-dimensional x-coordinate within current cell (0..1)

  • % yj [real] :: non-dimensional y-coordinate within current cell (0..1)

  • % uo [real] :: zonal ocean velocity

  • % vo [real] :: meridional ocean velocity by the particle (m/s)

  • % trajectory [type( xyt ),pointer] :: Trajectory for this particle.

type particles_types_mod/particles

A grand data structure for the particles in the local MOM domain.

Type fields
  • % clock [integer] :: Handles for clocks.

  • % clock_mom [integer] :: Handles for clocks.

  • % clock_the [integer] :: Handles for clocks.

  • % clock_int [integer] :: Handles for clocks.

  • % clock_cal [integer] :: Handles for clocks.

  • % clock_com [integer] :: Handles for clocks.

  • % clock_ini [integer] :: Handles for clocks.

  • % clock_ior [integer] :: Handles for clocks.

  • % clock_iow [integer] :: Handles for clocks.

  • % clock_dia [integer] :: Handles for clocks.

  • % clock_trw [integer] :: Handles for clocks.

  • % clock_trp [integer] :: Handles for clocks.

  • % grd [type( particles_gridded )] :: Container with all gridded data.

  • % list [type( linked_list )(:,:),allocatable] :: Linked list of particles.

  • % trajectories [type( xyt ),pointer] :: A linked list for detached segments of trajectories.

  • % dt [real] :: Time-step between particle calls.

  • % current_year [integer] :: Current year (years)

  • % current_yearday [real] :: Current year-day, 1.00-365.99, (days)

  • % traj_sample_hrs [integer] :: Period between sampling for trajectories (hours)

  • % traj_write_hrs [integer] :: Period between writing of trajectories (hours)

  • % verbose_hrs [integer] :: Period between terminal status reports (hours)

  • % restarted [logical] :: Indicate whether we read state from a restart or not.

  • % runge_not_verlet [logical] :: True=Runge-Kutta, False=Verlet.

  • % ignore_missing_restart_parts [logical] :: True allows the model to ignore particles missing in the restart.

  • % halo_debugging [logical] :: Use for debugging halos (remove when its working)

  • % save_short_traj [logical] :: True saves only lon,lat,time,id in particle_trajectory.nc.

  • % ignore_traj [logical] :: If true, then model does not write trajectory data at all.

  • % use_new_predictive_corrective [logical] :: Flag to use Bob’s predictive corrective particle scheme.

  • % debug_particle_with_id [integer(kind=8)] :: If positive, monitors a part with this id.

  • % obuffer_n [type( buffer ),pointer] :: Buffer for outgoing parts to the north.

  • % ibuffer_n [type( buffer ),pointer] :: Buffer for incoming parts from the north.

  • % obuffer_s [type( buffer ),pointer] :: Buffer for outgoing parts to the south.

  • % ibuffer_s [type( buffer ),pointer] :: Buffer for incoming parts from the south.

  • % obuffer_e [type( buffer ),pointer] :: Buffer for outgoing parts to the east.

  • % ibuffer_e [type( buffer ),pointer] :: Buffer for incoming parts from the east.

  • % obuffer_w [type( buffer ),pointer] :: Buffer for outgoing parts to the west.

  • % ibuffer_w [type( buffer ),pointer] :: Buffer for incoming parts from the west.

  • % obuffer_io [type( buffer ),pointer] :: Buffer for outgoing parts during i/o.

  • % ibuffer_io [type( buffer ),pointer] :: Buffer for incoming parts during i/o.

type particles_types_mod/particles_gridded

Container for gridded fields.

Type fields
  • % id_uo [integer] :: Diagnostic handle.

  • % id_vo [integer] :: Diagnostic handle.

  • % id_unused [integer] :: Diagnostic handle.

  • % id_count [integer] :: Diagnostic handle.

  • % id_chksum [integer] :: Diagnostic handle.

  • % domain [type(domain2d),pointer] :: MPP parallel domain.

  • % halo [integer] :: Nominal halo width.

  • % isc [integer] :: Start i-index of computational domain.

  • % iec [integer] :: End i-index of computational domain.

  • % jsc [integer] :: Start j-index of computational domain.

  • % jec [integer] :: End j-index of computational domain.

  • % isd [integer] :: Start i-index of data domain.

  • % ied [integer] :: End i-index of data domain.

  • % jsd [integer] :: Start j-index of data domain.

  • % jed [integer] :: End j-index of data domain.

  • % isg [integer] :: Start i-index of global domain.

  • % ieg [integer] :: End i-index of global domain.

  • % jsg [integer] :: Start j-index of global domain.

  • % jeg [integer] :: End j-index of global domain.

  • % is_offset [integer] :: add to i to recover global i-index

  • % js_offset [integer] :: add to j to recover global j-index

  • % my_pe [integer] :: MPI PE index.

  • % pe_n [integer] :: MPI PE index of PE to the north.

  • % pe_s [integer] :: MPI PE index of PE to the south.

  • % pe_e [integer] :: MPI PE index of PE to the east.

  • % pe_w [integer] :: MPI PE index of PE to the west.

  • % grid_is_latlon [logical] :: Flag to say whether the coordinate is in lat-lon degrees, or meters.

  • % grid_is_regular [logical] :: Flag to say whether point in cell can be found assuming regular Cartesian grid.

  • % lx [real] :: Length of the domain in x direction.

  • % lon [real(:,:),allocatable] :: Longitude of cell corners (degree E)

  • % lat [real(:,:),allocatable] :: Latitude of cell corners (degree N)

  • % lonc [real(:,:),allocatable] :: Longitude of cell centers (degree E)

  • % latc [real(:,:),allocatable] :: Latitude of cell centers (degree N)

  • % dx [real(:,:),allocatable] :: Length of cell edge (m)

  • % dy [real(:,:),allocatable] :: Length of cell edge (m)

  • % area [real(:,:),allocatable] :: Area of cell (m^2)

  • % msk [real(:,:),allocatable] :: Ocean-land mask (1=ocean)

  • % cos [real(:,:),allocatable] :: Cosine from rotation matrix to lat-lon coords.

  • % sin [real(:,:),allocatable] :: Sine from rotation matrix to lat-lon coords.

  • % ocean_depth [real(:,:),allocatable] :: Depth of ocean (m)

  • % uo [real(:,:),allocatable] :: Ocean zonal flow (m/s)

  • % vo [real(:,:),allocatable] :: Ocean meridional flow (m/s)

  • % tmp [real(:,:),allocatable] :: Temporary work space.

  • % tmpc [real(:,:),allocatable] :: Temporary work space.

  • % parity_x [real(:,:),allocatable] :: X component of vector point from i,j to i+1,j+1.

  • % parity_y [real(:,:),allocatable] :: Y component of vector point from i,j to i+1,j+1.

  • % particle_counter_grd [integer(:,:),allocatable] :: Counts particles created for naming purposes.

type particles_types_mod/xyt

xyt is a data structure containing particle position and velocity fields.

Type fields
  • % lon [real] :: Longitude of particle (degree N or unit of grid coordinate)

  • % lat [real] :: Latitude of particle (degree N or unit of grid coordinate)

  • % day [real] :: Day of this record (days)

  • % lat_old [real] :: Previous latitude.

  • % lon_old [real] :: Previous longitude.

  • % uvel [real] :: Zonal velocity of particle (m/s)

  • % vvel [real] :: Meridional velocity of particle (m/s)

  • % uvel_old [real] :: Previous zonal velocity component (m/s)

  • % vvel_old [real] :: Previous meridional velocity component (m/s)

  • % year [integer] :: Year of this record.

  • % particle_num [integer] :: Current particle number.

  • % id [integer(kind=8)] :: Particle Identifier.

  • % next [type( xyt ),pointer] :: Pointer to the next position in the list.