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=int64)] :: 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=int64)] :: particle identifier%drifter_num[integer(kind=int64)] :: 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=int64)] :: 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.