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 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