= 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