DOI: 10.5281/zenodo.3727169
title: Particle tracking dataset for: Exceptional 20th century ocean circulation in the Northeast Atlantic

description: Particle tracking data for: "Exceptional 20th century ocean circulation in the Northeast Atlantic" Peter T. Spooner, David J. R. Thornalley, Delia W. Oppo, Alan Fox, Svetlana Radionovskaya, Neil L. Rose, Robbie Mallett, Emma Cooper, J. Murray Roberts VIKING20 (is a 1/20th degree ocean model, forced by a hindcast simulation of the atmosphere: CORE2 (Griffies et al., 2009). The reverse tracks of 113200 particles per year for 50 years, (1959-2009) were simulated with the ARIANE software (Döös, 1995) modified to include independent vertical motion of particles. Particles were seeded at the seabed in 10 km x 10 km boxes centered on MC16-A/17-5P and RAPID-21-3K (representing the settling location). The reverse tracks 'rose' (sinking) at 100 m/day (Takahashi & Be, 1984) and were then allowed to drift freely within the upper 100 m of the water column for six months (i.e. spanning the reasonable lifespan for many species of planktic foraminifera). Track data for the full 50 years are stored in a single netcdf file (output of ncdump -h &lt;filename&gt; given below). The 3D particle positions are in variables traj_lon, traj_lat and traj_depth with the Viking20 model along-track temperature, salinity and density in traj_temp, temp_sal and traj_dens, respectively. The main complication is the obscure storage of time (see also ARIANE software documentation). Variable init_t gives particle start time, counting in 5-day periods from 12:00 pm on 29 December 1957. Viking20 uses a fixed 365 day year so the year can be found for track 'traj' according to: year = 1958 + ( (init_t(traj)-1) \ 73 ) where '\' represents integer division, discarding the remainder. All particle tracks 'begin' (actually the end of the track in time as these are tracked backwards) at the start of July (12:00 pm July 1 in model). Particles are ordered by release time, so trajectories 1-113200 are 1959; 113201-226400 are 1960; etc. Positions are stored every 5 days, counting backwards. Further details are available from the authors. References Döös, K. (1995). Interocean exchange of water masses. Journal of Geophysical Research, 100(C7), 13499. https://doi.org/10.1029/95JC00337 Griffies, S. M., Biastoch, A., Böning, C., Bryan, F., Danabasoglu, G., Chassignet, E. P., et al. (2009). Coordinated Ocean-ice Reference Experiments (COREs). Ocean Modelling, 26(1–2), 1–46. https://doi.org/10.1016/J.OCEMOD.2008.08.007 Takahashi, K., & Be, A. W. H. (1984). Planktonic foraminifera: factors controlling sinking speeds. Deep Sea Research Part A. Oceanographic Research Papers, 31(12), 1477–1500. https://doi.org/10.1016/0198-0149(84)90083-9 $ ncdump -h ariane_trajectories_qualitative.nc netcdf ariane_trajectories_qualitative { dimensions: ntraj = 5660000 ; nb_output = UNLIMITED ; // (74 currently) variables: <strong>double init_x(ntraj) ;</strong> init_x:title = "What is init_x ?" ; init_x:longname = "Initial position in i" ; init_x:units = "No dimension" ; init_x:missing_value = 1.e+20 ; <strong>double init_y(ntraj) ;</strong> init_y:title = "What is init_y ?" ; init_y:longname = "Initial position in j" ; init_y:units = "No dimension" ; init_y:missing_value = 1.e+20 ; <strong>double init_z(ntraj) ;</strong> init_z:title = "What is init_z ?" ; init_z:longname = "Initial position in k" ; init_z:units = "No dimension" ; init_z:missing_value = 1.e+20 ; <strong>double init_t(ntraj) ;</strong> init_t:title = "What is init_t ?" ; init_t:longname = "Initial position in l (time)" ; init_t:units = "See global attributes..." ; init_t:missing_value = 1.e+20 ; <strong>double init_age(ntraj) ;</strong> init_age:title = "What is init_age ?" ; init_age:longname = "Initial age (time)" ; init_age:units = "seconds" ; init_age:missing_value = 1.e+20 ; <strong>double init_transp(ntraj) ;</strong> init_transp:title = "What is init_transp ?" ; init_transp:longname = "Initial transport" ; init_transp:units = "m3/s" ; init_transp:missing_value = 1.e+20 ; <strong>double l_matureage(ntraj) ;</strong> l_matureage:title = "What is l_matureage ?" ; l_matureage:longname = "Larval age of maturity" ; l_matureage:units = "days" ; l_matureage:missing_value = 1.e+20 ; <strong>double l_descendage(ntraj) ;</strong> l_descendage:title = "What is l_descendage ?" ; l_descendage:longname = "Larval age of competency" ; l_descendage:units = "days" ; l_descendage:missing_value = 1.e+20 ; <strong>double l_maxspeedup(ntraj) ;</strong> l_maxspeedup:title = "What is l_maxspeedup ?" ; l_maxspeedup:longname = "Max upward larval swim speed" ; l_maxspeedup:units = "mm s-1" ; l_maxspeedup:missing_value = 1.e+20 ; <strong>double l_maxspeeddown(ntraj) ;</strong> l_maxspeeddown:title = "What is l_maxspeeddown ?" ; l_maxspeeddown:longname = "Max downward larval swim speed" ; l_maxspeeddown:units = "mm s-1" ; l_maxspeeddown:missing_value = 1.e+20 ; <strong>int l_targetdepth(ntraj) ;</strong> l_targetdepth:title = "What is l_targetdepth ?" ; l_targetdepth:longname = "Target shallow depth" ; l_targetdepth:units = "No dimension" ; l_targetdepth:missing_value = -1. ; <strong>double final_x(ntraj) ;</strong> final_x:title = "What is final_x ?" ; final_x:longname = "Final position in x (or i)" ; final_x:units = "No dimension" ; final_x:missing_value = 1.e+20 ; <strong>double final_y(ntraj) ;</strong> final_y:title = "What is final_y ?" ; final_y:longname = "Final position in y (or j)" ; final_y:units = "No dimension" ; final_y:missing_value = 1.e+20 ; <strong>double final_z(ntraj) </strong>; final_z:title = "What is final_z ?" ; final_z:longname = "Final position in z (or k)" ; final_z:units = "No dimension" ; final_z:missing_value = 1.e+20 ; <strong>double final_t(ntraj) ;</strong> final_t:title = "What is final_t ?" ; final_t:longname = "Final position in t (time)" ; final_t:units = "See global attributes..." ; final_t:missing_value = 1.e+20 ; <strong>double final_age(ntraj) ;</strong> final_age:title = "What is fial_age ?" ; final_age:longname = "Final Age." ; final_age:units = "seconds" ; final_age:missing_value = 1.e+20 ; <strong>double final_transp(ntraj) ;</strong> final_transp:title = "What is final_transp ?" ; final_transp:longname = "Final transport" ; final_transp:units = "m3/s" ; final_transp:missing_value = 1.e+20 ; <strong>float traj_lon(nb_output, ntraj) ;</strong> traj_lon:title = "What is traj_lon ?" ; traj_lon:longname = "Trajectory: x positions" ; traj_lon:units = "No dimension" ; traj_lon:missing_value = 1.e+20 ; <strong>float traj_lat(nb_output, ntraj) ;</strong> traj_lat:title = "What is traj_lat ?" ; traj_lat:longname = "Trajectory: y positions" ; traj_lat:units = "No dimension" ; traj_lat:missing_value = 1.e+20 ; <strong>float traj_depth(nb_output, ntraj) ;</strong> traj_depth:title = "What is traj_depth ?" ; traj_depth:longname = "Trajectory: z positions" ; traj_depth:units = "No dimension" ; traj_depth:missing_value = 1.e+20 ; <strong>float traj_time(nb_output, ntraj) ;</strong> traj_time:title = "What is traj_time ?" ; traj_time:longname = "Trajectory: time positions" ; traj_time:units = "See global attributes" ; traj_time:missing_value = 1.e+20 ; <strong>float traj_iU(nb_output, ntraj) ;</strong> traj_iU:title = "ind i on grid U" ; traj_iU:longname = "Trajectory: i on grid U" ; traj_iU:units = "No dimension" ; traj_iU:missing_value = 1.e+20 ; <strong>float traj_jV(nb_output, ntraj) ;</strong> traj_jV:title = "ind j on grid V" ; traj_jV:longname = "Trajectory: j on grid V" ; traj_jV:units = "No dimension" ; traj_jV:missing_value = 1.e+20 ; <strong>float traj_kW(nb_output, ntraj) ;</strong> traj_kW:title = "ind k on grid W" ; traj_kW:longname = "Trajectory: k on grid W" ; traj_kW:units = "No dimension" ; traj_kW:missing_value = 1.e+20 ; <strong>float traj_temp(nb_output, ntraj) ;</strong> traj_temp:title = "What is traj_temp ?" ; traj_temp:longname = "Trajectory: temperatures" ; traj_temp:units = "degres" ; traj_temp:missing_value = 1.e+20 ; <strong>float traj_salt(nb_output, ntraj) ;</strong> traj_salt:title = "What is traj_salt ?" ; traj_salt:longname = "Trajectory: salinities" ; traj_salt:units = "psu" ; traj_salt:missing_value = 1.e+20 ; <strong>float traj_dens(nb_output, ntraj) ;</strong> traj_dens:title = "What is traj_dens ?" ; traj_dens:longname = "Trajectory: densities" ; traj_dens:units = "..." ; traj_dens:missing_value = 1.e+20 ; // global attributes: :key_roms = ".FALSE." ; :key_symphonie = ".FALSE." ; :key_B2C_grid = ".FALSE." ; :key_sequential = ".TRUE." ; :key_alltracers = ".TRUE." ; :key_ascii_outputs = ".FALSE." ; :key_iU_jV_kW = ".TRUE." ; :key_read_age = ".FALSE." ; :mode = "qualitative" ; :forback = "backward" ; :bin = "nobin" ; :init_final = "NONE" ; :nmax = 10000000 ; :tunit = 86400. ; :ntfic = 5 ; :tcyc = 1639872000. ; :key_approximatesigma = ".FALSE." ; :key_computesigma = ".TRUE." ; :zsigma = 1000. ; :memory_log = ".TRUE." ; :output_netcdf_large_file = ".FALSE." ; :key_interp_temporal = ".TRUE." ; :maxcycles = 50 ; :delta_t = 86400. ; :frequency = 5 ; :nb_output = 73 ; :mask = ".TRUE." ; :key_region = ".FALSE." ; :key_larvae = ".TRUE." ; :imt = 1784 ; :jmt = 1719 ; :kmt = 46 ; :lmt = 3796 ; :key_computew = ".TRUE." ; :w_surf_option = "" ; :key_partialsteps = ".TRUE." ; :key_jfold = ".FALSE." ; :pivot = "T" ; :key_periodic = ".FALSE." ; :dir_mesh = "./GRID" ; :fn_mesh = "1_mesh_mask.nc" ; :nc_var_xx_tt = "glamt" ; :nc_var_xx_uu = "glamu" ; :nc_var_zz_ww = "gdepw_0" ; :nc_var_e2u = "e2u" ; :nc_var_e1v = "e1v" ; :nc_var_e1t = "e1t" ; :nc_var_e2t = "e2t" ; :nc_var_e3t = "e3t" ; :nc_var_tmask = "tmask" ; :nc_mask_val = 0. ; :c_dir_zo = "./DATA" ; :c_prefix_zo = "V20_nest_5d_" ; :ind0_zo = 1958 ; :indn_zo = 2009 ; :maxsize_zo = 4 ; :c_suffix_zo = "_U.nc" ; :nc_var_zo = "vozocrtx" ; :nc_var_eivu = "NONE" ; :nc_att_mask_zo = "missing_value" ; :c_dir_me = "./DATA" ; :c_prefix_me = "V20_nest_5d_" ; :ind0_me = 1958 ; :indn_me = 2009 ; :maxsize_me = 4 ; :c_suffix_me = "_V.nc" ; :nc_var_me = "vomecrty" ; :nc_var_eivv = "NONE" ; :nc_att_mask_me = "missing_value" ; :c_dir_te = "./DATA" ; :c_prefix_te = "V20_nest_5d_" ; :ind0_te = 1958 ; :indn_te = 2009 ; :maxsize_te = 4 ; :c_suffix_te = "_T.nc" ; :nc_var_te = "votemper" ; :nc_att_mask_te = "missing_value" ; :c_dir_sa = "./DATA" ; :c_prefix_sa = "V20_nest_5d_" ; :ind0_sa = 1958 ; :indn_sa = 2009 ; :maxsize_sa = 4 ; :c_suffix_sa = "_T.nc" ; :nc_var_sa = "vosaline" ; :nc_att_mask_sa = "missing_value" ; }