= MESSy-CLaMS: Sedi = == Subroutines == || '''CLaMS Sedi''' || '''MESSy CLaMS Sedi''' || || read_chem_global (data_io) || -> clams_sedi_init_coupling || || read_bins (data_io) || get_airparcels (messy_clamssedi_si), s.u. || || read_nucleation_table (compute) || read_nucleation_table (messy_clamssedi_data_io) || || read_thetagrid (data_io) || get_init_grid (messy_clamssedi_data_io) || || read_sedi_init (data_io) || read_clams_particles (messy_clamssedi_data_io) || || init_random_seed (fluctuations) || init_random_seed (messy_clamssedi_fluctuations) || || get_nboxes_init (data_io) || get_nairparcels_init (messy_clamssedi_data_io) || || traj_init (traj_utils) || - || || create_positions (pos_sedi) || create_position (messy_clamssedi_create_pos) || || add_sedi_init (data_io) ||<|3(> clamssedi_get_particles (messy_clamssedi_si) <
> -> gauss_noise (messy_clamssedi_fluctuations) <
> -> gary_fluctuations (messy_clamssedi_fluctuations)|| || gauss_noise (fluctuations) || || gary_fluctuations (fluctuations) || || merge_data (compute) || - || || read_chem (data_io) <
> set_cbox_level (sedi) <
> set_cbox_kart (triang) <
> (in chem: hetero_shi: sub. liquid) || clamssedi_get_airparcels (messy_clamssedi_si) <
><
> -> clamssedi_prepare_airparcels <
> ---> calc_parthno3 || || triangulation (triang) || triangulation (messy_clamssedi_triang) || || init_nat_rocks (sedi) <
> -> get_triangles_for_tboxes (triang) <
> -> initialize_nat_rocks (sedi) <
> ---> interpolate_background_chem (compute) <
> ---> calc_nucrate (compute) || sedi_prepare (messy_clamssedi) <
> -> get_triangles_for_particle (messy_clamssedi_triang) <
><
> -> interpolate_background_chem (messy_clamssedi_compute) <
> -> calc_nucrate (messy_clamssedi_compute) || || <
> ||<|7(> clamssedi (messy_clamssedi) <
><
>-> interpolate_ background_chem (messy_clamssedi_compute) <
><
> -> compute_particle_growth (messy_clamssedi_compute) <
><
> -> compute_settling_velocity (messy_clamssedi_compute) <
><
> -> compute_trajectory (messy_clamssedi_traj) <
><
> -> interpolate_param_one_point (messy_clams_tools_interpolreg) || || compute_settling_velocity (compute) || || compute_trajectory (compute_traj) || || get_temp_press (traj_utils) || || get_tbox_level (sedi) || || get_triangles_for_tboxes (triang) || || set_nat_rocks (sedi) <
> -> interpolate_background_chem (compute) <
> -> compute_particle_growth (compute) || || set_cbox_level (sedi) ||<|2(> update_airparcels (messy_clamssedi_si) || || set_new_cboxes (sedi) || || set_new_tboxes (sedi) ||<|2(> update_particles (messy_clamssedi_si) || || refresh_tboxes (sedi) || || set_new_sedi_init (data_io) || -> Messy-Output || || write_changes_to_chem (data_io) || -> Channel-Kopplung || == Variablen == === t_box / particles === ==== CLaMS ==== ''t_init'': in sedi eingelesene oder aus vorherigem Schritt vorhandene Partikel ''t_add'': in create_positions neu erzeugte Partikel ''t_daten'': ''t_init'' + ''t_add'' ''t_box:'' entspricht ''t_daten'' ''t_box_level'': In Schichten aufgeteilte Partikel ==== MESSy-CLaMS ==== ''t_init'', ''t_add'' und ''t_daten'' entfernt ''t_box'' umbenannt nach ''particles'' read_clams_particles Einlesen der bisherigen Partikel auf ''particles'' clamssedi_get_particles In create_positions neu erzeugte Partikel an ''particles'' anhängen ''t_box_level'' -> entfernt Die jeweilige Schicht und Triangelnummer des Partikels wird auf Komponenten von ''particles'' vermerkt: <
> particles%lev_up, particles%lev_down<
> particles%tr_ind_up, particles%tr_ind_down === c_box / airparcels === ==== CLaMS ==== ''c_box'': aus Chemie-Datei einlesen ''c_box_level'': nach Schichten aufgeteilte Luftpakete angelegt in in triang.f90, sub. get_cbox_level ''c_box_kart'': kartesische Koordinaten und Nachbarliste (Trianglen) ==== MESSy-CLaMS ==== ''c_box'' umbenannt nach ''airparcels'' ''c_box_level'' entfernt Level wird auf ''airparcels'' gespeichert: airparcels%ilev ''c_box_kart'' entfernt Kartesische Koordinaten und angrenzende Trianglenummer werden direkt auf airparcels gespeichert: c_box_kart%coor -> airparcels%coor<
> c_box_kart%nb -> airparcels%ntriang<
> c_box_kart%index -> airparcels%triang_ids == Änderung in HNO3 == === CLaMS === * Änderung in HNO3 auf c_box_level merken compute_particle_growth: <
> c_box_level%hno3 = ... * Zurückschreiben von HNO3 auf c_box: set_new_cboxes:<
> c_box%hno3 = c_box_level%hno3 === MESSy-CLaMS === * vor sedi: Komponenten von ''airparcels'' von allen ranks mit MPI zusammenfügen:<
> airparcels%hno3 enthält HNO3-Werte für alle Luftpakete * compute_particle_growth: Änderung in HNO3 auf Komponente diff_hno3 merken<
> airparcels%diff_hno3 = ... * clams_si: update_airparcels: airparcels%diff_hno3 von allen ranks aufsummieren<
> auf HNO3 (Channelobj.) auf die verschiedenen ranks zurückschreiben<
> Channelobj. HNO3 = ... * im nächsten sedi-Aufruf: clamssedi_si: get_airparcels:<
> airparcels%hno3 = HNO3