Size: 1609
Comment:
|
Size: 5314
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= MESSy-CLaMS: Sedi = == Subroutines == || '''CLaMS Sedi''' || '''MESSy CLaMS Sedi''' || |
|
Line 6: | Line 11: |
|| init_random_seed (fluctuations) || NEU (fluctuations) || | || init_random_seed (fluctuations) || init_random_seed (messy_clamssedi_fluctuations) || |
Line 10: | Line 15: |
|| add_sedi_init (data_io) || clamssedi_get_particles (messy_clamssedi_si) || | || add_sedi_init (data_io) ||<|3(> clamssedi_get_particles (messy_clamssedi_si) <<BR>> -> gauss_noise (messy_clamssedi_fluctuations) <<BR>> -> gary_fluctuations (messy_clamssedi_fluctuations)|| || gauss_noise (fluctuations) || || gary_fluctuations (fluctuations) || |
Line 12: | Line 19: |
|| read_chem (data_io) ||<|4> clamssedi_get_airparcels (messy_clamssedi_si)<<BR>> clamssedi_prepare_airparcels <<BR>> calc_parthno3 || || set_cbox_level (sedi) || || set_cbox_kart (triang) || || (in chem: hetero_shi: sub. liquid) || || gauss_noise (fluctuations) || NEU || || gary_fluctuations (fluctuations) || NEU || |
|| read_chem (data_io) <<BR>> set_cbox_level (sedi) <<BR>> set_cbox_kart (triang) <<BR>> (in chem: hetero_shi: sub. liquid) || clamssedi_get_airparcels (messy_clamssedi_si) <<BR>><<BR>> -> clamssedi_prepare_airparcels <<BR>> ---> calc_parthno3 || |
Line 19: | Line 21: |
|| init_nat_rocks (sedi) <<BR>> -> get_triangles_for_tboxes (triang) <<BR>> -> initialize_nat_rocks (sedi) <<BR>> ---> interpolate_background_chem (compute) <<BR>> ---> calc_nucrate (compute) || sedi_prepare (messy_clamssedi) <<BR>> -> get_triangles_for_particle (messy_clamssedi_triang) <<BR>> -> interpolate_background_chem (messy_clamssedi_compute) <<BR>> -> calc_nucrate (messy_clamssedi_compute) || | || init_nat_rocks (sedi) <<BR>> -> get_triangles_for_tboxes (triang) <<BR>> -> initialize_nat_rocks (sedi) <<BR>> ---> interpolate_background_chem (compute) <<BR>> ---> calc_nucrate (compute) || sedi_prepare (messy_clamssedi) <<BR>> -> get_triangles_for_particle (messy_clamssedi_triang) <<BR>><<BR>> -> interpolate_background_chem (messy_clamssedi_compute) <<BR>> -> calc_nucrate (messy_clamssedi_compute) || || <<BR>> ||<|7(> clamssedi (messy_clamssedi) <<BR>><<BR>>-> interpolate_ background_chem (messy_clamssedi_compute) <<BR>><<BR>> -> compute_particle_growth (messy_clamssedi_compute) <<BR>><<BR>> -> compute_settling_velocity (messy_clamssedi_compute) <<BR>><<BR>> -> compute_trajectory (messy_clamssedi_traj) <<BR>><<BR>> -> 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) <<BR>> -> interpolate_background_chem (compute) <<BR>> -> 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: <<BR>> particles%lev_up, particles%lev_down<<BR>> 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<<BR>> c_box_kart%nb -> airparcels%ntriang<<BR>> c_box_kart%index -> airparcels%triang_ids == Änderung in HNO3 == === CLaMS === * Änderung in HNO3 auf c_box_level merken compute_particle_growth: <<BR>> c_box_level%hno3 = ... * Zurückschreiben von HNO3 auf c_box: set_new_cboxes:<<BR>> c_box%hno3 = c_box_level%hno3 === MESSy-CLaMS === * vor sedi: Komponenten von ''airparcels'' von allen ranks mit MPI zusammenfügen:<<BR>> airparcels%hno3 * compute_particle_growth: Änderung in HNO3 auf Komponente diff_hno3 merken<<BR>> airparcels%diff_hno3 = ... * clams_si: update_airparcels: airparcels%diff_hno3 von allen ranks aufsummieren<<BR>> auf HNO3 (Channelobj.) auf die verschiedenen ranks zurückschreiben<<BR>> Channelobj. HNO3 = ... * im nächsten sedi-Aufruf: clamssedi_si: get_airparcels:<<BR>> airparcels%hno3 = HNO3 |
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) |
clamssedi_get_particles (messy_clamssedi_si) |
gauss_noise (fluctuations) |
|
gary_fluctuations (fluctuations) |
|
merge_data (compute) |
- |
read_chem (data_io) |
clamssedi_get_airparcels (messy_clamssedi_si) |
triangulation (triang) |
triangulation (messy_clamssedi_triang) |
init_nat_rocks (sedi) |
sedi_prepare (messy_clamssedi) |
|
clamssedi (messy_clamssedi) |
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) |
|
set_cbox_level (sedi) |
update_airparcels (messy_clamssedi_si) |
set_new_cboxes (sedi) |
|
set_new_tboxes (sedi) |
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
- 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