particles_types_mod module reference¶
Dummy data structures and methods for drifters package.
Data Types¶
Container for gridded fields. |
|
xyt is a data structure containing particle position and velocity fields. |
|
particle types are data structures describing a tracked particle |
|
A buffer structure for message passing. |
|
A wrapper for the particle linked list (since an array of pointers is not allowed) |
|
A grand data structure for the particles in the local MOM domain. |
Detailed Description¶
Dummy data structures and methods for drifters package.
Type Documentation¶
-
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.
-
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/
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/
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.