source: palm/trunk/DOC/tec/technical_documentation.html @ 110

Last change on this file since 110 was 110, checked in by raasch, 14 years ago

New:
---
Allows runs for a coupled atmosphere-ocean LES,
coupling frequency is controlled by new d3par-parameter dt_coupling,
the coupling mode (atmosphere_to_ocean or ocean_to_atmosphere) for the
respective processes is read from environment variable coupling_mode,
which is set by the mpiexec-command,
communication between the two models is done using the intercommunicator
comm_inter,
local files opened by the ocean model get the additional suffic "_O".
Assume saturation at k=nzb_s_inner(j,i) for atmosphere coupled to ocean.

A momentum flux can be set as top boundary condition using the new
inipar parameter top_momentumflux_u|v.

Non-cyclic boundary conditions can be used along all horizontal directions.

Quantities w*p* and w"e can be output as vertical profiles.

Initial profiles are reset to constant profiles in case that initializing_actions /= 'set_constant_profiles'. (init_rankine)

Optionally calculate km and kh from initial TKE e_init.

Changed:


Remaining variables iran changed to iran_part (advec_particles, init_particles).

In case that the presure solver is not called for every Runge-Kutta substep
(call_psolver_at_all_substeps = .F.), it is called after the first substep
instead of the last. In that case, random perturbations are also added to the
velocity field after the first substep.

Initialization of km,kh = 0.00001 for ocean = .T. (for ocean = .F. it remains 0.01).

Allow data_output_pr= q, wq, w"q", w*q* for humidity = .T. (instead of cloud_physics = .T.).

Errors:


Bugs from code parts for non-cyclic boundary conditions are removed: loops for
u and v are starting from index nxlu, nysv, respectively. The radiation boundary
condition is used for every Runge-Kutta substep. Velocity phase speeds for
the radiation boundary conditions are calculated for the first Runge-Kutta
substep only and reused for the further substeps. New arrays c_u, c_v, and c_w
are defined for this purpose. Several index errors are removed from the
radiation boundary condition code parts. Upper bounds for calculating
u_0 and v_0 (in production_e) are nxr+1 and nyn+1 because otherwise these
values are not available in case of non-cyclic boundary conditions.

+dots_num_palm in module user, +module netcdf_control in user_init (both in user_interface)

Bugfix: wrong sign removed from the buoyancy production term in the case use_reference = .T. (production_e)

Bugfix: Error message concerning output of particle concentration (pc) modified (check_parameters).

Bugfix: Rayleigh damping for ocean fixed.

  • Property svn:keywords set to Id
File size: 157.9 KB
Line 
1<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
2<html><head>
3<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"> <meta content="Mozilla/4.73 [en] (X11; U; HP-UX B.10.20 9000/782) [Netscape]" name="GENERATOR"> <meta content="Siegfried Raasch" name="Author"> <meta content="parallel LES model" name="Keywords"><title>PALM technical/numerical documentation</title></head>
4<body><font size="+4">PALM&nbsp;&nbsp;
5</font>a
6<b>pa</b>rallelized
7<b>L</b>ES <b>m</b>odel
8<br><hr width="100%">
9<br><font size="+2">technical/numerical documentation</font>
10<br>&nbsp;
11<br>&nbsp;
12<br><table nosave="" cellpadding="0" cellspacing="0"> <caption>&nbsp; <br> </caption><tbody>
13</tbody><tbody> </tbody> <tbody> <tr nosave=""> <td nosave=""><b>Current
14model version:</b></td> <td><span style="font-weight: bold;">3.3</span></td> </tr>
15<tr nosave=""> <td nosave=""><b>Last
16change of this document</b>:&nbsp;</td> <td nosave=""><b>$Id: technical_documentation.html 110 2007-10-05 05:13:14Z raasch $</b></td> </tr>
17</tbody>
18</table><hr width="100%">
19<p><font size="+2">Table of contents</font>
20<br>&nbsp;
21<br>&nbsp;
22</p><ul> <a href="#Kapitel1.0">1.0</a>&nbsp;
23History of changes <p><a href="#Kapitel2.0">2.0</a>&nbsp;
24How to change the model source
25code </p> <p><a href="#Kapitel3.0">3.0</a>&nbsp;
26Description of selected parts
27of
28the model source code <br>
29&nbsp;</p>
30</ul><b>Please note: Parts of this document are still in
31German. We
32apologize
33for any inconvenience.</b>
34<br>&nbsp;
35<h2><a name="Kapitel1.0"></a>1.0&nbsp;
36History of changes</h2>
37The following table documents all changes to the model since July, 7th
381998. Entries in the fourth column specify the type of the change:
39change&nbsp;
40of existing code (C), new code (N) or bugfix (B). More detailed
41information
42about the changes may be found in the header comment lines of the
43respective
44routines.
45<br>&nbsp;
46<br><table nosave="" style="width: 100%;" border="1"> <caption>&nbsp; <br> </caption><tbody>
47</tbody><tbody> </tbody> <tbody> <tr> <td><b>date</b></td>
48<td><b>author</b></td> <td><b>model</b>
49<br> <b>version</b></td> <td><b>type</b></td>
50<td><b>description</b></td> <td><b>affected
51routines</b></td> </tr> <tr nosave="" valign="top"> <td>06/07/98</td> <td>SR</td>
52<td>1.0</td> <td>C</td> <td nosave="">&Auml;nderung
53von Default-Werten
54(initializing_actions, end_time,
55fcl_factor, use_prior_plot1d_parameters), zus&auml;tzliche
56&Uuml;berpr&uuml;fung
57von Parametern auf Zul&auml;ssigkeit (prandtl_layer, psolver, nx,
58ny,
59nz,
60fcl_factor), H&ouml;he der Schnittebenen der Horizontalschnitte
61wird
62auf
63Plots exakt ausgegeben (uv- bzw. w-Gitter).</td> <td>modules,
64check_parameters, plot_2d</td> </tr> <tr nosave="" valign="top"> <td>"</td> <td>SR</td>
65<td>1.0</td> <td>N</td> <td>Neues Modul
66test_variables wird in (fast) allen
67Programmteilen benutzt
68(USE). <b>Wichtig</b>: dieses Modul steht in der Datei <tt>module_test.f90.
69D</tt>iese Datei mu&szlig; in der mrun- und add_library -
70Konfigurationsdatei
71bei der Variablen <tt>module_files</tt>
72aufgef&uuml;hrt werden.</td> <td nosave="">(fast)
73alle&nbsp; <br>
74Neu: module_test</td> </tr> <tr nosave="" valign="top"> <td>16/07/98</td> <td>SR</td>
75<td>1.0</td> <td>N</td> <td nosave="">Anpassung
76an die T3E-Rechner in Juelich (cpp -
77Direktiven)</td> <td>advec_s_bc, check_open,
78check_parameters, cpu_zeitmessung,
79init_pegrid,
80local_getenv, local_system, local_tremain, local_tremain_ini, poisfft</td>
81</tr> <tr nosave="" valign="top"> <td>24/07/98</td>
82<td>MS</td> <td>1.0</td> <td>C</td>
83<td nosave="">Anpassung des Druckloesealgorithmusses an
84Vorgehensweise von
85Schmidt, Schumann und Volkert (DFVLR-Mitteilung 84-15, S.
8620-26)&nbsp;</td> <td>poisfft</td> </tr> <tr nosave="" valign="top"> <td>27/07/98</td>
87<td>MS</td> <td>1.0</td> <td>C</td>
88<td nosave="">Berechnung von l in maketri geschieht nun
89ausserhalb der k-Schleife,
90da unabhaengig von k, dadurch Rechenzeitersparnis&nbsp;</td> <td>poisfft</td>
91</tr> <tr nosave="" valign="top"> <td>05/08/98</td>
92<td>SR</td> <td>1.0</td> <td>C</td>
93<td>Entfernung der Sonderbehandlung der Advektionsterme
94(Piascek-Williams)
95bei k=1. Terme werden nun &uuml;berall gleich berechnet. Evtl.
96leichte
97Erh&ouml;hung der Varianzen in Oberfl&auml;chenn&auml;he.</td>
98<td nosave="">advec_u_pw, advec_v_pw, advec_w_pw</td>
99</tr> <tr nosave="" valign="top"> <td nosave="">"</td> <td>SR</td> <td>1.0</td>
100<td>C</td> <td>Mischungsweganpassung (s.
101adjust_mixing_length) erfolgt nur
102noch bei
103k=1. Unrealistische sekund&auml;re Maxima in den Km-Profilen
104oberhalb
105der
106Prandtl-Schicht werden damit vermieden. Leichte &Auml;nderungen in
107den
108oberfl&auml;chennahen Turbulenzgr&ouml;&szlig;en sind die
109Folge.</td> <td>diffusivities</td> </tr> <tr nosave="" valign="top"> <td>"</td> <td>SR</td>
110<td>1.0</td> <td>B</td> <td>Falsche
111Berechnung der ben&ouml;tigten CPU-Zeit pro Sekunde
112simulierter
113Zeit bei Fortsetzungsl&auml;ufen korrigiert.&nbsp; <p>Berechnung
114von cross_uxmin(1) und cross_uxmax(1) aus den
115Werten von
116ug und vg entfernt. Lieferte falsche Wertebereiche f&uuml;r Plots
117von
118Vertikalprofilen,
119wenn im ersten Koordinatenkreuz nicht die Windgeschwindigkeiten
120gezeichnet
121wurden.</p> </td> <td nosave="">header,
122check_parameters</td> </tr> <tr nosave="" valign="top"> <td nosave="">"</td> <td>SR</td>
123<td>1.0</td> <td>N</td> <td>Das
124erlaubte Maximum und Minimum der Rif-Zahl ist nun mittels
125der Initialparameter
126rif_max und rif_min einstellbar (Werte waren bisher fest auf -2.0, +1.0
127eingestellt).</td> <td>check_parameters, header,
128init_1d_model, modules, parin,
129prandtl_fluxes,
130read_var_list, write_var_list</td> </tr> <tr nosave="" valign="top"> <td nosave="">23/09/98</td>
131<td>SR</td> <td>1.0</td> <td>B</td>
132<td>Initialisierung von Feldern im Fall von initializing_action =
133"<i>set_constant_profiles</i>"
134und "<i>set_1d-model_profiles</i>" korrigiert.&nbsp; <p>2D-Plotausgabe
135von u* und theta* korrigiert. Hier wurden
136bisher falsche
137Felder herausgeschrieben.&nbsp; </p> <p>Bei
138SOR-Aufrufen war bisher dp nicht initialisiert.
139Entsprechend ge&auml;ndert.</p> </td> <td>init_3d_model,
140plot_2d, pres</td> </tr> <tr nosave="" valign="top"> <td>"</td> <td>SR</td>
141<td>1.0</td> <td>C</td> <td nosave="">Ausgabeformate
142f&uuml;r Statistik-Ausgaben auf
143Datei RUN_CONTROL
144um einige Kommastellen erweitert.&nbsp; <p>Lieferung von
145ausf&uuml;hrlicheren Informationen bei
146Programmabbruch
147durch Unterschreitung des minimal erlaubten Zeitschritts.</p> </td>
148<td>run_control, timestep</td> </tr> <tr nosave="" valign="top"> <td nosave="">"</td>
149<td>SR</td> <td>1.0</td> <td>N</td>
150<td>Rechnungen mit geneigter Ebene zur Simulation von
151Kaltluftabfl&uuml;ssen
152sind erlaubt. Gestartet und gesteuert werden sie mit dem
153Intialisierungsparameter <tt>alpha_surface</tt>.
154Realisiert wird die geneigte Ebene durch entsprechende
155Schr&auml;gstellung
156des Schwerkraftvektors. Dadurch erh&auml;lt auch die u-Komponente
157der
158Windgeschwindigkeit
159einen Anteil der Auftriebskraft.&nbsp; <p>Diese
160Implementierung ist noch nicht abgeschlossen. Die
161Simulation von
162Kaltluftabfl&uuml;ssen erfordert bisher noch Eingriffe "von Hand".</p>
163</td> <td>buoyancy, check_parameters, header, leap_frog,
164modules,
165parin, prandtl_fluxes,
166read_var_list, write_var_list</td> </tr> <tr nosave="" valign="top"> <td>15/12/98</td> <td>SR</td>
167<td>1.0</td> <td>N</td> <td>Vereinbarung
168einer Cache-Layer zur schnelleren bin&auml;ren
169I/O auf
170T3E-Rechnern.&nbsp; <p>Ermittelung wahrer I/O-Zeiten
171f&uuml;r bin&auml;re
172Ein-/Ausgabe auf
173T3E-Rechnern mit TIMEF.</p> </td> <td nosave="">check_open,&nbsp;
174<br>cpu_zeitmessung, init_3d_model, write_3d_model</td> </tr>
175<tr nosave="" valign="top"> <td nosave="">"</td>
176<td>SR</td> <td>1.0</td> <td>B</td>
177<td>Bekanntgabe von run_description_header an alle
178PE's.&nbsp; <p>Diese Programm&auml;nderung erfordert auf
179T3E-Rechnern
180zwingend den
181Einsatz der MPI-Version mpt.1.2.0.1. In dieser neuen Version tritt auch
182der alte Fehler in MPI_ALLREDUCE nicht mehr auf, so da&szlig; ab
183jetzt
184mpt.1.1.0.1 nicht mehr verwendet werden mu&szlig;.</p> </td>
185<td>parles</td> </tr> <tr nosave="" valign="top"> <td nosave="">05/02/99</td>
186<td>SR</td> <td>1.1</td> <td>C/N</td>
187<td>Implementierung des Upstream-Spline- Verfahrens zur Advektion
188von Impuls
189und skalaren Gr&ouml;&szlig;en (neue UP's, s. rechts).
190Berechnung von
191Variablen
192f&uuml;r spezielle Advektionsverfahren in eigenst&auml;ndiges
193UP
194ausgelagert
195(<tt>init_advec</tt> + eigenes Modul <tt>advection</tt>).
196Reines
197Euler-/Upstream-Verfahren
198kann gerechnet werden.&nbsp; <p>Schnelle bin&auml;re I/O
199(s. 15/12/98) wieder abgeschaltet, da
200Dateien
201nicht wieder einlesbar sind. Druckst&ouml;rung (p) wird zu Beginn
202auf 0
203gesetzt, damit sie keine Tendenzen im ersten Zeitschritt hervorruft.</p>
204</td> <td>advec_s_bc, check_open, check_parameters,
205flow_statistics,
206header,
207init_3d_model, init_grid, leap_frog, modules, parin, plot_2d, plot_ts,
208read_var_list, timestep, write_3d_binary, write_var_list&nbsp; <p><b>Neu:</b>
209<br>
210advec_s_ups, advec_u_ups, advec_v_ups, advec_w_ups, init_advec,
211long_filter,
212spline_x, spline_y, spline_z</p> </td> </tr> <tr nosave="" valign="top"> <td nosave="">24/02/99</td>
213<td>SR</td> <td>1.1a</td> <td>C/N</td>
214<td>Kleinere Erg&auml;nzungen / &Auml;nderungen
215f&uuml;r Upstream
216- Spline,&nbsp; <br>
217Diverse Verbesserungen bei Berechnung der Diffusionskoeffizienten
218(exaktere
219Formulierung von Scherungen, Dissipation gemaess Original - Deardorff -
220Ansatz, Mischungswegreduktion nur, wenn Schichtung sowohl oberhalb als
221auch unterhalb des entsprechenden Gitterpunktes stabil ist),
222Wertebegrenzung
223bei Spline - Berechnung zur Verhinderung von "&Uuml;berschwingern"</td>
224<td>check_parameters, diffusion_e, diffusion_pt, diffusivities,
225header,
226init_advec, long_filter, modules, production_e, spline_x, spline_y,
227spline_z</td> </tr> <tr nosave="" valign="top">
228<td>"</td> <td nosave="">SR</td> <td>1.1a</td>
229<td>N/B</td> <td>Erweiterung des des Bott - Chlond -
230Schemas auf Advektion der
231TKE,
232Korrektur der Dichteberechnung (war falsch bei Galilei-Transformation)</td>
233<td>advec_s_bc, leap_frog</td> </tr> <tr nosave="" valign="top"> <td nosave="">01/03/99</td>
234<td>MS</td> <td>1.1b</td> <td>N</td>
235<td>Kleinere Erg&auml;nzungen f&uuml;r Upstream -
236Spline:&nbsp; <ul> <li>Gradientenkontrolle
237f&uuml;r den nicht-parallelen Teil</li> <li>statistische
238Auswertung &uuml;ber den prozentualen Anteil
239des
240Upstream-Verfahrens
241an der Gesamtadvektion fuer nicht-parallelen Teil</li> </ul>
242</td> <td>modules, spline_x, spline_y, spline_z</td>
243</tr> <tr nosave="" valign="top"> <td>"</td>
244<td>SR</td> <td>1.1b</td> <td>N</td>
245<td>Datenkompression f&uuml;r 3D-Plotausgaben</td> <td nosave="">check_open, check_parameters, close_files, header,
246modules,
247parin, plot_3d&nbsp; <p><b>Neu:</b> <br>
248write_compressed</p> </td> </tr> <tr nosave="" valign="top"> <td nosave="">03/03/99</td>
249<td>SR</td> <td>1.1c</td> <td>B/C</td>
250<td>Schnelle bin&auml;re I/O auf T3E-Rechnern funktioniert
251jetzt.
252Beim
253bin&auml;ren Einlesen d&uuml;rfen Records nicht mit dem Trick "<tt>READ
254(..) idum</tt>" &uuml;berlesen werden. Zeitmessungen auf T3E
255erfolgen
256jetzt
257grunds&auml;tzlich mit <tt>TIMEF.</tt></td> <td>check_open,
258cpu_zeitmessung, init_3d_model, modules,
259write_3d_binary</td> </tr> <tr nosave="" valign="top"> <td nosave="">25/03/99</td>
260<td>SR</td> <td>1.1d</td> <td>N</td>
261<td>Einbau einer Rayleigh-D&auml;mpfungsschicht sowie
262flexiblere
263Wahl der
264numerischen Begrenzer f&uuml;r das Upstream - Spline - Verfahren.</td>
265<td>check_parameters, header, init_3d_model, leap_frog, modules,
266parin,
267read_var_list, spline_x, spline_y, spline_z, write_var_list</td> </tr>
268<tr nosave="" valign="top"> <td nosave="">"</td>
269<td>SR</td> <td>1.1d</td> <td>B</td>
270<td>Korrektur des Zeitschrittkriteriums bei z=zp im 1D-Modell</td>
271<td>init_1d_model</td> </tr> <tr nosave="" valign="top"> <td>25/11/99</td> <td>SR</td>
272<td>1.1e</td> <td>N</td> <td nosave="">Partikelplots
273mit vtk-Graphiksoftware sind auf t3eh
274m&ouml;glich.
275Ausgabe erfolgt im dvr-Format. Bisher noch nicht nutzbar, da noch
276Einstellm&ouml;glichkeiten
277f&uuml;r die Partikelquelle(n) fehlen. <b>Wichtig:</b>
278Die Benutzung
279der
280vtk-Software erfordert die zus&auml;tzliche mrun-Option <tt>-g</tt>.
281Das
282Hauptprogramm <tt>parles</tt> wird in diesem Fall zum
283Unterprogramm
284und
285von einem c++-Programm aus aufgerufen.</td> <td>header,
286init_3d_model, init_pegrid, leap_frog, modules,
287parin, parles,
288read_var_list, write_var_list&nbsp; <p><b>Neu:</b>
289<br>
290advec_particles, init_particles, plot_particles</p> </td> </tr>
291<tr nosave="" valign="top"> <td>"</td>
292<td>SR</td> <td>1.1e</td> <td nosave="">B/C</td>
293<td>TIMEF-Zeitmessungen von Subroutine- auf Function-Aufruf
294umgestellt.
295Laufindexkorrektur in <tt>spline_y</tt>. Fehler trat bei
296nx /= ny auf.</td> <td>cpu_zeitmessung, spline_y</td>
297</tr> <tr nosave="" valign="top"> <td nosave="">28/12/99</td> <td>SR</td> <td>1.1f</td>
298<td>N</td> <td>Plot von Isooberfl&auml;chen mit
299vtk-Graphiksoftware sind auf
300t3eh
301m&ouml;glich. Ausgabe erfolgt im dvr-Format. Bisher noch nicht
302allgemein
303nutzbar, da noch diverse manuelle Eingriffe n&ouml;tig sind.</td>
304<td>header, leap_frog, modules, parin, plot_particles,
305read_var_list, write_var_list&nbsp; <p><b>Neu:</b>
306<br>
307plot_isosurface</p> </td> </tr> <tr nosave="" valign="top"> <td nosave="">10/01/00</td>
308<td>SR</td> <td>1.2</td> <td>C</td>
309<td>Randbedingungen f&uuml;r w (=0) werden explizit gesetzt,
310und
311zwar nicht
312nur bei&nbsp; <tt>k = nzb, nzt+1</tt> sondern auch
313bei&nbsp; <tt>k =
314nzt</tt>,
315wo bislang der vom vorigen Zeitschritt durch den Druckl&ouml;ser
316ermittelte
317Wert stand. Auch jetzt wird der Wert bei k = nzt anschlie&szlig;end
318durch
319den Druckl&ouml;ser modifiziert. Soweit bis jetzt abzusehen, hat
320diese
321&Auml;nderung nur minimale Auswirkungen auf den Prognoseverlauf.
322Evtl.
323gibt es st&auml;rkere Auswirkungen bei exzessivem Auftreten von
324Schwerewellen
325am oberen Rand (die dort aber eigentlich sowieso nicht
326hingeh&ouml;ren).&nbsp; <br>
327Variablen&uuml;bergabe an <tt>boundary_conds</tt>
328erfolgt&nbsp; <br>
329&uuml;ber Modul und nicht mehr per Parameterliste.&nbsp; <p>Bei
330Galilei-Transformation wird jetzt defaultm&auml;&szlig;ig
331der geostrophische
332Wind als Translationsgeschwindigkeit verwendet (neuer
333Initialisierungsparameter <tt>use_ug_for_galilei_tr</tt>).
334Dadurch wird das verst&auml;rkte Auftreten von Schwerewellen bei
335h&ouml;heren
336geostrophischen Windgeschwindigkeiten unterdr&uuml;ckt.&nbsp; </p>
337<p>3D-Feldvariablen (u, v, w, pt, e, km, kh) sowie einige
3382D-Variablen
339(usws, vsws, rif, shf) sind nun als Pointer deklariert, denen nach
340jedem
341Zeitschritt neue Targets zugeordnet werden (f&uuml;r die
342ben&ouml;tigten&nbsp;
3433 Zeitebenen existieren die Targets ..._1 (z.B. u_1), ..._2, ..._3).
344Durch
345die jeweilige Neuzuordnung der Targets entf&auml;llt das
346Umspeichern
347der
348Zeitebenen komplett (Zeitersparung: ca. 5% der
349Gesamtrechenzeit).&nbsp; <br>
350Die Umordnung der Zeitebenen wurde ins neue UP <tt>swap_timelevel</tt>
351ausgelagert.&nbsp; <br> <b>Wichtig:</b> Die
352&Uuml;bersetzungszeiten haben durch die
353Einf&uuml;hrung
354der Pointer t.w. sehr deutlich zugenommen (<tt>leap_frog</tt>
355ben&ouml;tigt
356jetzt z.B. ca. 60 Sekunden). Au&szlig;erdem ben&ouml;tigt der
357Compiler
358jetzt wesentlich mehr Speicher. Der "memory"-Parameter in den
359Konfigurationsdateien
360(.mrun.config, .al.config) muss nun mindestens den Wert 60 (MB) (t3eh,
361t3ej2) bzw. 45 (t3eb) und 96 (vpp) haben.&nbsp; <br> <b>Achtung:</b>
362bislang wurde diese &Auml;nderung nur f&uuml;r
363das
364reine Leapfrog-Verfahren getestet!&nbsp; </p> <p>Neue
365Laderoption "<tt>-D preset=nan</tt>" empfohlen (s.
366Beispiel-Konfigurationsdatei).
367Ebenso empfehlenswert f&uuml;r Debug-L&auml;ufe: Compileroption
368"<tt>-ei</tt>".
369Diese bewirkt einen Programmabbruch, falls mit nicht initialisierten
370Variablen
371gearbeitet wird (ist aber zeitaufwendig in der Ausf&uuml;hrung!).</p>
372</td> <td>boundary_conds, check_parameters, header,
373init_3d_model,
374leap_frog,
375modules, parin, read_var_list, timestep, write_var_list&nbsp; <p><b>Neu:</b>
376<br>
377swap_timelevel</p> </td> </tr> <tr nosave="" valign="top"> <td nosave="">10/01/00</td>
378<td>SR</td> <td>1.2</td> <td>B</td>
379<td>Der Asselin-Filter wird vor Umordnung der Zeitebenen
380aufgerufen. Dies
381geschah bisher f&auml;lschlicherweise erst danach, sodass der
382Zeitfilter
383asymmetrisch arbeitete.&nbsp; <br> <b>Achtung:</b>
384diese &Auml;nderung hat Auswirkungen auf den
385Prognoseverlauf.
386Die Testergebnis-Datei wurde entsprechend ge&auml;ndert.</td>
387<td>leap_frog</td> </tr> <tr nosave="">
388<td nosave="" valign="top">14/02/00</td> <td nosave="" valign="top">MS</td> <td nosave="" valign="top">1.2</td> <td nosave="" valign="top">B/C</td> <td><b>1D-Modell:</b>
389<br>
390Der Asselin-Filter im 1D-Modell wird nun auch vor der Umordnung der
391Zeitebenen aufgerufen (s.o.).&nbsp; <p><b>3D-Modell:</b>
392<br>
393TKE wurde bisher bei <tt>scalar_advec=bc-scheme</tt> einer
394zeitlichen
395Filterung unterzogen. Dies wird nun unterbunden.&nbsp; </p> <p>Die
396Divergenz der Impulsfl&uuml;sse an der Prandtl - Schicht -
397Obergrenze
398wird nun &uuml;ber eine ganze Gitterweite gebildet. Die bisherige
399Methode
400lieferte im Vergleich mit Ergebnissen anderer LES-Modelle&nbsp; zu
401gro&szlig;e
402Impulsfl&uuml;sse.&nbsp; </p> <p>Bei der
403Berechnung der Diffusion der Temperatur werden die
404Diffusionskoeffizienten
405nun wieder durch Mittelung f&uuml;r die entsprechenden&nbsp;
406Gitterpunkte
407bereitgestllt. Das Maximumkriterium, das im Zuge der Implementierung
408des
409Upstream-Spline Advektionsverfahrens eingebaut wurde, bewirkte ein zu
410rasches
411Anwachsen der Grenzschicht mit der Zeit.&nbsp; </p> <p><b>Achtung:</b>
412diese &Auml;nderungen haben Auswirkungen auf
413den Prognoseverlauf.
414Die Testergebnis-Datei wurde entsprechend ge&auml;ndert.</p> </td>
415<td nosave="" valign="top">init_1d_model,
416asselin_filter,
417diffusion_u, diffusion_v,&nbsp; <br>
418diffusion_pt</td> </tr> <tr nosave="" valign="top"> <td nosave="">17/02/00</td>
419<td>MS</td> <td>2.0</td> <td>N</td>
420<td><b>Allgemeine Beschreibung der &Auml;nderungen:</b>
421<br>
422vollst&auml;ndige Implementierung des wolkenphysikalischen
423Moduls&nbsp; <p>Zur Implementierung der Wolkenphysik waren
424umfangreiche
425&Auml;nderungen
426in zahlreichen Programmteilen notwendig (Beschreibung <a href="#Cloud_physics">siehe
427unten</a> ). Im einzelnen wurden folgende Unprogramme
428ge&auml;ndert:&nbsp; <br> <b>modules</b>:&nbsp;
429<br>1) Bereitstellung neuer 3D-, 2D- und 1D-Felder f&uuml;r
430die Prognose
431des Gesamtwassergehaltes&nbsp; <br>
4322) "cloud_parameters" als neues Modul mit wolkenphysikalischen
433Variablen&nbsp; <br> <b>parin: </b>Initialisierungsparameterliste
434wurde erweitert
435(s.u.)&nbsp; <br> <font color="#000000"><b>read_var_list,
436write_var_list,
437write_3d_binary: </b>In/Output
438der neuen Initialisierungsparamter und Felder f&uuml;r
439Fortsetzungsl&auml;ufe&nbsp;</font> <br> <font color="#000000"><b>check_parameters:</b>
440Initialisierung
441des
442Feuchteprofils und Ausgabe von neuen Vertikalprofilen:&nbsp;</font>
443<br> <font color="#ff0000">vpt</font><font color="#000000">: virtuelle
444poteniellen
445Temperatur,</font> <br> <font color="#ff0000">lpt</font><font color="#000000">:
446potentielle
447Fl&uuml;ssigwassertemperatur,</font> <br> <font color="#ff0000">q</font><font color="#000000">:
448Gesamtwassergehalt,</font> <br> <font color="#ff0000">qv</font><font color="#000000">:
449spezifische
450Feuchte,</font> <br> <font color="#ff0000">ql</font><font color="#000000">:
451Fl&uuml;ssigwassergehalt,</font> <br> <font color="#ff0000">w"vpt", w*vpt*, wvpt</font><font color="#000000">:
452Auftriebsfluss (subskalig, aufgel&ouml;st, gesamt),</font> <br>
453<font color="#ff0000">w"q", w*q*, wq</font><font color="#000000">:
454Wasserfluss (subs., aufg., ges.),</font> <br> <font color="#ff0000">w"qv", w*qv*, wqv</font><font color="#000000">:
455Feuchtefluss (subs, aufg., ges.)</font> <br> <b>init_3d_model</b>:
456Initialisierung aller
457Feuchte/Wasserfelder&nbsp; <br> <b>init_1d_model</b>:
458Anpassung an Rechnungen mit Feuchte&nbsp; <br> <b>header</b>:
459Headerausgaben f&uuml;r Feuchtebehandlung und
460Wolkenphysik
461eingef&uuml;gt, au&szlig;erdem Formatnummern erweitert um Platz
462f&uuml;r
463weitere Ausgaben zu schaffen&nbsp; <br> <b>leap_frog:</b>
464<br>
4651) alle prognostischen Gleichungen wurden in prognostic_equations
466ausgelagert&nbsp; <br>
4672) Aufrufe der neuen Unterprogramme (UP) compute_vpt,
468calc_liquid_water_content&nbsp; <br>
4693) veraenderter Aufruf von diffusivities&nbsp; <br> <b><tt>b</tt>oundary_conds,
470asselin_filter, swap_timelevel,
471flow_statistics: </b>Anpassung
472an Feuchtebehandlung&nbsp; <br> <b>plot2d, plot3d</b>:
473Ausgabem&ouml;glichkeiten von q und ql <br> <b>buoyancy</b>:
474Anpassung des Autriebstermes an
475Feuchtebehandlung
476durch neue &Uuml;bergabeparameter: Temperatur + Nummer des
477entsprechenden
478mittleren Temperaturprofils&nbsp; <br> <b>diffusion_e</b>:
479Anpassung der Mischungswegberechnung an
480Feuchtebehandlung
481durch Variation der &Uuml;bergabeparameter&nbsp; <br> <b>production_e</b>:
482TKE-Produktion durch Auftriebskr&auml;fte an
483Feuchtebehandlung
484angepasst&nbsp; <br> <b>diffusivities</b>:
485siehe diffusion_e&nbsp; <br> <b>prandtl-fluxes</b>:
486Prandtl-Schicht fuer den
487Gesamtwassergehalt
488eingef&uuml;gt&nbsp; </p> <p>Zus&auml;tzlich
489wurden folgende Unterprogramme NEU
490eingef&uuml;hrt:&nbsp; <br> <b>inti_cloud_physics</b>:
491Initialisierung wolkenphysikalischer
492Parameter&nbsp; <br> <b>prognostic_equations</b>:
493Auslagerung der prognostischen
494Gleichungen
495aus leap_frog, zus&auml;tzliche porgnostische Gleichung
496f&uuml;r den
497Gesamtwassergehalt&nbsp; <br> <b>diffusion_s</b>:
498Berechnung der Diffusion skalarer
499Gr&ouml;&szlig;en
500(Temperatur und Gesamtwassergehalt), ersetzt diffusion_pt&nbsp; <br>
501<b>calc_liquid_water_content</b>: Berechnung des
502Fl&uuml;ssigwassergehalts&nbsp; <br> <b>calc_radiation</b>:
503Parametrisierung langwelliger
504Strahlungsprozesse
505&uuml;ber des Schema der effektiven Emissivit&auml;t&nbsp; <br>
506<b>calc_precipitation</b>:Parametrisierung von
507Niederschlagsprozessen
508mit Hilfe eines vereinfachten Kesslerschemas&nbsp; <br> <b>impact_of_latent_heat</b>:
509Ber&uuml;cksichtigung der durch
510Niederschlagsprozesse
511zur&uuml;ckbleibenden latenten Waerme innerhalb eines
512Gittervolumens&nbsp; <br> <b>compute_vpt</b>:
513Berechnung der virtuellen potentiellen
514Temperatur&nbsp; </p> <p><b>Liste der neuen
515Initialisierungsparameter:</b> <br> <table nosave="" border="1"> <caption>&nbsp; <br> </caption><tbody>
516</tbody><tbody> </tbody> <tbody> <tr nosave=""> <td nosave=""><b>Parameter</b></td>
517<td nosave=""><b>Typ</b></td> <td nosave="" width="4%"><b>Default</b></td>
518<td nosave=""><b>Beschreibung</b></td> </tr>
519<tr nosave=""> <td nosave=""><tt>moisture</tt></td>
520<td>L</td> <td>FALSE</td> <td>Ab-/Zuschalten
521des Gesamtwassergerhaltes als neue
522progn. Variable</td> </tr> <tr> <td><tt>cloud_physics</tt></td>
523<td>L</td> <td>FALSE</td> <td>Ab-/Zuschalten
524des Kondensationsschemas</td> </tr> <tr nosave="">
525<td><tt>radiation</tt></td> <td>L</td>
526<td nosave="">FALSE</td> <td>Ab-/Zuschalten
527des Strahlungsschemas</td> </tr> <tr> <td><tt>precipitation</tt></td>
528<td>L</td> <td>FALSE</td> <td>Ab-/Zuschalten
529der Niderschlagsparametrisierung</td> </tr> <tr> <td><tt>bc_q_b</tt></td>
530<td>C</td> <td>'dirichlet'</td> <td>untere
531Randbedingung f&uuml;r q (siehe auch bc_pt_b)</td> </tr>
532<tr> <td><tt>bc_q_t</tt></td> <td>C</td>
533<td>'neumann'</td> <td>obere RB f&uuml;r q
534(siehe auch bc_pt_t)</td> </tr> <tr> <td><tt>q_surface</tt></td>
535<td>R</td> <td>0.0</td> <td>Feuchtewert
536an der Erdoberfl&auml;che</td> </tr> <tr> <td><tt>q_surface_initial_change</tt></td>
537<td>R</td> <td>0.0</td> <td>vgl.
538pt_surface_initial_change</td> </tr> <tr> <td><tt>q_vertical_gradient</tt></td>
539<td>R(10)</td> <td>0.0</td> <td>vgl.
540pt_vertical_gradient</td> </tr> <tr nosave="">
541<td nosave=""><tt>q_vertical_gradient_level</tt></td>
542<td>R(10)</td> <td>10000.0</td> <td>vgl.
543pt_vertical_gradient_level</td> </tr> <tr> <td><tt>surface_pressure</tt></td>
544<td>R</td> <td>1013.25</td> <td>Luftdruck
545an der Erdoberfl&auml;che</td> </tr> <tr> <td><tt>surface_waterflux</tt></td>
546<td>R</td> <td>0.0</td> <td>oberfl&auml;chennaher
547Wasser/Feuchtefluss</td> </tr> </tbody> </table>
548Fortsetzungsl&auml;ufe mit Daten, die mit Modellversionen kleiner
5492.0
550erzeugt
551wurden, sind aufgrund der erweiterten Initialisierungsparameterliste
552INKOMPATIBEL
553zu den Einleseroutinen der Version 2.0. Ein Update auf Version 2.0
554sollte
555deshalb nach Abschluss eines kompletten Modelllaufs erfolgen.&nbsp;
556</p> <p><b>Achtung:</b> diese
557&Auml;nderungen haben Auswirkungen auf
558den Prognoseverlauf.
559Die Testergebnis-Datei wurde entsprechend ge&auml;ndert.</p> </td>
560<td nosave="" valign="top">modules, parin,
561read_var_list,
562check_parameters,
563init_3d_model, init_1d_model, header, leap_frog. buoyancy, diffusion_e,
564production_e, diffusivities, prandtl_fluxes, boundary_conds,
565asselin_filter,
566swap_timelevels, flow_statistics, plot_2d, plot_3d, write_var_list,
567write_3d_binary&nbsp; <p><b>Neu:</b> <br>
568init_cloud_physics, prognostic_equations, diffusion_s,
569calc_liquid_water_content,
570calc_radiation, calc_precipitation, impact_of_latent_heat, comute_vpt</p>
571</td> </tr> <tr nosave=""> <td nosave="" valign="top">18/02/00</td> <td nosave="" valign="top">MS</td> <td nosave="" valign="top">2.0</td> <td nosave="" valign="top">B/N</td> <td>Im Zuge der
572Umstellung auf Modellversion 2.0&nbsp; wurden
573noch kleine
574&Auml;nderungen an den Unterprogrammen diffusion_e, production_e
575und
576diffusivities
577vorgenommen. In allen genannten&nbsp; <br>
578Unterprogrammen wurde bisher ein strengeres Kriterium zur Bestimmung
579der Schichtungsverh&auml;ltnisse verwendet. Ein Modellvergleich
580zeigte
581jedoch, dass dadurch die Diffusion im Bereich der Inversion zu gross
582wird.&nbsp; <p>Eine weitere Erg&auml;nzung betrifft die
583Advektionsverfahren:&nbsp; <br>
584Das Bott-Chlond Advektionsverfahren ist nun auch f&uuml;r
585Rechnungen
586mit Feuchte/Wolkenphysik verf&uuml;gbar.&nbsp; </p> <p><b>Achtung:</b>
587diese &Auml;nderungen haben Auswirkungen auf
588den Prognoseverlauf.
589Die Testergebnis-Datei wurde entsprechend ge&auml;ndert.</p> </td>
590<td nosave="" valign="top">diffusion_e,
591production_e,
592diffusivities, check_parameters</td> </tr> <tr nosave="" valign="top"> <td nosave="">26/04/00</td>
593<td>SR</td> <td>2.0a</td> <td>C</td>
594<td>Vollst&auml;ndige Umstellung von vtk-Grafik-Software auf
595dvrp-Software.
596Grafik-Ausgaben im dvr-Format sind mittlerweile begrenzt nutzbar
597(Isooberfl&auml;chen
598sind darstellbar, siehe neue Laufparameter&nbsp; <tt>dt_dvrp,
599threshold</tt>),
600es wird aber in der Anwendung in naher Zukunft noch diverse
601&Auml;nderungen
602geben. Partikelausgabe vorerst nicht mehr m&ouml;glich (Verlagerung
603schon).</td> <td>header, init_particles, init_3d_model,
604leap_frog, modules,
605parin, parles,
606read_var_list, write_var_list&nbsp; <br> <b>Gestrichen:</b>
607<br>
608plot_isosurface, plot_particles&nbsp; <p><b>Neu:</b>
609<br>
610init_dvrp, plot_dvrp</p> </td> </tr> <tr nosave="" valign="top"> <td nosave="">26/04/00</td>
611<td>SR</td> <td>2.0a</td> <td>C</td>
612<td>Durch zus&auml;tzlichen zyklischen Rand im
613Bott-Chlond-Schema
614sehr
615viele SENDRECV-Aufrufe eingespart.&nbsp; <br>
616&Auml;nderung des Namens einer eingelesenen Environment-Variablen
617in <tt>check_open</tt>
618von <tt>remote_addres</tt> nach <tt>return_addres</tt>.&nbsp;
619<br>Prozessor-Topologie kann durch Benutzer vorgegeben werden.
620Dazu neue
621Initialisierungsparameter <tt>npex</tt> und <tt>npey</tt>.
622Durch
623&Auml;nderungen
624am Header-Format wurde Testergebnis-Datei ge&auml;ndert.</td>
625<td>advec_s_bc, check_open, header, init_pegrid, modules, parin,
626read_var_list,
627write_var_list</td> </tr> <tr nosave="" valign="top"> <td nosave="">26/04/00</td>
628<td>SR</td> <td>2.0a</td> <td>N</td>
629<td>Rechnungen mit geneigter Oberfl&auml;che erlauben jetzt
630die
631Vorgabe
632eines stabil geschichteten Temperaturprofils mit konstantem Gradienten.
633Hinzuschalten von Feuchte funktioniert f&uuml;r Hangrechnungen noch
634nicht.</td> <td>advec_s_bc, buoyancy, init_3d_model,
635modules,
636prognostic_equations&nbsp; <p><b>Neu:</b> <br>
637init_slope</p> </td> </tr> <tr nosave="" valign="top"> <td>13/06/00</td> <td>MS</td>
638<td>2.0a</td> <td nosave="">B</td> <td>Es
639werden nun auch die seitlichen R&auml;nder f&uuml;r ql
640gesetzt.
641Ein Nichtsetzen der Randbedingungen f&uuml;hrte zu Fehlern bei der
642Ausgabe
643von pt</td> <td nosave="">calc_liquid_water_content</td>
644</tr> <tr nosave="" valign="top"> <td nosave="">03/07/00</td> <td>SR</td> <td>2.0b</td>
645<td>C</td> <td>F&uuml;r eine Reihe von&nbsp;
646Unterprogrammen, die innerhalb
647von <tt>prognostic_equation</tt>
648aufgerufen werden und an die Pointer-Variablen &uuml;bergeben
649werden,
650sind
651jetzt explizite Interfaces vereinbart (neues Modul <tt>pointer_interfaces</tt>).
652Auch im Vereinbarungsteil der entsprechenden Unterprogramme sind diese
653&Uuml;bergabeparameter jetzt aus Konsistenzgr&uuml;nden (und
654weil es
655sonst
656Laufzeitfehler gibt) als Pointer-Variablen deklariert. Mit dieser
657&Auml;nderung
658ist der gro&szlig;e Speicher- und CPU-Zeit-Bedarf beim
659&Uuml;bersetzen
660von prognostic_equations wieder auf ein ertr&auml;gliches
661Ma&szlig;
662reduziert.&nbsp; <br>
663Im Rahmen dieser &Auml;nderungen wurde auch an diffusion_e ein
664Hilfsfeld
665weniger &uuml;bergeben.&nbsp; <br>
666Aus nicht vollst&auml;ndig gek&auml;rten Gr&uuml;nden haben
667sich die
668Zahlen in der Testergebnis-Datei minimal ge&auml;ndert (und zwar
669die
670Spalte
671mit der Gesamtdivergenz nach Aufruf des Druckl&ouml;sers).</td>
672<td>advec_s_bc, buoyancy, diffusion_e, diffusion_s, diffusion_u,
673diffusion_v,
674diffusion_w, disturb_field, modules, production_e, prognostic_equations</td>
675</tr> <tr nosave="" valign="top"> <td nosave="">04/07/00</td> <td>SR</td> <td>2.0b</td>
676<td>B</td> <td>Diriclet-Randbedingungen f&uuml;r
677Temperatur und
678Fl&uuml;ssigwassergehalt
679werden gesetzt. Dies w&auml;re bereits nach Einf&uuml;hrung der
680Pointer
681zwingend notwendig gewesen. Rechnungen mit vorgegebener
682Oberfl&auml;chentemperatur
683schlugen deshalb bislang fehl.</td> <td>boundary_conds</td>
684</tr> <tr nosave="" valign="top"> <td nosave="">07/09/00</td> <td>MS</td> <td>2.0b</td>
685<td>B</td> <td>Die virtuelle potenielle Temperatur
686wird nun auch f&uuml;r
687k=nzb und
688k=nzt+1 berechnet, um die Randwerte auch f&uuml;r Ausgabezwecke
689bereichtzustellen.&nbsp;</td> <td>compute_vpt</td>
690</tr> <tr nosave="" valign="top"> <td nosave="">28/12/00</td> <td>SR</td> <td>2.1</td>
691<td>C/N</td> <td>PALM erlaubt jetzt den Einsatz
692optionaler Software-Pakete,
693die zwar
694zum Modell geh&ouml;ren, standardm&auml;&szlig;ig aber
695nicht mit
696&uuml;bersetzt
697werden, um so unter anderem Kompilationszeit einzusparen. Siehe neues
698Kapitel
6993.7 in der Modelldokumentation.&nbsp; <p>Einsatz der
700dvrp-Software wurde vollst&auml;ndig
701&uuml;berarbeitet.
702Sie ist nun als Software-Paket optional im Modell einsetzbar. Siehe
703&uuml;berarbeitetes
704Kapitel 4.5.6 in der Modelldokumentation.&nbsp; </p> <p>Die
705Prognose der Partikelverlagerung ist ebenfalls in ein
706optionales
707Software-Paket ausgelagert.</p> </td> <td>advec_particles,
708header, init_3d_model, init_dvrp,
709init_particles,
710init_pegrid, modules, parin, parles, plot_dvrp, prognostic_equations,
711read_var_list,
712write_var_list&nbsp; <p><b>Neu:</b> <br>
713package_parin</p> </td> </tr> <tr nosave="" valign="top"> <td nosave="">28/12/00</td>
714<td>SR</td> <td>2.1</td> <td>B</td>
715<td>MPI_FINALIZE ans Ende des Hauptprogramms geschoben (stand
716vorher vor
717cpu_auswertung, wo noch ein Barrier-Aufruf steht). comm2d war zu Beginn
718undefiniert und wird nun erst einmal gleich MPI_COMM_WORLD gesetzt.</td>
719<td>parles</td> </tr> <tr nosave="" valign="top"> <td nosave="">02/01/01</td>
720<td>SR</td> <td>2.1a</td> <td>C</td>
721<td>Offene Dateien werden sobald m&ouml;glich geschlossen.
722Wiederer&ouml;ffnung
723bestimmter Dateien mit POSITION='APPEND' m&ouml;glich. In diesem
724Zusammenhang
725wurde das Unterprogramm close_files in close_file umbenannt und hat nun
7261 Argument.&nbsp; <br>
727Anpassung der Diffusionsparametrisierung im 1D-Modell an das 3D-Modell.</td>
728<td>advec_particles, check_cpu_time, check_open, cpu_auswertung,
729init_1d_model,
730init_3d_model, init_particles, modules.f90, parin, parles, plot_2d,
731write_3d_binary&nbsp; <p><b>Neu:</b> <br>
732close_file&nbsp; </p> <p><b>Eliminiert:</b>
733<br>
734close_files</p> </td> </tr> <tr nosave="" valign="top"> <td nosave="">02/01/01</td>
735<td>SR</td> <td>2.1a</td> <td>B</td>
736<td>Beseitigung kleiner Fehler.</td> <td>check_cpu_time,
737diffusion_e, diffusivities, long_filter,
738production_e</td> </tr> <tr nosave="" valign="top"> <td>05/01/01</td> <td>SR</td>
739<td>2.1b</td> <td>N</td> <td nosave="">Neues
740Software-Paket zur Berechnung von Spektren im
741Ortsraum</td> <td>check_open, header, init_3d_model,
742leap_frog, modules,
743package_parin,
744parles, read_var_list, write_3d_binary, write_var_list&nbsp; <p><b>Neu:</b>
745<br>
746calc_spectra, plot_spectra</p> </td> </tr> <tr valign="top"> <td>25/01/01</td> <td>SR</td>
747<td>2.1c</td> <td>C/N</td> <td>Druckl&ouml;ser
748kann jetzt die Singleton-FFT benutzen. Modul <tt>singleton</tt>
749wurde deshalb von <tt>calc_spectra.f90</tt> nach <tt>modules.f90</tt>
750geschoben
751(neuer Initialisierungsparameter <tt>fft_method</tt>).&nbsp;
752<br>Fl&uuml;sse k&ouml;nnen jetzt bei k=1
753unabh&auml;ngig von der
754Verwendung
755einer Prandtl-Schicht vorgegeben werden (neuer
756Initialisierungsparameter <tt>use_surface_fluxes</tt>).&nbsp;
757<br>Modul <tt>test_variables</tt> wurde aus allen
758Programmteilen entfernt.
759Hauptprogramm wurde von parles nach <tt>palm</tt>
760umbenannt.&nbsp; <br>
761Modell kann auf DEC-Workstations eingesetzt werden (-D <tt>dec</tt>).&nbsp;
762<br>Zus&auml;tzliche Zeitmessungen mit dvrp-Software.
763Schreiben von
764Partikel-Informationen
765ist optional (neuer Parameter <tt>write_particle_informations</tt>).</td>
766<td>advec_particles, calc_spectra, check_parameters,
767cpu_zeitmessung, diffusion_s,
768header, init_3d_model, init_dvrp, init_particles, leap_frog, modules,
769package_parin,
770parin, poisfft, read_var_list, swap_timelevel, write_var_list&nbsp;
771<p><b>Neu:</b> <br>
772palm&nbsp; </p> <p><b>Eliminiert:</b> <br>
773parles, module_test</p> </td> </tr> <tr valign="top"> <td>25/01/01</td> <td>SR</td>
774<td>2.1c</td> <td>B</td> <td>Fehler
775beim &ouml;ffnen von Unit 23 beseitigt. Modul <tt>interface</tt>
776fehlte in disturb_field.&nbsp; <br>
777Wertebereich von theta* in Prandtl-Fluxes eingeschr&auml;nkt, weil
778sonst auf einigen Rechnern overflow droht, wenn u*=0.</td> <td>check_open,
779disturb_field, prandtl_fluxes</td> </tr> <tr valign="top"> <td>30/01/01</td> <td>SR</td>
780<td>2.1d</td> <td>N/C</td> <td>Prognose
781eines passiven Skalars ist m&ouml;glich (anstatt
782Feuchte),
783dazu neuer Initialisierungsparameter <tt>passive_scalar</tt>.&nbsp;
784<p>Falls kein Pfad f&uuml;r ftpcopy existiert, werden in <tt>check_open</tt>
785die Dateinamen f&uuml;r AVS-Koordinaten- und Datendatei auf
786"unknown"
787gesetzt.</p> </td> <td>asselin_filter,
788boundary_conds, check_open, check_parameters,
789flow_statistics,
790header, init_1d_model, init_3d_model, modules, parin, plot_2d,
791plot_dvrp,
792prandtl_fluxes, prognostic_equations, read_var_list, swap_timelevel,
793write_3d_binary,
794write_var_list</td> </tr> <tr valign="top"> <td>30/01/01</td>
795<td>SR</td> <td>2.1d</td> <td>B</td>
796<td>String-Ausgabe f&uuml;r use_surface_fluxes korrigiert.
797Version vom
79825/01/01 brach deswegen bei Fortsetzungsl&auml;ufen ab.&nbsp; <br>
799xy-Plotausgabe von q und ql korrigiert.</td> <td>plot_2d,
800write_var_list</td> </tr> <tr nosave="" valign="top"> <td nosave="">30/03/01</td>
801<td>SR</td> <td>2.2</td> <td>N/C</td>
802<td>S&auml;mtliche 3D-Felder der Zeitebene t+dt wurden
803entfernt.
804Ebenso
805die Arbeitsfelder work und work1. Hilfsfelder wurden soweit
806m&ouml;glich
807eingespart und werden grunds&auml;tzlich lokal allokiert. Dadurch
808konnten
809eine Reihe von &Uuml;bergabeparametern gestrichen werden (z.B. beim
810Aufruf
811von <tt>pres, advec_s_bc, poisfft, production_e, sor </tt>sowie
812den
813Spline-Unterprogrammen).
814Der Long-Filter wurde in das Upstream-Spline-Verfahren integriert. Da
815der
816Zeitfilter jetzt direkt in der prognostischen Gleichung angewendet wird
817(bisher geschah dies erst nach Aufruf des Druckl&ouml;sers), haben
818sich
819die Zahlen in der Testergebnis-Datei ge&auml;ndert. Die mittleren
820Profile
821sind aber unbeeinflusst.&nbsp; <p>Eine weitere kleinere
822&Auml;nderung der Testergebnis-Daten
823wird dadurch
824verursacht, dass jetzt der Parameter <tt>adjust_mixing_length</tt>
825defaultm&auml;&szlig;ig <tt>.FALSE.</tt>
826ist und der Mischungsweg grunds&auml;tzlich zus&auml;tzlich
827auf&nbsp; <tt>0.7
828* zu</tt>&nbsp;&nbsp; begrenzt wird. Falls <tt>adjust_mixing_length=T</tt>,
829wird jetzt der Mischungsweg in <tt>diffusivities</tt>
830analog zu <tt>diffusion_e</tt>
831an allen Gitterpunkten modifiziert. <b>Achtung: </b>Diese
832&Auml;nderungen
833k&ouml;nnen bei anderen Simulationen t.w. erhebliche Auswirkungen
834auf
835die
836oberfl&auml;chennahen Ergebnisse haben.&nbsp; </p> <p><b>Kleinere
837&Auml;nderungen:</b> In <tt>init_cloud_physics</tt>
838wird
839der Wert der Variablen <tt>surface_pressure</tt> in hPa
840belassen
841(bisher
842Umwandlung in Pa).&nbsp; <br>
843Die Namelist-Namen der Software-Pakete sind&nbsp; t.w.
844ge&auml;ndert.&nbsp; <br>
845Unit 14 (bin&auml;re Ausgabe f&uuml;r
846Fortsetzungsl&auml;ufe) wird
847jetzt im Hauptprogramm geschlossen, damit auf diese Datei noch
848benutzergesteuerte
849Ausgaben erfolgen k&ouml;nnen.&nbsp; <br>
850Laufparameter werden in keinem Fall mehr auf Unit 14 ausgegeben bzw.
851von Unit 13 gelesen, d.h. sie gelten jetzt tats&auml;chlich nur
852f&uuml;r
853den jeweils aktuellen Lauf.&nbsp; <br>
854Partikeladvektion funktioniert jetzt auch zusammen mit der
855Galilei-Transformation.&nbsp; </p> <p>Restliche
856deutsche Variablen-, Unterprogramm- und Modulnamen
857wurden
858ins Englische &uuml;bersetzt. Davon sind fast alle Programmteile
859betroffen
860(nicht in rechter Spalte aufgef&uuml;hrt).</p> </td> <td>advec_particles,
861advec_s_bc, advec_s_ups, advec_u_ups,
862advec_v_ups,
863advec_w_ups, boundary_conds, calc_spectra, check_parameters,
864diffusion_e,
865init_3d_model, init_cloud_physics, init_pegrid, init_rankine,
866leap_frog,
867modules, package_parin, palm, parin, poisfft, pres, production_e,
868prognostic_equations,
869read_var_list, sor, swap_timelevel, transpose_*, write_3d_binary,
870write_var_list&nbsp; <p><b>Neu:</b> <br>
871cpu_log, cpu_statistics&nbsp; </p> <p><b>Eliminiert:</b>
872<br>
873asselin_filter, cpu_auswertung, cpu_zeitmessung, long_filter</p> </td>
874</tr> <tr nosave="" valign="top"> <td nosave="">12/07/01</td> <td>SR</td> <td>2.2a</td>
875<td>N/C</td> <td>Defaultwert der unteren
876Randbedingung f&uuml;r die TKE ist ab
877sofort <tt>bc_e_b
878= 'neumann'</tt>.&nbsp; <br>
879Partikelquelle ist &uuml;ber Paketparameter steuerbar.
880Partikeleigenschaften
881sind mittels benutzereigener Software steuerbar. Der dvrp-Ausgabeweg
882ist
883jetzt ebenfalls &uuml;ber Paketparameter steuerbar.&nbsp; <br>
884Allen Modulen (bis auf singleton) wurde eine SAVE-Anweisung
885hinzugef&uuml;gt,
886damit die durch sie vereinbarten Variablen w&auml;hrend der
887Rechnung in
888keinem Fall undefiniert werden k&ouml;nnen (diese Gefahr besteht
889z.B.
890auf
891SGI-Origin-Maschinen).</td> <td>advec_particles, header,
892init_dvrp, init_particles,
893modules.f90, package_parin,
894plot_dvrp, user_interface</td> </tr> <tr> <td>12/07/01</td>
895<td>SR</td> <td>2.2a</td> <td>B</td>
896<td>Verschiebung der OPEN-Anweisung f&uuml;r Unit 33
897(AVS-FLD-Datei).</td> <td>check_open</td> </tr>
898<tr nosave="" valign="top"> <td nosave="">20/07/01</td>
899<td>SR</td> <td>2.3</td> <td>N</td>
900<td>Einbau des Mehrgitterverfahrens zur L&ouml;sung der
901Poisson-Gleichung.</td> <td>check_parameters,
902exchange_horiz, header, init_grid,
903init_pegrid, modules,
904parin, pres, run_control&nbsp; <p><b>Neu:</b> <br>
905poismg</p> </td> </tr> <tr nosave="" valign="top"> <td nosave="">21/08/01</td>
906<td>SR</td> <td>2.3a</td> <td>N/C</td>
907<td>Erg&auml;nzung der dvrp-Software: Partikel
908k&ouml;nnen mit
909Schw&auml;nzen
910versehen werden. Die Ausgabe der dvrp-Plotdaten durch einen separaten
911PE
912ist m&ouml;glich (mrun-Option "<tt>-p dvrp_graphics+1PE</tt>").
913Der
914Kommunikator <tt>MPI_COMM_WORLD</tt>&nbsp;
915wurde deshalb durch&nbsp; <tt>comm_palm</tt>&nbsp;
916ersetzt.&nbsp; <p>Reduzierung des Mischungsweges im
917Wandbereich kann wahlweise
918abgeschaltet
919werden. F&uuml;r km und kh wird jetzt eine Neumann-Randbedingung am
920unteren
921Rand verwendet. Die TKE-Energieproduktionsberechnung durch Scherung des
922Grundstroms am unteren Rand wurde verbessert.&nbsp; </p> <p>Generelle
923Verwendung der bodennahen vertikalen
924Impulsfl&uuml;sse in
925den Diffusionstermen von u und v, immer wenn diese als Randbedingung
926vorgegeben
927sind (gem&auml;&szlig; <tt>use_surface_fluxes</tt>,
928- bisher wurde
929dies
930nur bei eingeschalteter Prandtl-Schicht gemacht). Schubspannungen
931k&ouml;nnen
932jetzt als Randbedingungen vorgegeben werden (allerdings unter
933zuhilfenahme
934benutzereigener Software).&nbsp; </p> <p>Zus&auml;tzliche
935Schnittstellen f&uuml;r benutzereigene
936Software in
937allen Tendenztermen, in <tt>flow_statistics,</tt> und
938f&uuml;r
939Partikel-
940bzw. dvrp-Programmteile (Bestimmung von Partikeleigenschaften,
941Festlegung
942von Farbtabellen).&nbsp; </p> <p><b>Achtung: </b>Diese
943&Auml;nderungen k&ouml;nnen bei
944Simulationen mit
945mittlerem Wind durch die &Auml;nderungen im bereich des unteren
946Randes
947t.w. erhebliche Auswirkungen auf die oberfl&auml;chennahen
948Ergebnisse
949haben.</p> </td> <td>advec_particles, diffusion_e,
950diffusion_u, diffusion_v,
951diffusivities,
952flow_statistics, header, init_dvrp, init_particles, init_pegrid,
953leap_frog,
954modules, package_parin, palm, parin, plot_dvrp, production_e,
955prognostic_equations,
956read_var_list, swap_timelevel, user_interface, write_var_list</td>
957</tr> <tr nosave="" valign="top"> <td nosave="">21/08/01</td> <td>SR</td> <td>2.3a</td>
958<td>B</td> <td>Falsche Positionierung von
959MPI_ALLREDUCE in check_cpu_time
960korrigiert.</td> <td>check_cpu_time</td> </tr>
961<tr nosave="" valign="top"> <td nosave="">04/09/01</td>
962<td>SR</td> <td>2.3b</td> <td>N</td>
963<td>Zus&auml;tzliche Profilausgaben f&uuml;r
964Energieproduktionsterme m&ouml;glich.
965St&ouml;rdruck wird bei der FFT-Methode nicht mehr durch
966Aufsummieren
967der
968Werte zu den einzelnen Zeitschritten ermittelt.</td> <td>check_parameters,
969flow_statistics, modules, pres</td> </tr> <tr nosave="" valign="top"> <td nosave="">04/09/01</td>
970<td>SR</td> <td>2.3b</td> <td>B</td>
971<td>Austausch der Geisterr&auml;nder f&uuml;r die
972zeitgefilterten
973Felder
974direkt nach Durchf&uuml;hrung der Filterung (war fehlerhaft seit
975Entfernen
976der Zeitebene t+dt (Version 2.2) und f&uuml;hrte zu sehr kleinen
977St&ouml;rungen
978an den seitlichen R&auml;ndern der Teilgebiete).&nbsp; <p><b>Achtung:</b>
979Der Inhalt der Testergebnis-Datei &auml;ndert
980sich durch
981diese Fehlerkorrektur.</p> </td> <td>prognostic_equations</td>
982</tr> <tr nosave="" valign="top"> <td nosave="">09/11/01</td> <td>SR</td> <td>2.3c</td>
983<td>N</td> <td>Farbe entlang der
984Partikelschw&auml;nze kann sich
985&auml;ndern. Einschalten
986der Partikeladvektion bei Fortsetzungsl&auml;ufen m&ouml;glich.</td>
987<td>advec_particles, init_particles, modules, package_parin,
988plot_dvrp</td> </tr> <tr nosave="" valign="top">
989<td nosave="">16/04/02</td> <td>SR</td>
990<td>2.3d</td> <td>N</td> <td>Vorgabe
991von Randbedingungen f&uuml;r Partikeladvektion
992m&ouml;glich.
993Partikeldaten k&ouml;nnen f&uuml;r sp&auml;tere Analysen
994auf Datei
995geschrieben
996werden (Unit 85). <tt>PARTICLE</tt>-Datentyp
997enth&auml;lt
998Informationen
999&uuml;ber Partikelgeschwindigkeitskomponenten und
1000Startposition.&nbsp; <p>Skalartransport sowie entsprechende
1001Datenausgaben k&ouml;nnen
1002durch
1003eigene Parameter gesteuert werden (nicht mehr &uuml;ber die
1004Feuchteparameter).&nbsp; </p> <p>Im Fall von
1005pdims(1)=1 (eindimensionales virtuelles
1006Prozessornetz in
1007y-Richtung) werden die zyklischen Randbedingungen in x-Richtung durch
1008direktes
1009Umspeichern anstatt durch&nbsp; <tt>sendrecv </tt>realisiert.
1010Ebenso
1011werden
1012die Transponierungen xz, yz, zx&nbsp; und zy eingespart (es wird
1013aber
1014weiter
1015umsortiert).&nbsp; </p> <p>Im Fall von
10163D-Plotausgaben Aufruf von ftpcopy-Script durch
1017batch_scp-Script
1018ersetzt (dient der Ermittelung von Dateizyklusnummern als Information
1019f&uuml;r
1020die AVS-fld-Datei).&nbsp; </p> <p>Bei fehlerhafter
1021Er&ouml;ffnung einer CPU_MEASURES-Datei
1022werden erneute
1023Er&ouml;ffnungsversuche durchgef&uuml;hrt.</p> </td>
1024<td>advec_particles, check_open, check_parameters,
1025exchange_horiz, flow_statistics,
1026header, init_particles, modules, package_parin, parin, plot_2d,
1027plot_3d,
1028prognostic_equations, read_var_list, transpose_xz, transpose_yz,
1029transpose_zx,
1030transpose_zy, write_var_list</td> </tr> <tr nosave="" valign="top"> <td nosave="">02/05/02</td>
1031<td>SR</td> <td>2.3e</td> <td>B</td>
1032<td>Wiedereinf&uuml;hrung der 3D-Felder f&uuml;r die
1033Zeitebene
1034t+dt, die
1035notwendig ist, damit in den Diffusionstermen bei Leapfrog-Zeitschritten
1036mit der korrekten Zeitebene t-dt gearbeitet wird. Seit Version 2.2
1037wurde
1038f&auml;lschlicherweise die Zeitebene t+dt verwendet. Asselin-Filter
1039ist
1040jetzt wieder eigenst&auml;ndiges Unterprogramm. <br>
1041Die Wiedereinf&uuml;hrung dieser dritten Zeitebene ist auch
1042Voraussetzung
1043f&uuml;r die in der n&auml;chsten Version geplante skalare
1044Optimierung.&nbsp; <p>Fehler bei Berechnung von
1045Ausgabezeitpunkten eliminiert (trat
1046auf, wenn
1047bei Fortsetzungsl&auml;ufen von Ausgabeabst&auml;nden 0.0 auf
1048von Null
1049verschiedene Werte gewechselt werden sollte).&nbsp; </p> <p><b>Achtung:</b>
1050Der Inhalt der Testergebnis-Datei &auml;ndert
1051sich durch
1052diese Fehlerkorrektur.</p> </td> <td>init_3d_model,
1053leap_frog, modules, prognostic_equations,
1054swap_timelevel&nbsp; <p><b>Neu:</b> <br>
1055asselin_filter</p> </td> </tr> <tr nosave="" valign="top"> <td>02/05/02</td> <td>SR</td>
1056<td>2.3e</td> <td>N/C</td> <td>Kleinere
1057Anpassungen an IBM-Regatta-Systeme in
1058check_parameters, cpu_log.&nbsp; <p>Modul singleton in
1059eigenst&auml;ndige Datei
1060&uuml;berf&uuml;hrt.&nbsp; </p> <p>Global_min_max
1061arbeitet mit REAL*4, um Komplikationen auf
106232-bit-Rechnern
1063zu vermeiden (Datentyp MPI_2REAL m&uuml;sste dort sonst auf
1064MPI_2DOUBLE_PRECISION
1065ge&auml;ndert werden). <br>
1066Horizontale Geschwindigkeitskomponenten f&uuml;r Partikeladvektion
1067werden exakt zwischen den jeweils benachbarten horizontalen
1068Gitterfl&auml;chen
1069interpoliert.</p> </td> <td nosave="">advec_particles,
1070check_parameters, cpu_log,
1071global_min_max,
1072modules&nbsp; <p><b>Neu:</b> <br>
1073singleton</p> </td> </tr> <tr nosave="" valign="top"> <td nosave="">11/06/02</td>
1074<td>SR</td> <td>2.4</td> <td>N/C</td>
1075<td>Optimierung und Anpassungen f&uuml;r einzelne Knoten der
1076IBM-Regatta-Systeme. <p><b>Skalare (Cache) Optimierung:</b>
1077Tendenzterme werden
1078innerhalb einer
1079gro&szlig;en (i,j)-Schleife berechnet, die nun jeweils die gesamte
1080prognostische
1081Gleichung umfasst. Schleifenindices i und j werden an die
1082Tendenzunterprogramme
1083als Argumente &uuml;bergeben. Die Tendenzunterprogramme sind als
1084Module
1085geschrieben, die mittels Technik der &uuml;berladenen Funktionen
1086auch
1087ohne
1088diese Indices i und j aufgerufen werden k&ouml;nnen, und dann wie
1089in
1090fr&uuml;heren
1091Versionen funktionieren (d.h. in ihnen laufen die Schleifen
1092&uuml;ber
1093alle
10943 Dimensionen). Solche Teile der prognostischen Gleichungen, die
1095globale
1096Kommunikation beinhalten, sind vor die (i,j)-Schleife gezogen. Falls
1097ausschlie&szlig;lich
1098mit Piascek-Williams-Advektion gearbeitet wird, werden alle
1099prognostischen
1100Gleichungen in einer einzigen (i,j)-Schleife gerechnet. </p> <p><b>Kommunikationsoptimierung:</b>
1101Zus&auml;tzliche
1102Implementierung einer
11031D-Gebietszerlegung in x-Richtung. Mit dem neuen direkten
1104Druckl&ouml;ser
1105(poisfft_hybrid) werden dadurch 4 von 6 notwendigen Transpositionen
1106eingespart.
1107Die 1D-Zerlegung wird automatisch bei Verwendung dieses neuen
1108L&ouml;sers
1109aktiviert. Austausch von Geisterr&auml;ndern in y-Richtung wird bei
1110dieser
11111D-Zerlegung durch einfache zyklische Randbedingungen ersetzt. </p>
1112<p><b>Kleinere Anpassungen:</b> String-Vergleiche
1113erfordern beim
1114IBM-Compiler
1115in der Regel den Einsatz der TRIM-Funktion, um
1116&uuml;bersch&uuml;ssige
1117Blanks am Ende des Strings abzuschneiden (sonst liefert der Vergleich
1118.F.). <br>
1119Lokal allokierte Felder t.w. in sogenannte automatische Felder
1120umgewandelt
1121(g&uuml;nstiger, um Gefahr von eventuellen Speicherlecks zu
1122vermeiden).
1123Einige Feldoperationen wurden wegen schlechter Performance auf der IBM
1124entfernt (s. pres). </p> <p><b>Achtung: </b>Die
1125&Uuml;bersetzung des Modells erfordert
1126aufgrund
1127der Vielzahl nunmehr eingesetzter Module die Verwendung des
1128make-Mechanismus,
1129um die korrekte Reihenfolge bei der &Uuml;bersetzung der
1130Programmteile
1131zu gew&auml;hrleisten. Die Beschreibung dieser
1132Abh&auml;ngigkeiten
1133erfolgt
1134in der Datei<tt> Makefile</tt>, die zusammen mit den
1135Programmdateien
1136abgelegt
1137ist und ebenfalls unter RCS-Verwaltung steht. </p> <p>Im
1138User-Interface ist das Unterprogramm<tt> user_actions </tt>nun
1139ebenfalls
1140als Modul geschrieben und bedient sich der Methode der
1141&uuml;berladenen
1142Funktionen. Existierende benutzereigene Software muss entsprechend
1143angepasst
1144werden.</p> </td> <td>advec_s_pw, advec_s_up,
1145advec_u_pw, advec_u_up, advec_v_pw,
1146advec_v_up,
1147advec_w_pw, advec_w_up, buoyancy, calc_precipitation, calc_radiation,
1148calc_spectra,
1149check_parameters, coriolis, diffusion_e, diffusion_s, diffusion_u,
1150diffusion_v,
1151diffusion_w, diffusivities, exchange_horiz, exchange_horiz_2d,
1152global_min_max,
1153header, impact_of_latent_heat, init_pegrid, leap_frog, modules,
1154plot_2d,
1155plot_3d, plot_spectra, poisfft, pres, production_e,
1156prognostic_equations,
1157user_interface, <p><b>Neu:</b> <br>
1158fft_for_1d_decomp, Makefile, poisfft_hybrid,&nbsp;</p> </td>
1159</tr> <tr nosave="" valign="top"> <td nosave="">11/06/02</td> <td>SR</td> <td>2.4</td>
1160<td>B</td> <td>Fehlende Variablenvereinbarung in <tt>advec_particles</tt>
1161erg&auml;nzt.</td> <td>advec_particles</td> </tr>
1162<tr> <td valign="top">12/09/02</td> <td valign="top">SR</td> <td valign="top">2.4a</td>
1163<td valign="top">N</td> <td valign="top">Partikel
1164k&ouml;nnen mit Tr&auml;gheit versehen
1165werden und
1166einen Dichteunterschied zum umgebenden Fluid haben. Zur Steuerung dient
1167der neue Paketparameter <tt>density_ratio</tt>.</td>
1168<td valign="top">advec_particles, header, init_particles,
1169modules, package_parin</td> </tr> <tr> <td valign="top">12/09/02</td> <td valign="top">SR</td>
1170<td valign="top">2.4a</td> <td valign="top">B</td>
1171<td valign="top">Fehler in Berechnung der Anfangsprofile
1172von pt
1173und q entfernt
1174(obere Feldgrenze von 10 konnte in <tt>pt_vertical_gradient_level_ind</tt>
1175&uuml;berschritten werden). Fehler f&uuml;hrte unter
1176Umst&auml;nden zu
1177"segmentation fault" bei Verwendung sehr gro&szlig;er
1178Gitterpunktzahlen
1179in z-Richtung. <p>Fehler in Berechnung der v-Komponente am
1180unteren Rand
1181entfernt, die
1182f&uuml;r den Scherungsproduktionsterm der TKE verwendet wird
1183(Variable
1184v_0). F&auml;lschlicherweise wurde zur Berechnung u(k=1) statt
1185v(k=1)
1186verwendet.</p> </td> <td valign="top">check_parameters,
1187modules, production_e</td> </tr> <tr> <td valign="top">19/12/02</td> <td valign="top">SR</td>
1188<td valign="top">2.5</td> <td valign="top">N</td>
1189<td valign="top">Restart times can be set by user with new
1190runtime (d3par)
1191parameters <tt>restart_time</tt> and <tt>dt_restart</tt>.
1192Run
1193description
1194header is written on file CONTINUE_RUN. Output of cpu statistics
1195changed
1196(PE results are now collected on PE0 in order to calculate mean cpu
1197statistics).
1198Output of warnings in the job protocol in case of negative measured
1199cpu-times.
1200Remaining cpu-time is also evaluated on IBM-Regatta.</td> <td valign="top">cpu_log, cpu_statistics,
1201check_parameters,header, leap_frog,
1202local_tremain, local_tremain_ini, modules,&nbsp; palm,&nbsp; <p><b>new:</b>
1203<br>
1204check_for_restart </p> <p><b>deleted:</b> <br>
1205check_cpu_time</p> </td> </tr> <tr> <td valign="top">&nbsp;<br> </td> <td valign="top">&nbsp;<br> </td> <td valign="top">&nbsp;<br> </td> <td valign="top">C</td> <td valign="top">Unit
120614 (BINOUT) must be opened using a special
1207process
1208id string, because on IBM, the PE rank differs between communicators
1209MPI_COMM_WORLD
1210and comm_2d. This leads to a mismatch between filename-PE-number and
1211PE-number
1212written on file. As the consequence, these files could not be read by
1213restart-jobs.
1214Reading of array <tt>hom</tt> moved from <tt>init_3d_model
1215</tt>to <tt>read_var_list</tt>
1216(binary version number incremented to 2.2). <p><b>Further
1217optimization for IBM-Regatta-systems:</b> <br>
1218Additional optimization of the hybrid-solver for multinode usage
1219(overlapping
1220of communication and computation). </p> <p>Further cache
1221optimization by using strides and joining loops (<tt>hybrid_solver,
1222pres</tt> and <tt>timestep</tt>). Joining of
1223MPI_ALLREDUCE calls in
1224timestep. </p> <p>In case of 1d-decomposition along x
1225only a part of the
1226integral divisor
1227conditions is checked, on IBM hosts a 1d-decomposition along x is the
1228default,
1229a switch from Poisson-FFT-solver to the hybrid-solver is made in case
1230of
12311d-decomposition along x, the hybrid-solver does not force a
12321d-decomposition
1233any more. </p> <p>Array notation changed to do-loop
1234constructs due to better
1235performance. </p> <p>Cyclic boundary conditions along <tt>y</tt>
1236used instead of
1237sendrecv
1238in case of a 1d-decomposition along <tt>x</tt>. SENDRECV
1239replaced by
1240nonblocking
1241routines ISEND and IRECV in <tt>exchange_horiz.f90</tt>. </p>
1242<p>Speed optimization by removing MINVAL/MAXVAL calls and by
1243handling <br>
1244the "abs" case in a different way than the min/max cases (routine <tt>global_min_max</tt>).</p>
1245</td> <td valign="top">asselin_filter, check_open,
1246exchange_horiz,
1247global_min_max,
1248init_3d_model, init_pegrid, parin, poisfft_hybrid, read_var_list,
1249timestep,
1250write_3d_binary, write_var_list</td> </tr> <tr> <td valign="top"><br> </td> <td valign="top"><br>
1251</td> <td valign="top"><br> </td> <td valign="top">B</td> <td valign="top">Correction
1252of mixing length term (l(k)/ll(k)).
1253The condition
1254kh=3*km in the unstable case is now also exactly met in the wall
1255adjustment
1256region. Factor 0.7 in wall adjustment part replaced by variable <tt>wall_adjustment_factor</tt>,
1257which is set to 1.8 in <tt>modules.f90</tt>. The factor
12580.7 was the
1259possible
1260reason for 2-delta-x-waves, which were observed since version 2.1d. <p>Calculation
1261of deformation tensor re-designed (<tt>production_e</tt>). </p>
1262<p>STOP statements replaced by call of new subroutine <tt>local_stop,
1263</tt>where
1264MPI_FINALIZE is called before STOP in case of a parallel environment. </p>
1265<p>ISO2D parameter dp set to true for ibm hosts. </p> <p>tend=p
1266added in <tt>pres</tt> after calling sor method.</p>
1267</td> <td valign="top">advec_s_bc, buoyancy,
1268check_open,
1269check_parameters, close_file,
1270coriolis, diffusion_e, diffusivities, fft_for_1d_decomp,
1271flow_statistics,
1272init_3d_model, init_dvrp, init_grid, init_particles, init_pegrid,
1273parin,
1274plot_2d, poisfft, pres, read_var_list, user_interface,&nbsp; <p><b>new:</b>
1275<br>
1276local_stop, production_e</p> </td> </tr> <tr>
1277<td valign="top">03/03/03</td> <td valign="top">SR</td>
1278<td valign="top">2.5a</td> <td valign="top">N</td>
1279<td valign="top">Particle velocities are also stored in
1280array
1281particles in
1282case of zero density ratio. Steering of variables by dvrp browser
1283included.</td> <td valign="top">advec_particles,
1284init_dvrp, modules,</td> </tr> <tr> <td valign="top"><br> </td> <td valign="top"><br>
1285</td> <td valign="top"><br> </td> <td valign="top">C</td> <td valign="top">AVS
1286data format changed from float to xdr_float
1287(needed
1288on linux machines <br>
1289due to the little/big endian problem). Updates for new version of dvrp
1290software (e.g. using module dvrp is now mandatory).</td> <td valign="top">close_file, init_dvrp, leap_frog, plot_dvrp</td>
1291</tr> <tr> <td valign="top"><br> </td>
1292<td valign="top"><br> </td> <td valign="top"><br> </td> <td valign="top">B</td>
1293<td valign="top">Error in particle inertia part removed
1294(exp_arg
1295must not
1296contain the timestep). <br>
1297Error in calculation of the vertical flux of resolved scale energy
1298(profile 57) removed. Displacement for integers in mpi_particle_type
1299reduced
1300from 16 to 8 on ibm.</td> <td valign="top">advec_particles,
1301flow_statistics, init_particles</td> </tr> <tr> <td valign="top">12/03/03</td> <td valign="top">SR</td>
1302<td valign="top">2.6</td> <td valign="top">N</td>
1303<td valign="top"><b>Version optimized for NEC-SX6
1304parallel-vector
1305machines.&nbsp;</b> <p>There are two main changes. A
1306new vectorizable routine <tt>prognostic_equations_vec</tt>
1307is added, where cache optimizations are undone. The tendency
1308subroutines
1309called by <tt>prognostic_equations_vec</tt> contain the
1310full 3d-loops
1311(compared
1312with the cache-optimized versions where only loops over k are carried
1313out).
1314Additionally, a new pressure solver <tt>poisfft_hybrid_vec</tt>
1315is
1316added,
1317which requires a 1d-domain-decomposition (like poisfft_hybrid). In this
1318solver, a very fast FFT from Clive Temperton (ECMWF) is&nbsp;
1319optionally
1320available by choosing <tt>fft_method </tt>= <i>'temperton-algorithm'</i>.&nbsp;
1321</p> <p>Additional changes in <tt>flow_statistics</tt>
1322to allow
1323better vectorization. </p> <p>Small changes in routines <tt>diffusivities</tt>
1324and <tt>pres</tt>
1325which
1326caused run time errors on IBM and NEC due to compiler problems. </p>
1327<p>Reading of environment variable <tt>tasks_per_node</tt>
1328moved
1329from routine <tt>poisfft_hybrid</tt>
1330to routine <tt>parin</tt>. </p> <p><b>Changes
1331in makefile:</b> modules and user_interface now
1332depend on
1333the f90 files, dependency of singleton added, LDFLAGS moved to the end
1334of PROG rule, temperton_fft added.</p> </td> <td valign="top">advec_s_pw, advec_s_up, advec_u_pw, advec_u_up,
1335advec_v_pw,
1336advec_v_up, advec_w_pw, advec_w_up, buoyancy, calc_precipitation,
1337calc_radiation,
1338check_parameters, coriolis, cpu_log, diffusion_e, diffusion_s,
1339diffusion_u,
1340diffusion_v, diffusion_w, diffusivities, fft_for_1d_decomp, header,
1341impact_of_latent_heat,
1342init_pegrid, leap_frog, local_tremain, modules, parin, poisfft,
1343poisfft_hybrid,
1344pres, production_e, prognostic_equations, user_interface <p><b>new:</b>
1345<br>
1346temperton_fft</p> </td> </tr> <tr> <td valign="top"><br> </td> <td valign="top"><br>
1347</td> <td valign="top"><br> </td> <td valign="top">B</td> <td valign="top">tend=p
1348added in routine <tt>pres</tt> after
1349calling sor
1350method.</td> <td valign="top">pres</td> </tr>
1351<tr> <td valign="top">14/03/03</td> <td valign="top">SR</td> <td valign="top">2.6a</td>
1352<td valign="top">N</td> <td valign="top">Additional
1353vector optimization for NEC-SX6. <p>Optional system-specific
1354random number generator available
1355(for equal
1356distributed numbers). </p> <p>Define strings in all
1357relevant subroutines changed from&nbsp; </p> <p><tt>&nbsp;&nbsp;&nbsp;&nbsp;
1358#if defined( define_string )</tt> </p> <p>to </p>
1359<p><tt>&nbsp;&nbsp;&nbsp;&nbsp; #if
1360defined( __define_string )</tt> </p> <p><b>Caution:
1361</b>The relevant subroutines are NOT listed in
1362the right
1363column!</p> </td> <td valign="top">asselin_filter,
1364check_parameters, diffusion_e,
1365diffusivities,
1366disturb_field, global_min_max, header, local_tremain, modules, parin,
1367poisfft_hybrid,
1368pres, read_var_list, write_var_list</td> </tr> <tr>
1369<td valign="top"><br> </td> <td valign="top"><br> </td> <td valign="top"><br>
1370</td> <td valign="top">B</td> <td valign="top">Error in particle boundary condition removed
1371(velocity must
1372be inverted in case of reflection)</td> <td valign="top">advec_particles</td>
1373</tr> <tr> <td valign="top">16/04/03</td>
1374<td valign="top">SR</td> <td valign="top">2.6b</td>
1375<td valign="top">N</td> <td valign="top">Time
1376series output of Monin Obukhov length. <p>Temperton fft can now
1377be used for all hosts and every domain
1378decomposition.
1379Abort in case of Temperton fft, if number of gridpoints along x and/or
1380y contain illegal factors.&nbsp; </p> <p>Index values
1381for the extrema found in global_min_max are
1382limited to
1383the range 0..nx, 0..ny (on IBM machines -1 and nx+1/ny+1 occured which
1384produced different RUN_CONTROL output compared to other machines). </p>
1385<p>Output format of iteration count in routine run_control
1386enlarged.</p> </td> <td valign="top">check_parameters,
1387fft_for_1d_decomp,
1388global_min_max, init_pegrid,
1389modules, plot_ts, poisfft, run_control, temperton_fft</td> </tr>
1390<tr> <td valign="top"><br> </td> <td valign="top"><br> </td> <td valign="top"><br>
1391</td> <td valign="top">B</td> <td valign="top">Additional checks of variables <tt>hybrid_solver</tt>
1392and <tt>host</tt>
1393(<tt>hybrid_solver</tt> must not be used for a
13942d-domain-decomposition, <tt>host</tt>
1395should be set by setting environment variable <tt>localhost</tt>).
1396<p>Header output for mixing length limitations revised.</p>
1397</td> <td valign="top">check_parameters, header</td>
1398</tr> <tr> <td valign="top">09/05/03</td>
1399<td valign="top">SR</td> <td valign="top">2.7</td>
1400<td valign="top">N</td> <td valign="top"><b>Version
1401running on Linux Clusters using MPICH
1402and Intel
1403FORTRAN compiler (ifc)</b> <p>So far, only absolutely
1404neccessary changes have been done
1405(possible
1406optimizations will follow in a later version): </p> <p>New
1407time measurements for Linux (ifc) environment added. </p> <p>Some
1408parameters in MPI calls had to be modified (arrays had to
1409be replaced
1410by the first element of the regarding array) in order to fulfill f90
1411type
1412and rank requirements, since on the MUK-cluster a FORTRAN90-version of
1413MPI is used. This also required to replace "mpif.h" by using a special
1414module (named <tt>mpi</tt>).&nbsp; I did not find out
1415how character
1416strings
1417can be send with MPI. Therefore, these strings are transformed to
1418integers,
1419before they are send, and transformed back to characters on the
1420receiving
1421PE. </p> <p>On the MUK-cluster, only PE0 is able to read
1422the values of
1423environment
1424variables. Therefore, these values are communicated via broadcast to
1425the
1426other PEs. </p> <p>1d-decomposition is set as the default
1427on Linux Clusters.
1428Character
1429strings have to be transformed to integer </p> <p>Smaller
1430changes: </p> <p>Batch_scp paths for IBM, NEC and Linux
1431added</p> </td> <td valign="top">check_open,
1432cpu_log, flow_statistics,
1433init_pegrid, local_getenv,
1434modules, palm, poisfft_hybrid</td> </tr> <tr> <td valign="top"><br> </td> <td valign="top"><br>
1435</td> <td valign="top"><br> </td> <td valign="top">B</td> <td valign="top">Measurements
1436on IBM are now using function <tt>irtc</tt>,
1437which allows correct measurements for jobs running over the 24:00
1438timeline.</td> <td valign="top">cpu_log,
1439local_tremain, local_tremain_ini</td> </tr> <tr> <td valign="top">01/08/03</td> <td valign="top">SR</td>
1440<td valign="top">2.7a</td> <td valign="top">B</td>
1441<td valign="top">Check that the number processors is also
1442an
1443integral divisor
1444of the number&nbsp; of gridpoints along y in case of a
14451d-decomposition
1446along x. <p>Error concerning the multinode-version of
1447poisfft_hybrid
1448removed. It
1449was caused by the Linux changes of version 2.7 and led to program abort
1450due to MPI errors in <tt>MPI_ALLTOALL</tt>. </p> <p>No
1451abort on t3e-systems if system specific routines are used. </p> <p>Array<tt>
1452sums </tt>is initialized in<tt> init_3d_model </tt>before
1453the first call of<tt> pres</tt>. Call of<tt>
1454init_cloud_physics </tt>moved
1455before<tt> init_particles</tt>.</p> </td> <td valign="top">fft_1dd_init, init_3d_model, init_pegrid,
1456poisfft_hybrid</td> </tr> <tr> <td valign="top"><br>
1457</td> <td valign="top"><br> </td> <td valign="top"><br> </td> <td valign="top">N</td>
1458<td valign="top">Interactive steering of dvrp-graphic
1459features by
1460dvrp-browser
1461plugin extended (position of slicers, threshold values of isosurfaces)
1462. New dvrp_graphics package parameter<tt> slicer_range_limits_dvrp</tt>.</td>
1463<td valign="top">init_dvrp, modules, package_parin,
1464plot_dvrp</td> </tr> <tr> <td valign="top">29/10/03</td>
1465<td valign="top">SR</td> <td valign="top">2.7b</td>
1466<td valign="top">N</td> <td valign="top">In
1467the multigrid method, on a defined level,
1468data are gathered
1469on PE0 and further calculations are carried out only on this PE. New<tt>
1470d3par </tt>parameter <tt>mg_switch_to_pe0_level</tt>.
1471<p>Particle groups implemented. New data type<tt>
1472particle_groups_type </tt>and data type<tt> particle_type </tt>modified.
1473Version
1474numbers are
1475output on the particle files. New<tt> particles_par </tt>parameter<tt>
1476diameter</tt>. Parameter name<tt> uniform_psize</tt>
1477changed to<tt>
1478dvrp_psize</tt>.
1479Parameters<tt> density_ratio </tt>is now an array.</p>
1480</td> <td valign="top">advec_particles, check_open,
1481exchange_horiz,
1482header, init_particles,
1483init_pegrid, modules, package_parin, parin, poismg</td> </tr>
1484<tr> <td valign="top"><br> </td> <td valign="top"><br> </td> <td valign="top"><br>
1485</td> <td valign="top">C</td> <td valign="top">Random number generator from numerical recipes
1486is now rewritten
1487as a module. In restart runs the seed of this generator is set to the
1488last
1489values of the previous run in order to keep the sequence of the random
1490numbers. New binary version 2.2. <p>Buffer is flushed for file
1491RUN_CONTROL immediately after every
1492output
1493on IBM and Linux cluster.</p> </td> <td valign="top">advec_particles,
1494disturb_field, init_3d_model,
1495init_particles,
1496random_function, random_gauss, run_control, write_3d_binary</td> </tr>
1497<tr> <td valign="top"><br> </td> <td valign="top"><br> </td> <td valign="top"><br>
1498</td> <td valign="top">E</td> <td valign="top">In routine buoyance, horizontal mean
1499temperature
1500is now
1501taken from array hom instead of array sums (otherwise inconsistence in
1502case of using more than one statistical region). <p>Information
1503about the time of the last timestep change added
1504to the
1505restart file. </p> <p>System call of<tt> batch_scp </tt>on
1506IBM corrected.</p> </td> <td valign="top">buoyancy,
1507check_open, read_var_list,
1508write_var_list</td> </tr> <tr> <td style="vertical-align: top;">28/01/04</td> <td style="vertical-align: top;">SR</td> <td style="vertical-align: top;">2.8</td> <td style="vertical-align: top;">N</td> <td style="vertical-align: top;">Runge-Kutta schemes (2nd and
15093rd
1510order)
1511for time integration implemented. The third order scheme is the new
1512default.
1513It allows the timestep to be 0.9*CFL, which is much larger than for the
1514former default leapfrog scheme.&nbsp; The intermediate steps, which
1515are
1516part of these schemes, are realized by an additional loop within routine<span style="font-family: monospace;">
1517time_integration&nbsp;</span>(currently<span style="font-family: monospace;">
1518leap_frog</span>, but this routine will be renamed soon).
1519Steering
1520variables<span style="font-family: monospace;">
1521at&nbsp;</span>and<span style="font-family: monospace;">
1522bt&nbsp;</span>have
1523been replaced by array<span style="font-family: monospace;">
1524sct</span>.
1525, which is particularly used in the prognostic equations. Values of
1526this
1527steering array are calculated within the new routine<span style="font-family: monospace;">
1528timestep_scheme_steering</span>. <p>When using Runge-Kutta
1529schemes,&nbsp; the timestep increment
1530is freely
1531allowed to adjust after each timestep (the older schemes are using some
1532restrictions, see routine<span style="font-family: monospace;">
1533timestep</span>).
1534Also, routine<span style="font-family: monospace;">
1535run_control&nbsp;</span>is
1536not automatically called in case of timestep changes, when Runge-Kutta
1537schemes are switched on. </p> <p>The old leapfrog scheme
1538is still implemented and should
1539produce the
1540same results as in the previous version(s)! </p> <p>Depending
1541on the user experience, further adjustments to the
1542Runge-Kutta
1543schemes may be necessary within the next minor versions.&nbsp; </p>
1544<p><span style="font-weight: bold;">Attention:</span>
1545<br>
1546The content of the testresult-file (run control output) has
1547significantly
1548changed due to the new default timestep scheme!</p> </td> <td style="vertical-align: top;">check_parameters, header,
1549init_3d_model,
1550init_rankine, leap_frog, modules, prognostic_equations, read_var_list,
1551swap_timelevel, timestep, write_var_list <p><span style="font-weight: bold;">new:</span> <br>
1552timestep_scheme_steering</p> </td> </tr> <tr>
1553<td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">C</td> <td style="vertical-align: top;">Output of particle infos in
1554subroutine<span style="font-family: monospace;">
1555allocate_prt_memory&nbsp;</span>on demand only. <p>Type<span style="font-family: monospace;"> log&nbsp;</span>(used
1556for
1557cpu time measurements) changed to<span style="font-family: monospace;">
1558logpoint&nbsp;</span>due to name conflict with FORTRAN
1559intrinsic<span style="font-family: monospace;">
1560log.</span></p> </td> <td style="vertical-align: top;">advec_particles,
1561cpu_log,&nbsp;</td> </tr> <tr> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">E</td> <td style="vertical-align: top;">In case of opening unit 80, a
1562barrier
1563is set only for the first call of<span style="font-family: monospace;">
1564check_open&nbsp;</span>(from routine<span style="font-family: monospace;">
1565init_particles</span>), in order to avoid the possibility of
1566hanging
1567jobs,
1568which may occur if unit 80 is opened within routine<span style="font-family: monospace;">
1569allocate_prt_memory</span>.</td> <td style="vertical-align: top;">check_open</td> </tr>
1570<tr> <td style="vertical-align: top;">30/01/04</td>
1571<td style="vertical-align: top;">SR</td> <td style="vertical-align: top;">2.8a</td> <td style="vertical-align: top;">N</td> <td style="vertical-align: top;">In order to prepare the code
1572for
1573the simulation
1574of flow around buildings (to be realized in one of the next major
1575versions),
1576the lower<span style="font-family: monospace;"> k&nbsp;</span>index<span style="font-family: monospace;">
1577nzb&nbsp;</span>has been replaced by a two-dimensional array<span style="font-family: monospace;">
1578nzb_2d&nbsp;</span>in many of the three-dimensional loops. So
1579far, all
1580elements of this array are set to<span style="font-family: monospace;">
1581nzb</span>. <p>This change should not effect simulation
1582results and cpu time
1583in any
1584way.</p> </td> <td style="vertical-align: top;">advec_s_pw,
1585advec_s_up,
1586advec_u_pw, advec_u_up,
1587advec_v_pw, advec_v_up, advec_w_pw, advec_w_up, asselin_filter,
1588buoyancy,
1589calc_liquid_water_content, calc_precipitation, calc_radiation,
1590coriolis,
1591diffusion_e, diffusion_s, diffusion_u, diffusion_v, diffusion_w,
1592diffusivities,
1593impact_of_latent_heat, init_3d_model, modules, production_e,
1594prognostic_equations,&nbsp;</td> </tr> <tr> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">C</td> <td style="vertical-align: top;">Euler step informations are
1595removed in
1596the run control output in case of Runge-Kutta schemes. Also, the
1597timestep
1598increment limitation is removed for the Runge-Kutta schemes. <p><span style="font-weight: bold;">Attention:</span> <br>
1599The content of the testresult-file (run control output) has changed
1600due to this modification.</p> </td> <td style="vertical-align: top;">run_control, timestep</td>
1601</tr> <tr> <td style="vertical-align: top;"><br>
1602</td> <td style="vertical-align: top;"><br> </td>
1603<td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">E</td> <td style="vertical-align: top;">Velocity gradients at the
1604surface calculated
1605in routine production_e are now limited. In case of inhomogeneous
1606surface
1607heating small diffusivities (<span style="font-family: monospace;">km</span>)
1608sometimes caused very small timesteps due to this problem.</td> <td style="vertical-align: top;">production_e</td> </tr>
1609<tr> <td style="vertical-align: top;">30/04/04<br>
1610</td> <td style="vertical-align: top;">SR<br>
1611</td> <td style="vertical-align: top;">2.8b<br>
1612</td> <td style="vertical-align: top;">N<br> </td>
1613<td style="vertical-align: top;">The number of processors
1614along
1615the respective directions of the virtual processor grid must not be
1616integral divisors of the number of gridpoints along x, y or z any more.
1617In case that they are not integral divisors, the subdomains on the
1618processors at the upper borders of the virtual grid will contain less
1619gridpoints than the other subdomains (which are all of equal size).
1620Although this causes a load imbalance, only runs with very small
1621numbers of processors will feel a significant decrease of performance.
1622In order to be able to carry out the transpositions, array<span style="font-family: monospace;"> d </span>(and also
1623working array<span style="font-family: monospace;"> tend</span>)
1624have the same size on
1625all processors. This new feature is switched on by setting the
1626inipar-parameter<span style="font-family: monospace;">
1627grid_matching </span>= <span style="font-style: italic;">'match'</span>,
1628which is the
1629default now.<br> <br>
1630Routine<span style="font-family: monospace;"> poisfft </span>is
1631now
1632the
1633default for solving the Poisson-equation for the case of 2d- as well as
16341d-domain-decompositions and has been changed from a subroutine to a
1635module. This routine now includes most of the optimization from the
1636(Ketelsen) routine<span style="font-family: monospace;">
1637poisfft_hybrid </span>and additionally allows 1d-decompositions
1638along y.<br> <span style="font-weight: bold;">ATTENTION:</span>
1639Routine<span style="font-family: monospace;">
1640poisfft_hybrid </span>might still be
1641faster when running PALM on more than one node of the IBM-Regatta,
1642although the difference is not very big. The <span style="font-family: monospace;">poisfft</span>-code
1643for a
1644decomposition along y has still a poor performance and needs further
1645optimization.<br> <br>
1646The spectra-package is now able to use all the available FFT-methods
1647(selected by inipar-parameter<span style="font-family: monospace;">
1648fft_method </span>).
1649Performance of the transpositions needed for calculating the spectra
1650has been improved by using new direct transpositions from z to y and
1651from y to x instead of two subsequent transpositions.<br> <br>
1652Runge-Kutta scheme implemented in the 1d-version (<span style="font-family: monospace;">init_1d_model</span>).
1653Diffusion
1654quantity arrays are allocated for previous timelevels only in case of
1655leapfrog scheme.<br> <br>
1656This version is adapted for use on COMPAQ-DECALPHA systems (main
1657changes: calling of SHAPE function within subroutine arguments (e.g.<span style="font-family: monospace;"> singleton</span>)
1658causes compiler errors, particle data type modified for better
1659alignment, DATA statements from modules removed because they caused
1660internal compiler errors).<br> </td> <td style="vertical-align: top;">advec_s_ups, advec_u_ups,
1661advec_v_ups, advec_w_ups, calc_spectra, check_parameters, fft_xy,
1662header, init_1d_model, init_3d_model, init_particles, init_pegrid,
1663modules, parin, plot_2d, poisfft, prandtl_fluxes, pres, read_var_list,
1664singleton, spline_x, spline_y, spline_z, time_integration, transpose,
1665write_3d_binary, write_var_list<br> </td> </tr> <tr>
1666<td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">C<br> </td> <td style="vertical-align: top;">FFT routines renamed. Module<span style="font-family: monospace;"> fft_for_1d_decomp </span>renamed<span style="font-family: monospace;"> fft_xy</span>.
1667Subroutine<span style="font-family: monospace;"> leap_frog
1668</span>renamed<span style="font-family: monospace;">
1669time_integration</span>.<br> <br>
1670For all transpositions, MPI_ALLTOALL is used instead of MPI_ALLTOALLV.
1671The names of many transposition indices have been changed.<br> <br>
1672Inipar-parameter<span style="font-family: monospace;">
1673impulse_advec </span>renamed<span style="font-family: monospace;"> momentum_advec</span>.<br>
1674<br>
1675Reading of restart data is moved from<span style="font-family: monospace;"> init_3d_model </span>to
1676new routine <span style="font-family: monospace;">read_3d_binary</span>.<br>
1677<br>
1678All former transpose routines collected into one file.<br> </td>
1679<td style="vertical-align: top;">check_parameters,
1680flow_statistics, header, init_1d_model, init_3d_model, init_advec,
1681init_pegrid, palm, parin, poisfft, poisfft_hybrid, production_e,
1682prognostic_equations, read_var_list, sline_x, spline_y, write_var_list<span style="font-weight: bold;"><br> <br>
1683new:</span><br>
1684fft_xy, read_3d_binary, time_integration, transpose<br> <br>
1685<span style="font-weight: bold;">deleted:</span><br>
1686fft_for_1d_decomp, leap_frog, transpose_xy, transpose_xz, transpose_yx,
1687transpose_yz, transpose_zx, transpose_zy<br> </td> </tr>
1688<tr> <td style="vertical-align: top;"><br> </td>
1689<td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">E<br> </td> <td style="vertical-align: top;">Small errors in the
1690particle-package removed, which sometimes caused aborts of restart runs
1691on IBM.<br> <br>
1692Small error in calculating the time series profiles removed (array
1693bounds of some arrays needed for profil-output had to be increased).<br>
1694<br>
1695Function fft (singleton method) replaced by subroutine fftn due to
1696problems with 64-bit mode on IBM<br> </td> <td style="vertical-align: top;">advec_particles,
1697check_parameters, <br> </td> </tr> <tr> <td style="vertical-align: top;">26/03/05<br> </td>
1698<td style="vertical-align: top;">SR<br> </td>
1699<td style="vertical-align: top;">2.9<br> </td>
1700<td style="vertical-align: top;">N<br> </td> <td style="vertical-align: top;">Non-cyclic lateral boundary
1701conditions implemented.<br>
1702Dirichlet/Neumann conditions at the inflow/outflow can be used either
1703along x or along y. Cyclic conditions have to be used along the
1704remaining direction. In case of non-cyclic conditions along x (y), the
1705upper bound nxl (nyn) of array u (v) is enlarged by one gridpoint on
1706the rightmost (northest) processor. These array index informations are
1707passed to routine<span style="font-family: monospace;">
1708exchange_horiz </span>and<span style="font-family: monospace;">
1709disturb_field </span>by two
1710additional arguments. Boundary conditions are set with new
1711inipar-parameters<span style="font-family: monospace;">
1712bc_lr </span>and<span style="font-family: monospace;">
1713bc_ns</span>. A damping layer is
1714needed at the outflow in order to damp reflections (see new parameters<span style="font-family: monospace;"> km_damp_max </span>and<span style="font-family: monospace;"> outflow_damping_width</span>)
1715and an
1716additional disturbance is imposed near the inflow (see new parameters<span style="font-family: monospace;">&nbsp;
1717inflow_disturbance_begin </span>and<span style="font-family: monospace;"> inflow_disturbance_end</span>).
1718Non-cyclic conditions require the use of the multigrid-method for
1719solving the Poisson equation. Argument<span style="font-family: monospace;"> range </span>added
1720to routine<span style="font-family: monospace;">
1721boundary_conds </span>(where the
1722non-cyclic conditions are set). <br> <br>
1723Minor changes:<br>
1724Output of parameter<span style="font-family: monospace;">
1725datform </span>on
1726&amp;GLOBAL-Namelist (iso2d). This is set to <span style="font-style: italic;">'big_endian'</span> on
1727IBM- and
1728NEC-machines.<br> <br>
1729Number of particle groups are additionally calculated in<span style="font-family: monospace;"> header </span>(formerly
1730unknown).<br> </td> <td style="vertical-align: top;">advec_u_pw,
1731advec_u_up, advec_v_pw, advec_v_up, boundary_conds,
1732calc_liquid_water_content, check_parameters, close_file, coriolis,
1733diffusion_u, diffusion_v, diffusion_w, diffusivities, disturb_field,
1734exchange_horiz, header, init_3d_model, init_pegrid, init_pt_anomaly,
1735init_rankine, modules, parin, poismg, pres, prognostic_equations,
1736read_var_list, sor, time_integration, timestep, write_var_list<br>
1737</td> </tr> <tr> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">C<br> </td> <td style="vertical-align: top;"><span style="font-family: monospace;">pres </span>is called
1738by default only
1739at the last Runge-Kutta-substep, which spares a big amount of CPU-time
1740(see also new parameter<span style="font-family: monospace;">
1741call_psolver_at_all_substeps</span>). No pressure term in the
1742momentum
1743equations in case of Runge-Kutta-schemes.<br> <span style="font-weight: bold;">Attention:</span> <br>
1744The content of the testresult-file (run control output) has changed
1745due to this modification.<br> <br>
1746Program speedup by removing the exchange of ghost points in routines <span style="font-family: monospace;">calc_liquid_water_content</span>,
1747<span style="font-family: monospace;">diffusivities</span>,
1748.<br> <br>
1749Default value for residual limit increased from 1E-6 to 1E-4. Routine<span style="font-family: monospace;"> prolong </span>in<span style="font-family: monospace;"> poismg </span>simplified
1750(one call of<span style="font-family: monospace;">
1751exchange_horiz </span>spared).<br> </td> <td style="vertical-align: top;">calc_liquid_water_content,
1752diffusivities, modules, poismg, pres, time_integration,
1753timestep_scheme_steering<br> </td> </tr> <tr>
1754<td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">E<br> </td> <td style="vertical-align: top;">Calculation of vertical
1755particle
1756velocity (with inertia) corrected, exp_arg had a wrong sign.<br> <br>
1757(e)**1.5 replaced by e*SQRT(e) in init_1d_model because of wrong
1758results on NEC machines (as a side effect, the new calculation is much
1759faster).<br> <br>
1760Two errors concerning switch to PE0 (multigrid method) removed from<span style="font-family: monospace;"> init_pegrid</span>.<br>
1761<br>
1762Two errors in<span style="font-family: monospace;">
1763plot_2d </span>removed:
1764local_2d is allocated with upper bound<span style="font-family: monospace;"> nzt</span> (former<span style="font-family: monospace;"> nzt+1 </span>was
1765wrong), additional barrier in case that PE0 gathers data from the other
1766PEs, this barrier had to be set at the end of the gathering because
1767otherwise PE0 sometimes received wrong data on tag 0.<br> <br>
1768Use of module indices removed from routine<span style="font-family: monospace;"> split_1dd </span>in<span style="font-family: monospace;"> poisfft </span>since
1769it caused
1770errors in case of<span style="font-family: monospace;"> nx
1771/= ny </span>and
1772a 1D-decomposition along y.<br> <br>
1773Wrong re-definition of dx2 and dy2 in<span style="font-family: monospace;"> sor </span>removed.<br>
1774</td> <td style="vertical-align: top;">advec_particles,
1775init_1d_model,
1776init_pegrid, plot_2d, poisfft, sor<br> </td> </tr> <tr>
1777<td style="vertical-align: top;">23/04/05<br> </td>
1778<td style="vertical-align: top;">SR<br> </td>
1779<td style="vertical-align: top;">2.9a<br> </td>
1780<td style="vertical-align: top;">C<br> </td> <td style="vertical-align: top;">Additional check for
1781incompatibilities between non-cyclic lateral boundary conditions and
1782other schemes.<br> <br>
1783fcl_factor renamed cfl_factor.<br> <br>
1784New local array sums_ll declared in flow_statistics instead of
1785temporarily using sums_l.<br> <br>
1786crmax (maximum number of crosses allowed in a plot of vertical
1787profiles) increased from 20 to 100.<br> </td> <td style="vertical-align: top;">calc_spectra, check_parameters,
1788flow_statistics, header, modules, parin, timestep<br> </td>
1789</tr> <tr> <td style="vertical-align: top;"><br>
1790</td> <td style="vertical-align: top;"><br> </td>
1791<td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">E<br> </td> <td style="vertical-align: top;">Revised calculation of output
1792time counters regarding a possible decrease of the output time interval
1793in case of restart runs.<br> <br>
1794Error removed in Dirichlet bottom boundary conditions for pt and q in
1795case of Runge-Kutta schemes.<br> <br> <span style="font-weight: bold;">batch_scp</span> calls
1796(needed
1797for determining correct filenames for AVS-fld-files) is given the
1798remote username as an additional argument.<br> <br>
1799Default setting of outflow_damping_width corrected.<br> <br>
1800Initial horizontal velocities at the lowest grid levels in the 1d-model
1801are set to a very small value in order to avoid wrong results and the
1802resulting too small timesteps.<br> <br>
1803Implicit counters i renamed i9 in modules due to declaration conflicts
1804with i in other subroutines (reported by Portland compiler).<br> </td>
1805<td style="vertical-align: top;">advec_particles,
1806boundary_conds,
1807check_open, check_parameters, init_1d_model, modules, time_integration<br>
1808</td> </tr> <tr> <td style="vertical-align: top;">18/05/05<br> </td>
1809<td style="vertical-align: top;">SR<br> </td>
1810<td style="vertical-align: top;">2.10<br> </td>
1811<td style="vertical-align: top;">N<br> </td> <td style="vertical-align: top;">NetCDF support implemented.<br>
1812Profiles, time series, spectra, cross-sections, 3d-volume-data and
1813particle data can now be output in NetCDF format (file handles
1814101-108). This output can be switched on with the new d3par-parameter <span style="font-family: monospace;">data_output_format</span>.
1815So far, this support is available on IBM systems at HLRN and on the NEC
1816system at DKRZ. Output in format suitable for graphic software <span style="font-weight: bold;">profil</span>, <span style="font-weight: bold;">iso2d</span> and <span style="font-weight: bold;">avs</span> is still
1817possible.<br> <br>
1818Output of cross sections for qv, vpt and lwp (liquid water path).<br>
1819</td> <td style="vertical-align: top;">advec_particles,
1820check_open,
1821check_parameters, close_file, header, modules, parin, plot_1d, plot_2d,
1822plot_3d, plot_spectra, plot_ts, read_var_list, write_var_list<br>
1823<br> <span style="font-weight: bold;">new:</span><br>
1824netcdf<br> </td> </tr> <tr> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">C<br> </td> <td style="vertical-align: top;">In <span style="font-family: monospace;">calc_spectra</span>, n
1825is assigned the
1826number of spectra (formerly, the number of spectra was given by n-1)<br>
1827<br>
1828Abort if <span style="font-family: monospace;">poisfft_hybrid</span>
1829is called in a non-parallel environment.<br> <br>
1830Default values of spectra package parameters <span style="font-family: monospace;">pl_spectra</span> and <span style="font-family: monospace;">spectra_direction</span>
1831changed.<br> </td> <td style="vertical-align: top;">calc_spectra,
1832check_parameters,
1833modules, pres, read_3d_binary, write_3d_binary<br> </td> </tr>
1834<tr> <td style="vertical-align: top;"><br> </td>
1835<td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">E<br> </td> <td style="vertical-align: top;">Missing argument in ffty
1836(non-parallel case) added.<br> <br>
1837Error in output of particle inertia information removed.<br> </td>
1838<td style="vertical-align: top;">poisfft, header<br>
1839</td> </tr> <tr> <td style="vertical-align: top;">05/07/05<br> </td>
1840<td style="vertical-align: top;">SR<br> </td>
1841<td style="vertical-align: top;">2.11<br> </td>
1842<td style="vertical-align: top;">N/C<br> </td>
1843<td style="vertical-align: top;">New cloud physics code
1844implemented, which explicitly simulates single cloud droplets,
1845including droplet growth by condensation and collision. Using this code
1846requires to set the new inipar-parameter <span style="font-family: monospace;">cloud_droplets</span>
1847= .TRUE. and to use the particle package (by using the <span style="font-weight: bold;">mrun</span>-option <span style="font-family: monospace;">-p particles</span>).
1848Coupling between droplets and the thermodynamic quantities (potential
1849temperature and specific humidity) is regarded in the new subroutine <span style="font-family: monospace;">interaction_droplets_ptq</span>.
1850The real number of droplets in a grid cell can steered by the new
1851inipar-parameter <span style="font-family: monospace;">initial_weighting_factor</span>.<br>
1852<br> <span style="font-weight: bold;">This code
1853will be further extended and probably changed in the near future, so
1854the current status is that of a test version!</span><br> <br>
1855In connection with this new code implementation, several changes has
1856been made to the existing code:<br> <br>
1857The particle (droplet) size is now given as radius (previously
1858diameter). E.g., the name of the respective package parameter <span style="font-family: monospace;">diameter</span> has
1859changed to <span style="font-family: monospace;">radius</span>.<br>
1860<br>
1861The current weighting_factor and radius are stored as additional
1862particle attributes in the type structure <span style="font-family: monospace;">particle_type</span>.
1863The MPI data type <span style="font-family: monospace;">mpi_particle_type</span>,
1864needed for exchanging particles between subdomains, has been changed
1865correspondingly.<br> <br> <span style="font-family: monospace;">gas_constant</span> is
1866renamed <span style="font-family: monospace;">r_d</span>,
1867<span style="font-family: monospace;">latent_heat</span>
1868is renamed <span style="font-family: monospace;">r_v</span>,
1869the allowed string length of <span style="font-family: monospace;">pl2d</span>
1870and <span style="font-family: monospace;">pl3d</span>
1871is increased from 6 to 10.<br> <br>
1872New 3d arrays <span style="font-family: monospace;">ql_1</span>,
1873<span style="font-family: monospace;">ql_2</span>, <span style="font-family: monospace;">ql_v</span> and <span style="font-family: monospace;">ql_vp</span>, <span style="font-family: monospace;">ql</span> is now a
1874pointer, new pointer <span style="font-family: monospace;">ql_c</span>.<br>
1875<br>
1876Data format for unit 85 (particle data output) is changed.</td> <td style="vertical-align: top;">advec_particles.f90
1877check_open.f90, header.f90, init_3d_model.f90, init_cloud_physics.f90,
1878init_particles.f90, modules.f90, package_parin.f90, parin.f90,
1879plot_2d.f90, plot_3d.f90, read_var_list.f90, time_integration.f90,
1880write_var_list.f90<br> <br> <span style="font-weight: bold;">new:</span><br>
1881interaction_droplets_ptq.f90</td> </tr> <tr> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">C<br> </td> <td style="vertical-align: top;">Default value of <span style="font-family: monospace;">call_psolver_at_all_substeps</span>
1882is <span style="font-style: italic;">.TRUE.</span>,
1883because small scale waves occured with <span style="font-style: italic;">.FALSE.</span></td> <td style="vertical-align: top;">modules.f90</td> </tr>
1884<tr> <td style="vertical-align: top;"><br> </td>
1885<td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">E<br> </td> <td style="vertical-align: top;">2d- and 3d-NetCDF-files are not
1886opened if there is no output for them (<span style="font-family: monospace;">pl2d</span> = <span style="font-family: monospace;">pl3d</span> = <span style="font-style: italic;">' '</span>).<br> <br>
1887No opening of units 101 - 108 in case of missing NetCDF support.</td>
1888<td style="vertical-align: top;">check_open.f90, netcdf.f90<br>
1889</td> </tr> <tr> <td style="vertical-align: top;">30/06/05<br> </td>
1890<td style="vertical-align: top;">GS<br> </td>
1891<td style="vertical-align: top;">2.11a<br> </td>
1892<td style="vertical-align: top;">C<br> </td> <td style="vertical-align: top;">Scalars ug and vg have been
1893changed into
1894arrays in order to allow the specification of a geostrophic wind that
1895depends on height (baroclinicity). The initial profiles of the the
1896u- and v-component of the geostrophic wind are initialized by
1897specifying the new initialization parameters <span style="font-family: monospace;">ug_surface</span>, <span style="font-family: monospace;">ug_vertical_gradient</span>,
1898<span style="font-family: monospace;">ug_vertical_gradient_level</span>
1899and <span style="font-family: monospace;">vg_surface</span>,
1900<span style="font-family: monospace;">vg_vertical_gradient</span>,
1901<span style="font-family: monospace;">vg_vertical_gradient_level</span>,
1902respectively. <br> <br>
1903The former initialization parameters <span style="font-family: monospace;">ug</span> and <span style="font-family: monospace;">vg</span> have been
1904removed. <br> </td> <td style="vertical-align: top;">boundary_conds,
1905check_parameters, coriolis, header, init_1d_model, modules, parin,
1906prognostic_equations, read_var_list, spline_z, write_var_list<br>
1907</td> </tr> <tr> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;"><br> </td> <td style="vertical-align: top;">E<br> </td> <td style="vertical-align: top;">Error in the calculation of u_0
1908and
1909v_0 in production_e.f90 removed.<br> <br> <span style="font-weight: bold;">Attention:</span> <br>
1910The content of the testresult-file (run control output) has changed
1911due to this modification.<br> </td> <td style="vertical-align: top;">production_e<br> </td>
1912</tr> <tr> <td style="text-align: left; vertical-align: top;">20/10/05</td>
1913<td style="vertical-align: top;">SR</td> <td style="vertical-align: top;">2.11b</td> <td style="vertical-align: top;">N/C</td> <td style="vertical-align: top;">Collision process for droplet
1914growth completed.<br> <br> <span style="font-weight: bold;">The droplet code is still under
1915development and requires further speed optimization!<br> <br>
1916</span>Number of particles really used is additionally output on
1917the netcdf particle data file.<span style="font-weight: bold;"></span></td>
1918<td style="vertical-align: top;">advec_particles, modules,
1919netcdf</td> </tr> <tr> <td style="vertical-align: top;">&nbsp;</td> <td style="vertical-align: top;">&nbsp;</td> <td style="vertical-align: top;">&nbsp;</td> <td style="vertical-align: top;">E</td> <td style="vertical-align: top;">The
1920last PE in a row is not allowed to have more grid points than the other
1921PES (only less). Jobs crashed in these cases that the last PE has more
1922grid points. Therefore, the number of gridpoints along x (and y) must
1923now meet a special condition which is checked in case that <span style="font-family: monospace;">grid_matching</span> =
1924<span style="font-style: italic;">'match'</span> is
1925used.<br> <br>
1926Error removed in calculating y axis data for yz cross sections. Error
1927in output of netcdf yz-cross-sections removed.<br> <br>
19282*r replaced by r in the exponential term of the particle momentum
1929equation.<br>
1930Error in output of yz-slice information removed.</td> <td style="vertical-align: top;">advec_particles, header,
1931init_pegrid, netcdf, plot_2d</td> </tr> <tr> <td style="vertical-align: top;">06/12/05</td> <td style="vertical-align: top;">SR</td> <td style="vertical-align: top;">2.11c</td> <td style="vertical-align: top;">N</td> <td style="vertical-align: top;">Output of ql profile is allowed
1932in case of using cloud droplets.</td> <td style="vertical-align: top;">check_parameters,
1933flow_statistics, modules</td> </tr> <tr> <td style="vertical-align: top;">&nbsp;</td> <td style="vertical-align: top;">&nbsp;</td> <td style="vertical-align: top;">&nbsp;</td> <td style="vertical-align: top;">E</td> <td style="vertical-align: top;">The horizontally averaged pt
1934profile is calculated within<span style="font-family: monospace;">
1935buoyancy </span>only
1936in case of the first respective intermediate timestep. This is done in
1937order to spare communication time and to produce identical model
1938results with jobs which are calling<span style="font-family: monospace;"> flow_statistics </span>at
1939different time intervals.<br> <br>
1940Error in netcdf variable declaration for<span style="font-family: monospace;"> statistic_regions </span>/=
1941<span style="font-style: italic;">0</span> removed.</td>
1942<td style="vertical-align: top;">buoyancy, netcdf</td>
1943</tr><tr><td style="vertical-align: top;">23/02/06</td><td style="vertical-align: top;">SR</td><td style="vertical-align: top;">3.0</td><td style="vertical-align: top;">N</td><td><span style="font-weight: bold;">Version for simulating flows over
1944topography (buildings, mountains, etc.)</span><br style="font-weight: bold;"><br>Besides
1945the implementation of topography, this version contains several other
1946improvements. The most important ones are listed here:<br><ul><li>The
1947cloud droplet code has been optimized (it now runs about 100 times
1948faster than before).</li><li>Output of time-averaged 2d/3d
1949data (sections / volume data) is possible.</li><li>Output
1950of 2d-section data averaged along the direction normal to this section
1951can be done.</li><li>The user-interface has been extended
1952in order to allow 2d-/3d-output of user-defined quantities.</li></ul>The
1953kind of topography to be used is controlled by the new initialization
1954parameter <span style="font-family: monospace;">topography</span>.
1955Allowed values are <span style="font-style: italic;">'flat'</span>,
1956<span style="font-style: italic;">'single_building'</span>,
1957and <span style="font-style: italic;">'read_from_file'</span>.
1958The user can define his own special topography setting within the new
1959user-interface routine <span style="font-family: monospace;">user_init_grid</span>.
1960For the single building case, the&nbsp;building (rectangular) size
1961and position can be controlled with parameters <span style="font-family: monospace;">building_height</span>,
1962<span style="font-family: monospace;">building_length_x</span>,
1963<span style="font-family: monospace;">building_length_y</span>,
1964<span style="font-family: monospace;">building_wall_left</span>,
1965and <span style="font-family: monospace;">building_wall_south</span>.<br>
1966<br>
1967The topography code is already optimized (vectorized) for use on the
1968NEC-SX6.<br><br>Output of time-averaged 2d-/3d-data can be
1969enabled by appending the string <span style="font-style: italic;">'_av'</span>
1970to the respective output quantities given with the new
1971runtime-parameter <span style="font-family: monospace;">data_output</span>
1972(see further below for the (name)changes in the parameters for data
1973output). Example: if a time-average of the vertical cross-section of
1974potential temperature is required, the user has to set <span style="font-family: monospace;">data_output</span> = <span style="font-style: italic;">'pt_xy_av'</span>.
1975In case of NetCDF-output, the time-averaged data is output to
1976additional files (seperate from the non-averaged output). The length of
1977the averaging interval and the temporal distance of the single
1978instantaneous sections (volumes) entering into this averaging is
1979controlled by the new runtime-parameters <span style="font-family: monospace;">averaging_interval</span>and
1980<span style="font-family: monospace;">dt_averaging_input</span>.
1981<br><br>An average normal to the direction of a
1982cross-section can be output by setting the respective cross section
1983index to <span style="font-style: italic;">-1</span>
1984(example: <span style="font-family: monospace;">section_xz</span>
1985= <span style="font-style: italic;">-1</span>).<br><br>New
1986user-interface routines allowing the output of user-defined quantities
1987are <span style="font-family: monospace;">user_check_data_output</span>,
1988<span style="font-family: monospace;">user_define_netcdf_grid</span>,
1989<span style="font-family: monospace;">user_data_output_2d</span>,
1990<span style="font-family: monospace;">user_data_output_3d</span>,
1991and <span style="font-family: monospace;">user_3d_data_averaging</span>.
1992These quantities can be calculated using the new <span style="font-family: monospace;">CASE</span>-Entry <span style="font-style: italic;">'after integration'</span>
1993in the user-interface routine <span style="font-family: monospace;">user_actions</span>.<br><br>Optimization
1994of the cloud droplet code is mainly done by re-sorting all particles
1995after every timestep in a way that now all particles which belong to
1996the same grid-box (k,j,i) are stored consecutively (wthout any strides)
1997in memory.<br> <br>
1998Code adaptation for the IBM at the department of atmospheric sciences,
1999Yonsei university (ibmy). Affected subroutines: <span style="font-family: monospace;">fft_xy</span>, <span style="font-family: monospace;">netcdf</span>, <br><br><span style="font-weight: bold;">Further new features:</span><br><ul><li>Use
2000of particle tails now requires setting of the new package-parameter <span style="font-family: monospace;">use_particle_tails</span>.
2001The new parameter skip_particles_for_tail allows only every <span style="font-family: monospace;">skip_particle_for_tail</span>'th
2002parameter having a tail.</li><li>Initialization-parameter <span style="font-family: monospace;">e_min</span> can be
2003used to set a lower limit for the subgrid-scale TKE (i.e. to guarantee
2004a lower limit for the flow's Reynolds-number).</li><li>A
2005conservation of the volume flow (through the complete xz- and
2006yz-sections &nbsp;of the total domain) can be enforced by the new
2007initialization-parameter <span style="font-family: monospace;">conserve_volume_flow</span>.</li><li>Data
2008output can be skipped for a given time interval from simulation start
2009(t=0) using new runtime-parameters <span style="font-family: monospace;">skip_time_dopr</span>,
2010<span style="font-family: monospace;">skip_time_dosp</span>,
2011<span style="font-family: monospace;">skip_time_do2d_xy</span>,
2012<span style="font-family: monospace;">skip_time_do2d_xz</span>,
2013<span style="font-family: monospace;">skip_time_do2d_yz</span>,
2014and <span style="font-family: monospace;">skip_time_do3d</span>.<br>
2015</li><li>By default, NetCDF output is now using 64-bit
2016offset format
2017(large file support) on most machines. The user can switch to the
201832-bit offset format with the new runtime-parameter <span style="font-family: monospace;">netcdf_64bit</span>.
2019Units 111:113&nbsp; and 116 are opened for NetCDF output of
2020time-averaged 2d-3d data.<br> </li> <li>Data
2021logging routines are added (see file data_log.f90), which can be used
2022for debugging purposes. Output is done on unit 20 (local file
2023name/directory name DATA_LOG).</li> <li>New routine <span style="font-family: monospace;">exchange_horiz_2d_int</span>
2024for&nbsp; ghostpoint exchange of 2d-integer arrays. Routine <span style="font-family: monospace;">exchange_horiz_2d</span>
2025is extended for non-cyclic boundary conditions in the non-parallel case.</li>
2026<li>Two different methods for calculating the mixing length and
2027the dissipation can be used in the 1d-model. These are steered by the
2028new initializing-parameters <span style="font-family: monospace;">dissipation_1d</span>
2029and <span style="font-family: monospace;">mixing_length_1d</span>.<br>
2030</li>
2031</ul></td><td style="vertical-align: top;">advec_particles,
2032advec_s_pw,
2033advec_s_up, advec_u_pw, advec_u_up, advec_v_pw, advec_v_up, advec_w_pw,
2034advec_w_up, boundary_conds, buoyancy, check_open, check_parameters,
2035close_file, coriolis, diffusion_e, diffusion_s, diffusion_u,
2036diffusion_v, diffusion_w, diffusivities, disturb_field,
2037disturb_heatflux, exchange_horiz_2d, exchange_horiz, flow_statistics,
2038header, init_1d_model, init_3d_model, init_grid, init_particles,
2039init_pegrid, modules, netcdf, package_parin, parin, poisfft,
2040prandtl_fluxes, pres, production_e, prognostic_equations,
2041read_3d_binary, read_var_list, run_control, time_integration,
2042user_interface, write_3d_binary, write_var_list<br> <br> <span style="font-weight: bold;">new:</span><br>
2043average_3d_data, data_log, sum_up_3d_data<br> <br> <span style="font-weight: bold;">renamed:<br> </span>plot_dvrp
2044-&gt; data_output_dvrp<br>
2045plot_spectra -&gt; data_output_spectra<br>
2046plot_ts -&gt; data_output_tseries<br>
2047plot_1d -&gt; data_output_profiles<br> <span style="font-weight: bold;"></span>plot_2d -&gt;
2048data_output_2d<br>
2049plot_3d -&gt; data_output_3d<br>
2050</td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td style="vertical-align: top;">C</td><td>In
2051parallel mode, all PEs are opening the same copy of the
2052NAMELIST-parameter file <span style="font-family: monospace;">PARIN</span>,
2053i.e. from now on, the file attribute "<span style="font-family: monospace;">npe</span>" must be
2054removed from the corresponding file connection statements in the <span style="font-weight: bold;">mrun</span> configuration
2055file (.mrun.config).<br><br>A
2056large number of parameter names and local filenames have been changed
2057(see&nbsp;list below). Most of them are parameters concerning data
2058output (do). The former denotations "plot" and "pl" have been changed
2059to "data_output" and "do", respectively. In addition to these changes,
2060the names of many internal PALM parameters and variables have also
2061changed.<br><br>Restart runs now require setting of the
2062initialization-parameter <span style="font-family: monospace;">initializing_actions</span>
2063= <span style="font-style: italic;">'read_restart_data'</span>.<br>
2064<br>
2065Concerning particles, the parameters <span style="font-family: monospace;">psl</span>, <span style="font-family: monospace;">psr</span>, <span style="font-family: monospace;">pdx</span>,
2066etc., which are controlling the position of the particle source and the
2067number of particles within this source, are now 1d-arrays. This allows
2068to define different particle sources for different particle groups.<br>
2069<br>
2070The number of particle groups has to be set by the user (no automatic
2071calculation from the value of parameter <span style="font-family: monospace;">density_ratio</span>
2072any more)<span style="font-style: italic;"></span>.
2073Variable <span style="font-family: monospace;">idum</span>
2074in type <span style="font-family: monospace;">particle_type</span>
2075has been renamed <span style="font-family: monospace;">tail_id</span>.<br><br>Output
2076for units 15 and 17 flushed in <span style="font-family: monospace;">init_1d_model</span>.<br><br>List
2077of changed parameter names:<br><table style="text-align: left; width: 559px; height: 831px;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td style="font-weight: bold;" align="undefined" valign="undefined">Old name</td><td align="undefined" valign="undefined"><span style="font-weight: bold;">New name</span></td><td align="undefined" valign="undefined"><span style="font-weight: bold;">Comments</span></td></tr><tr><td align="undefined" valign="undefined">average_period_pl1d</td><td align="undefined" valign="undefined">averaging_interval_pr</td><td align="undefined" valign="undefined"><br>
2078</td></tr><tr><td style="vertical-align: top;">average_period_pr1d</td><td style="vertical-align: top;">---</td><td style="vertical-align: top;">averaging of printed profiles
2079is not possible any more</td></tr><tr><td align="undefined" valign="undefined">average_period_sp</td><td align="undefined" valign="undefined">averaging_interval_sp</td><td align="undefined" valign="undefined"><br>
2080</td></tr><tr><td align="undefined" valign="undefined">dt_average</td><td align="undefined" valign="undefined">dt_averaging_input_pr</td><td align="undefined" valign="undefined"><br>
2081</td></tr><tr><td align="undefined" valign="undefined">dt_pl1d</td><td align="undefined" valign="undefined">dt_dopr</td><td align="undefined" valign="undefined"><br>
2082</td></tr><tr><td align="undefined" valign="undefined">dt_plsp</td><td align="undefined" valign="undefined">dt_dosp</td><td align="undefined" valign="undefined"><br>
2083</td></tr><tr><td>dt_plts</td><td>dt_dots</td><td></td></tr><tr><td align="undefined" valign="undefined">dt_pr1d</td><td align="undefined" valign="undefined">dt_dopr_listing</td><td align="undefined" valign="undefined"><br>
2084</td></tr><tr><td align="undefined" valign="undefined">dt_pl2d_xy</td><td align="undefined" valign="undefined">dt_do2d_xy</td><td align="undefined" valign="undefined"><br>
2085</td></tr><tr><td align="undefined" valign="undefined">dt_pl2d_xz</td><td align="undefined" valign="undefined">dt_do2d_xz</td><td align="undefined" valign="undefined"><br>
2086</td></tr><tr><td align="undefined" valign="undefined">dt_pl2d_yz</td><td align="undefined" valign="undefined">dt_do2d_yz</td><td align="undefined" valign="undefined"><br>
2087</td></tr><tr><td align="undefined" valign="undefined">ebene_xy</td><td align="undefined" valign="undefined">section_xy</td><td align="undefined" valign="undefined"><br>
2088</td></tr><tr><td align="undefined" valign="undefined">ebene_xz</td><td align="undefined" valign="undefined">section_xz</td><td align="undefined" valign="undefined"><br>
2089</td></tr><tr><td align="undefined" valign="undefined">ebene_yz</td><td align="undefined" valign="undefined">section_yz</td><td align="undefined" valign="undefined"><br>
2090</td></tr><tr><td align="undefined" valign="undefined">nz_plot3d</td><td align="undefined" valign="undefined">nz_do3d</td><td align="undefined" valign="undefined"><br>
2091</td></tr><tr><td align="undefined" valign="undefined">plts</td><td align="undefined" valign="undefined">data_output_ts</td><td align="undefined" valign="undefined"><br>
2092</td></tr><tr><td align="undefined" valign="undefined">pl1d</td><td align="undefined" valign="undefined">data_output_pr</td><td align="undefined" valign="undefined"><br>
2093</td></tr><tr><td style="vertical-align: top;">pl2d</td><td style="vertical-align: top;">data_output</td><td style="vertical-align: top;">old parameters pl2d and pl3d
2094are joined to new parameter data_output</td></tr><tr><td align="undefined" valign="undefined">pl3d</td><td align="undefined" valign="undefined">data_output</td><td align="undefined" valign="undefined"><br>
2095</td></tr><tr><td align="undefined" valign="undefined">pl2d_at_begin</td><td align="undefined" valign="undefined">do2d_at_begin</td><td align="undefined" valign="undefined"><br>
2096</td></tr><tr><td align="undefined" valign="undefined">pl3d_at_begin</td><td align="undefined" valign="undefined">do3d_at_begin</td><td align="undefined" valign="undefined"><br>
2097</td></tr><tr><td align="undefined" valign="undefined">pl3d_compress</td><td align="undefined" valign="undefined">do3d_compress</td><td align="undefined" valign="undefined"><br>
2098</td></tr><tr><td align="undefined" valign="undefined">pl3d_precision</td><td align="undefined" valign="undefined">do3d_comp_prec</td><td align="undefined" valign="undefined"><br>
2099</td></tr><tr><td>pl_spectra</td><td>data_output_sp</td><td></td></tr><tr><td align="undefined" valign="undefined">read_fields_from_prior_run</td><td align="undefined" valign="undefined">read_restart_data</td><td align="undefined" valign="undefined"><br>
2100</td></tr><tr><td align="undefined" valign="undefined">write_plot2d_on_each_pe</td><td align="undefined" valign="undefined">data_output_2d_on_each_pe</td><td align="undefined" valign="undefined"><br>
2101</td></tr><tr><td align="undefined" valign="undefined">z_max_pl1d</td><td align="undefined" valign="undefined">z_max_do1d</td><td align="undefined" valign="undefined"><br>
2102</td></tr><tr><td align="undefined" valign="undefined">z_max_pl2d</td><td align="undefined" valign="undefined">z_max_do2d</td><td align="undefined" valign="undefined"><br>
2103</td></tr></tbody></table></td><td style="vertical-align: top;">advec_particles,
2104advec_s_bc, check_parameters, check_open, close_file,
2105data_output_dvrp,&nbsp; data_output_profiles, data_output_tseries,
2106data_output_2d, data_output_3d, flow_statistics, header, init_1d_model,
2107init_3d_model, init_dvrp, init_particles, init_pegrid, init_slope,
2108modules, netcdf, package_parin, palm, parin, print_1d, read_var_list,
2109run_control, time_integration, timestep, write_compressed,
2110write_var_list<br>
2111</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td style="vertical-align: top;">E</td><td>Error in
2112the particle release (defaults of <span style="font-family: monospace;">psl</span>, <span style="font-family: monospace;">psr</span>, <span style="font-family: monospace;">psn</span>, <span style="font-family: monospace;">pss</span>) at the PE
2113boundary has been fixed.<br> <br>
2114Error removed getting the variable ids for <span style="font-family: monospace;">_ext</span> for
2115profiles and time series.<br><br>NetCDF calls in <span style="font-family: monospace;">data_output_tseries</span>
2116only if NetCDF output is switched on.<br><br>Output of the
2117initial geostrophic wind profile corrected.<br><br>Maximum
2118possibel timestep for Runge-Kutta-schemes reduced, error concerning
2119initialization of&nbsp; <span style="font-family: monospace;">l_black</span>
2120removed (both in <span style="font-family: monospace;">init_1d_model</span>).<br>
2121</td><td style="vertical-align: top;">advec_particles,
2122data_output_tseries, header, init_particles, init_1d_model, netcdf<br>
2123</td></tr><tr><td align="left" valign="top">26/04/06</td><td align="left" valign="top">SR</td><td align="left" valign="top">3.0a</td><td align="left" valign="top">N</td><td align="left" valign="top">OpenMP parallelization for
2124the cache-optimized PALM code.<br><br>OpenMP
2125directives have been added where necessary. Still further tuning will
2126be necessary to get optimum performance. Other parts of the code than
2127the cache-optimized code still need to be (OpenMP-) parallelized. <br><br>So
2128far, threads are activated by setting the <span style="font-weight: bold;">mrun</span>-options <span style="font-family: monospace;">-T</span> <span style="font-style: italic;">&lt;number_of_threads&gt;</span>
2129and <span style="font-family: monospace;">-O</span>,
2130i.e. when the Option <span style="font-family: monospace;">-O</span>
2131is given, the <span style="font-family: monospace;">-T</span>
2132argument is interpreted as the number of threads to be used. When <span style="font-family: monospace;">-O</span> is given,
2133the number of MPI tasks per node is automatically set to <span style="font-style: italic;">1</span>.<br><br>Beside
2134the additional compiler directives, the main code change required by
2135the OpenMP parallelization is that global sums are now calculated by
2136first calculating local sums on each thread. As the next step, local
2137sums are calculated from these thread sums for each MPI task before the
2138global sum is computed via MPI_ALLREDUCE.&nbsp; For storing the
2139thread
2140sums, arrays sums_l and sums_l_l now have three dimensions where the
2141number of elements of the third dimension is equal to the number of
2142OpenMP threads.</td><td align="left" valign="top">buoyancy,
2143cpu_statistics, diffusivities, flow_statistics, header, init_pegrid,
2144init_3d_model, modules, prandtl_fluxes, pres, production_e</td></tr><tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">ML</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">C</td><td align="left" valign="top">Provisional
2145correction for Piacsek &amp; Williams advection scheme: keep u and
2146v
2147zero one layer below the topography (in case of set_1d-model_profiles).</td><td align="left" valign="top">init_3d_model</td></tr><tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">SR/ML</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">E</td><td align="left" valign="top">In <span style="font-family: monospace;">flow_statistics.f90</span>
2148nzb_s_inner(j,i) replaced by nzb in determination of z_i.<br><br>Errors
2149removed in the computation of the diabatic mixing length (<span style="font-family: monospace;">init_1d_model.f90</span>).<br><br>Error
2150removed in extend mode when checking whether the selected cross
2151sections match those in the already existing NetCDF file (<span style="font-family: monospace;">netcdf.f90</span>).</td><td align="left" valign="top">flow_statistics,
2152init_1d_model, netcdf</td></tr><tr><td align="left" valign="top">02/06/06</td><td align="left" valign="top">SR</td><td align="left" valign="top">3.0b</td><td align="left" valign="top">N</td><td align="left" valign="top">This version is adapted to the Sun Fire X4600
2153system at TIT (to be used by setting the <span style="font-weight: bold;">mrun</span> option <span style="font-family: monospace;">-h lctit</span>).</td><td align="left" valign="top">cpu_log, init_1d_model,
2154local_tremain, loca&ouml;_tremain_ini, run_control</td></tr><tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">C</td><td align="left" valign="top">NetCDF&nbsp;2d-
2155and 3d-datasets now contain the exact coordinates of the variables
2156along x and y with respect to the positions where they are defined on
2157the staggered grid.<br><br>NetCDF datasets of cross
2158sections (e.g. <span style="font-family: monospace;">DATA_2D_XY_NETCDF</span>)
2159are only opened if the respective cross sections are really requested
2160by the settings of parameter <span style="font-family: monospace;">data_output</span>.</td><td align="left" valign="top">check_parameters,
2161data_output_2d, data_output_3d, modules, netcdf, user_interface</td></tr><tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">E</td><td align="left" valign="top">p is assigned to <span style="font-family: monospace;">to_be_resorted</span>
2162instead of w</td><td align="left" valign="top">data_output_2d</td></tr><tr><td align="left" valign="top">04/08/06</td><td align="left" valign="top">SR</td><td align="left" valign="top">3.1</td><td align="left" valign="top">N</td><td align="left" valign="top">Subgrid
2163scale velocities can (optionally) be included for calculating the
2164particle advection, using the method of Weil et al. (2004, JAS, 61,
21652877-2887). This method is switched on by the new particle package
2166parameter <span style="font-family: monospace;">use_sgs_for_particles</span>.
2167This also forces the Euler/upstream method to be used for time
2168advancement of the TKE (see new parameter <span style="font-family: monospace;">use_upstream_for_tke</span>).
2169The minimum timestep during the sub-timesteps is controlled by
2170parameter <span style="font-family: monospace;">dt_min_part</span>.
2171The data type <span style="font-family: monospace;">particle_type</span>
2172has additional new attributes <span style="font-family: monospace;">e_m</span>,
2173<span style="font-family: monospace;">dt_sum</span>,
2174and <span style="font-family: monospace;">speed_x/y/z_sgs</span>.<br><br>Other
2175new particle features: output of particle quantities as timeseries in
2176NetCDF format (on local file <span style="font-family: monospace;">DATA_1D_PTS_NETCDF</span>).
2177The output time interval is controlled by parameter <span style="font-family: monospace;">dt_dopts</span>.
2178Particle advection can be switched off after some time using parameter <span style="font-family: monospace;">end_time_prel</span>.
2179More than one particle per point can be started with parameter <span style="font-family: monospace;">particles_per_point</span>.<br><br>Additional
2180parameter in function <span style="font-family: monospace;">random_gauss</span>
2181which limits the range of the created random numbers to five times the
2182standard deviation (=1). Seeds <span style="font-family: monospace;">iran</span>
2183and <span style="font-family: monospace;">iran_part</span>
2184are stored for restart runs.</td><td align="left" valign="top">advec_particles,
2185check_open, check_parameters, close_file, diffusion_e,
2186disturb_heatflux, header, init_3d_model, init_particles, modules,
2187netcdf, package_parin, parin, prognostic_equations, random_gauss,
2188read_3d_binary, read_var_list, time_integration, write_3d_binary,
2189write_var_list<br><br><span style="font-weight: bold;">new:</span><br>data_output_ptseries</td></tr><tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">C</td><td align="left" valign="top">Call of subroutine <span style="font-family: monospace;">header</span> is moved
2190after call of subroutine <span style="font-family: monospace;">init_3d_model</span>.
2191Generation of <span style="font-family: monospace;">run_description_header</span>
2192is moved from routines <span style="font-family: monospace;">palm</span>
2193and <span style="font-family: monospace;">header</span>
2194to <span style="font-family: monospace;">check_parameters</span>.
2195Determination of the number of particle groups is moved from <span style="font-family: monospace;">header</span> to <span style="font-family: monospace;">init_particles</span>.<br><br><span style="font-family: monospace;">izuf</span> renamed <span style="font-family: monospace;">iran</span>.</td><td align="left" valign="top">check_parameters,
2196disturb_field, disturb_heatflux, header, init_particles, modules, palm</td></tr><tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">E</td><td align="left" valign="top">Variables
2197do2d_unit and do3d_unit now defined as 2d-arrays. Before, in some
2198cases, the units of variables in the 2d- and 3d-NetCDF-files have been
2199wrong.<br><br>In routine <span style="font-family: monospace;">poisfft</span> default
2200setting of the thread number tn in case of not using OpenMP.<br><br>Error
2201removed in the non-parallel part of routine <span style="font-family: monospace;">flow_statistics</span>
2202(number of arguments of array <span style="font-family: monospace;">sums_l</span>).<br><br>Error
2203removed which appeared if the user had decreased the value of <span style="font-family: monospace;">dt_dopr</span> within
2204a job chain and if simulataneous time averaging of profiles was
2205switched on.</td><td align="left" valign="top">check_parameters,
2206data_output_profiles, flow_statistics, modules, netcdf, poisfft</td></tr><tr><td style="vertical-align: top;">22/08/06</td><td style="vertical-align: top;">SR</td><td style="vertical-align: top;">3.1a</td><td style="vertical-align: top;">N</td><td style="vertical-align: top;">In case of more than one
2207particle group, seperate output of timeseries for each of the groups.<br><br>New
2208initial parameter <span style="font-family: monospace;">dz_max</span>,
2209which limits the vertical gridspacing in case of a vertically stretched
2210grid.</td><td style="vertical-align: top;">data_output_ptseries,
2211header, init_grid, modules, netcdf, parin, read_var_list, write_var_list</td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">C</td><td style="vertical-align: top;">Disturbances are imposed only
2212for the last Runge-Kutta-substep. <br><span style="font-weight: bold;">Attention:</span> <br>
2213The content of the testresult-file (run control output) has changed
2214due to this modification.<br><br>Output of xz and yz cross
2215sections now up to gridpoint nzt+1.<br><br>Default settings
2216of particle start positions changed.</td><td style="vertical-align: top;">check_open, close_file,
2217data_output_2d, init_particles, netcdf, time_integration</td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">E</td><td style="vertical-align: top;">Initialisation of all tendency
2218arrays (t.._m) needed for the Runge-Kutta schemes.<br><br>Bugfix
2219in index array initialization for line- or point-like topography
2220structures.<br><br>Bugfix: yv coordinates are now used for
2221yz cross sections, where neccessary.</td><td style="vertical-align: top;">init_3d_model, init_grid, netcdf</td></tr><tr><td style="vertical-align: top;">12/02/07</td><td style="vertical-align: top;">SR</td><td style="vertical-align: top;">3.1b</td><td style="vertical-align: top;">&nbsp;N</td><td style="vertical-align: top;"><span style="font-weight: bold;">Attention:</span><br>This
2222is the last revision before switching to the subversion revison control
2223system!<br><br>Informative output to the job protocoll in
2224case of restarts.</td><td style="vertical-align: top;">check_for_restart</td></tr><tr><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td><td style="vertical-align: top;">C</td><td style="vertical-align: top;">Values of environment variables
2225are now read from local file <span style="font-family: monospace;">ENVPAR</span>
2226instead of getting them by a system call.<br><br>For
2227interpolation in <span style="font-family: monospace;">advec_particles</span>,
2228allways level k is used.</td><td style="vertical-align: top;">advec_particles,
2229local_tremain_ini, parin</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td style="vertical-align: top;">E</td><td style="vertical-align: top;">Several bugfixes in <span style="font-family: monospace;">advec_particles</span>:
2230new particles are released only if <span style="font-family: monospace;">end_time_prel</span>
2231&gt; <span style="font-family: monospace;">simulated_time</span>,&nbsp;transfer
2232of particles when x &lt; -0.5*dx (0.0 before), etc., index i,j used
2233instead of cartesian (x,y) coordinate to check for transfer because
2234this failed under very rare conditions, calculation of number of
2235particles with same radius as the current particle (cloud droplet code).<br><br>Allocation
2236of <span style="font-family: monospace;">tail_mask</span>
2237and <span style="font-family: monospace;">new_tail_id</span>
2238in case of restart-runs. "__" added in a cpp-directive. (both <span style="font-family: monospace;">init_particles</span>)</td><td style="vertical-align: top;">advec_particles, init_particles</td></tr><tr><td style="vertical-align: top;">02/03/07</td><td style="vertical-align: top;">SR</td><td style="vertical-align: top;">3.1c</td><td style="vertical-align: top;">N</td><td style="vertical-align: top;">A heatflux can be prescribed at
2239the top with new inipar parameters <span style="font-family: monospace;">top_heatflux</span>
2240and <span style="font-family: monospace;">use_top_fluxes</span>.
2241New 2d-arrays <span style="font-family: monospace;">qswst</span>,
2242<span style="font-family: monospace;">qswst_m</span>,
2243<span style="font-family: monospace;">tswst</span>
2244and <span style="font-family: monospace;">tswst_m</span>
2245are used to store this flux. Use of fluxes are controlled with new
2246index variable <span style="font-family: monospace;">nzt_diff</span>.
2247A Neumann boundary condition for temperature can be applied under these
2248conditions.<br><br>Additionally, a Dirichlet condition for
2249temperature can be used at the top.<br><br><span style="font-weight: bold;">Attention:</span> <br>
2250The content of the testresult-file (run control output) has changed
2251due to this modification.</td><td style="vertical-align: top;">check_parameters,
2252diffusion_s, flow_statistics, header, init_grid, init_3d_model,
2253modules, parin, production_e, prognostic_equations, read_var_list,
2254read_3d_binary, swap_timelevel, write_var_list, write_3d_binary</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td style="vertical-align: top;">C</td><td style="vertical-align: top;">Prognostic equations for all
2255scalars are now solved up to gridpoint nzt (formerly nzt-1).
2256Boundary conditions for scalars at top adjusted respectively (now
2257applied only at nzt+1).<br><br>The
2258default top boundary condition for temperature has been renamed to <span style="font-style: italic;">'initial_gradient'</span>.<br><br>Calls
2259of dvrp_output_local,
2260which were commented out for a long time, are now activated for all
2261streams.</td><td style="vertical-align: top;">advec_s_pw,
2262boundary_conds, calc_precipitation, check_parameters, diffusion_e,
2263diffusion_s, impact_of_latent_heat, init_dvrp, init_pt_anomaly,
2264modules, production_e, prognostic_equations, spline_z</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td style="vertical-align: top;">E</td><td style="vertical-align: top;">Bugfix: 3d-array p is not a
2265pointer any more.<br><br>Bugfix in init_particles:
2266MPI_REAL
2267argument in MPI_ALLREDUCE
2268replaced by<br>MPI_INTEGER
2269(caused error on NEC only).<br><br>Bugfix:&nbsp; ddzw now
2270dimensioned 1:nzt"+1".</td><td style="vertical-align: top;">diffusion_e, diffusion_s,
2271diffusion_u, diffusion_v, diffusion_w, init_particles, modules</td></tr><tr><td style="vertical-align: top;">29/03/07</td><td style="vertical-align: top;">SR</td><td style="vertical-align: top;">3.2</td><td style="vertical-align: top;">N</td><td style="vertical-align: top;">The code, including scripts, utility programs and documentation is now under full control of <span style="font-family: Courier New,Courier,monospace;">subversion</span>. This revision includes a quite large number of new features, changes and bugfixes.<br>&nbsp;<br>Particle reflection from vertical walls implemented. The particle SGS model is also adjusted to these vertical walls.<br><br>Wall functions for vertical walls now include diabatic conditions. New subroutines <span style="font-family: Courier New,Courier,monospace;">wall_fluxes</span>, <span style="font-family: Courier New,Courier,monospace;">wall_fluxes_e</span>. New 4D-array <span style="font-family: Courier New,Courier,monospace;">rif_wall</span>.<br><br>Calculation/output of precipitation amount, precipitation rate and z0 (by setting "<span style="font-style: italic;">pra*</span>", "<span style="font-style: italic;">prr*</span>", "<span style="font-style: italic;">z0*</span>" with <span style="font-family: Courier New,Courier,monospace;">data_output</span>). The time interval on which the precipitation amount is defined is set by new d3par-parameter <span style="font-family: Courier New,Courier,monospace;">precipitation_amount_interval</span>.<br><br>New inipar-parameter <span style="font-family: Courier New,Courier,monospace;">loop_optimization</span> to control the loop optimization method.<br><br>New
2272inipar-parameter <span style="font-family: Courier New,Courier,monospace;">pt_reference</span>. If given, this value is used as the
2273reference that is used in the buoyancy terms (otherwise, the instantaneous
2274horizontally averaged temperature is used).<br><br>New d3par-parameter <span style="font-family: Courier New,Courier,monospace;">netcdf_64bit_3d</span>
2275to switch on and especially to switch off 64bit offset&nbsp;for 3D
2276files only (because still some pd-software is unable to handle 64bit
2277offset).<br><br>New d3par-parameter <span style="font-family: Courier New,Courier,monospace;">dt_max</span> to set the maximum&nbsp;value allowed for the&nbsp;timestep. <br><br>New user interfaces <span style="font-family: Courier New,Courier,monospace;">user_advec_particles</span> and <span style="font-family: Courier New,Courier,monospace;">user_init_3d_model</span>. The new initializing action "<span style="font-style: italic;">by_user</span>" calls <span style="font-family: Courier New,Courier,monospace;">user_init_3d_model</span> and allows the initial setting of all 3d arrays under complete user control.<br><br>Samples added to the user interface which show how to add user-define time series quantities.<br><br>Topography height informations are stored on arrays <span style="font-family: Courier New,Courier,monospace;">zu_s_inner</span> and <span style="font-family: Courier New,Courier,monospace;">zw_w_inner</span> and output to the 2d/3d NetCDF files.<br><br>Unit 9 is generally opened for output of debug informations (file <span style="font-family: Courier New,Courier,monospace;">DEBUG_&lt;pe#&gt;</span>).</td><td style="vertical-align: top;">Makefile<br><br>advec_particles,
2278average_3d_data, buoyancy, calc_precipitation, check_open,
2279check_parameters, data_output_2d, diffusion_e, diffusion_u,
2280diffusion_v, diffusion_w, diffusivities, header, impact_of_latent_heat,
2281init_particles, init_3d_model, modules, netcdf, parin, production_e,
2282read_var_list, read_3d_binary, sum_up_3d_data, user_interface,
2283write_var_list, write_3d_binary<br><br><span style="font-weight: bold;">new:</span><br>wall_fluxes<br></td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">C</td><td style="vertical-align: top;">General revision of non-cyclic horizontal boundary conditions:<br>Radiation boundary conditions are now used instead of Neumann conditions at the outflow (calculation needs velocity values for <span style="font-family: Courier New,Courier,monospace;">t-dt</span>, which are stored on new arrays <span style="font-family: Courier New,Courier,monospace;">u_m_l</span>, <span style="font-family: Courier New,Courier,monospace;">u_m_r</span>, etc.). The calculation of a mean outflow is not needed any more. Volume flow control is added for the outflow boundary (<span style="font-weight: bold;">currently only for the north boundary!!</span>). Additional gridpoints along x and y (<span style="font-family: Courier New,Courier,monospace;">uxrp</span>, <span style="font-family: Courier New,Courier,monospace;">vynp</span>) are not needed any more and removed from the code. Routine "<span style="font-family: Courier New,Courier,monospace;">boundary_conds</span>" now operates on timelevel <span style="font-family: Courier New,Courier,monospace;">t+dt</span> and is not split in two parts (<span style="font-style: italic;">main</span>, <span style="font-style: italic;">uvw_outflow</span>) any more. Neumann boundary conditions are used at inflow/outflow in case of non-cyclic boundary conditions <span style="font-weight: bold;">for all 2d-arrays</span> that are handled by <span style="font-family: Courier New,Courier,monospace;">exchange_horiz_2d</span>.<br><span style="font-weight: bold;">Attention:&nbsp;the
2284non-cyclic boundary conditions of this revision still contain some bugs
2285which will be removed within the next revisions!</span><br><br>The Bott-Chlond-scheme can now be used in the vectorization-optimized part (NEC, etc.). Equations are solved up to gridpoint <span style="font-family: Courier New,Courier,monospace;">nzt</span>.<br><br>The
2286FFT-method for solving the Poisson-equation is now working with Neumann
2287boundary conditions both at the bottom and the top. This requires
2288adjustments of the tridiagonal coefficients and subtracting the
2289horizontally averaged mean from the vertical velocity field.<br><br>Particles-package is now part of the default code ("<span style="font-family: Courier New,Courier,monospace;">-p particles</span>" is not needed as an <span style="font-weight: bold;">mrun</span>-option any more). New attribute <span style="font-family: Courier New,Courier,monospace;">age_m</span> in <span style="font-family: Courier New,Courier,monospace;">particle_type</span>.<br><br>Move call of <span style="font-family: Courier New,Courier,monospace;">user_actions</span>( '<span style="font-style: italic;">after_integration</span>' ) below the increments of times<br>and counters. <span style="font-family: Courier New,Courier,monospace;">user_actions</span> is now called for each statistic region and has as an argument the number of the respective region (<span style="font-family: Courier New,Courier,monospace;">sr</span>).<br><br>d3par-parameter <span style="font-family: Courier New,Courier,monospace;">data_output_ts</span> is removed. Timeseries output for <span style="font-weight: bold;">profil</span>-software removed. Timeseries are now switched on by setting <span style="font-family: Courier New,Courier,monospace;">dt_dots</span>. Timeseries data is collected in <span style="font-family: Courier New,Courier,monospace;">flow_statistics</span>.<br><br>Initial velocities at <span style="font-family: Courier New,Courier,monospace;">nzb+1</span>
2290are regarded for volume flow control in case they have been set zero
2291before (to avoid small timesteps); see new internal parameters <span style="font-family: Courier New,Courier,monospace;">u/v_nzb_p1_for_vfc</span>.<br><br><span style="font-family: Courier New,Courier,monospace;">q</span> is not allowed any more to become negative (<span style="font-family: Courier New,Courier,monospace;">prognostic_equations</span>).<br><br><span style="font-family: Courier New,Courier,monospace;">poisfft_init</span> is only called if the fft-solver is switched on (<span style="font-family: Courier New,Courier,monospace;">init_pegrid</span>).<br><br>d3par-parameter <span style="font-family: Courier New,Courier,monospace;">moisture</span> renamed to <span style="font-family: Courier New,Courier,monospace;">humidity</span>.<br><br>Subversion global revision number is read from <span style="font-weight: bold;">mrun</span> and added to the run description header and to the run control (<span style="font-family: Courier New,Courier,monospace;">_rc</span>) file.<br><br><span style="font-family: Courier New,Courier,monospace;">__vtk</span> directives removed from main program.<br><br>The uitility routine&nbsp;<span style="font-family: Courier New,Courier,monospace;">interpret_config</span> now reads PALM environment variables from <span style="font-family: Courier New,Courier,monospace;">NAMELIST</span> instead using the system call <span style="font-family: Courier New,Courier,monospace;">GETENV</span>.</td><td style="vertical-align: top;">advec_s_bc, advec_u_pw,
2292advec_u_up, advec_v_pw, advec_v_up, asselin_filter, boundary_conds, check_parameters,
2293coriolis, data_output_dvrp, data_output_ptseries, data_output_ts,
2294data_output_2d, data_output_3d, diffusion_u, diffusion_v,
2295disturb_field, exchange_horiz, exchange_horiz_2d, flow_statistics, header, init_grid,
2296init_particles, init_pegrid, init_rankine, init_pt_anomaly,
2297init_1d_model, init_3d_model, modules, palm, package_parin, parin,
2298poisfft, poismg, prandtl_fluxes, pres, production_e,
2299prognostic_equations, read_var_list, read_3d_binary, sor,
2300swap_timelevel, time_integration, write_var_list, write_3d_binary</td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">E</td><td style="vertical-align: top;">Bugfix: preset of tendencies <span style="font-family: Courier New,Courier,monospace;">te_em</span>, <span style="font-family: Courier New,Courier,monospace;">te_um</span>, and <span style="font-family: Courier New,Courier,monospace;">te_vm</span> (<span style="font-family: Courier New,Courier,monospace;">init_1d_model</span>).<br><br>Bugfix in sample for reading user defined data from restart file (<span style="font-family: Courier New,Courier,monospace;">user_init</span>).<br><br>Bugfix in setting diffusivities for cases with the outflow damping layer extending over more than one subdomain (<span style="font-family: Courier New,Courier,monospace;">init_3d_model</span>).<br><br>Check for possible negative humidities in the initial humidity profile.<br><br>In <span style="font-family: Courier New,Courier,monospace;">Makefile</span>, default suffixes are removed from the suffix list to avoid calling of <span style="font-family: Courier New,Courier,monospace;">m2c</span> in cases of existing <span style="font-family: Courier New,Courier,monospace;">.mod</span> files (problem on Linux systems).</td><td style="vertical-align: top;">Makefile<br><br>check_parameters, init_1d_model, init_3d_model, user_interface</td></tr><tr><td style="vertical-align: top;">19/04/07</td><td style="vertical-align: top;">SR</td><td style="vertical-align: top;">3.2a</td><td style="vertical-align: top;">C</td><td style="vertical-align: top;">All system relevant compile and link options (e.g. cpp-directives,
2301library paths, etc.) as well as the host identifier (local_host) are
2302now specified in the configuration file. This generally allows to install
2303PALM on any&nbsp;kind of Linux-, IBM-AIX-, or NEC-SX-system by adding
2304appropriate
2305settings to the configuration file. A description is added to chapter
23065.0 of the online documentation.<br><br>Scripts are also running under the public domain ksh.<br><br>Filetransfer by ftp removed (options<span style="font-family: Courier New,Courier,monospace;"> -f </span>removed from <span style="font-weight: bold;">mrun</span> and <span style="font-weight: bold;">mbuild</span>).<br><br>Call of (system-)FLUSH routine moved to new routine<span style="font-family: Courier New,Courier,monospace;"> local_flush</span>.<br><br><span style="font-family: Courier New,Courier,monospace;">return_addres </span>and<span style="font-family: Courier New,Courier,monospace;"> return_username </span>are read from ENVPAR-NAMELIST-file instead of using<span style="font-family: Courier New,Courier,monospace;"> local_getenv</span>.<br><br>Preprocessor strings for different linux clusters changed to "<span style="font-family: Courier New,Courier,monospace;">lc</span>", some preprocessor directives renamed (new:<span style="font-family: Courier New,Courier,monospace;"> __intel_openmp_bug</span> which is used for the bug in<span style="font-family: Courier New,Courier,monospace;"> tridia_1dd </span>and the OpenMP directives). Preprocessor directives for old systems have been removed.<br><br></td><td style="vertical-align: top;">advec_particles,
2307check_open, cpu_log, cpu_statistics, data_output_dvrp, flow_statistics,
2308header, init_dvrp, init_particles, init_1d_model, init_dvrp,
2309init_pegrid, local_getenv, local_system, local_tremain,
2310local_tremain_ini, modules, palm, parin, run_control<br><br><span style="font-weight: bold;">new:</span><br>local_flush<br><br><span style="font-weight: bold;">changed scripts:</span><br>mbuild, mrun, .mrun.config.default<br></td></tr><tr><td style="vertical-align: top;">30/05/07</td><td style="vertical-align: top;">SR</td><td style="vertical-align: top;">3.2b</td><td style="vertical-align: top;">N</td><td style="vertical-align: top;">Calculation and output of user-defined profiles: New&nbsp;userpar-parameter <span style="font-family: Courier New,Courier,monospace;">data_output_pr_user</span>. In the user-interface, routine <span style="font-family: Courier New,Courier,monospace;">user_check_data_output_pr</span> has been added and <span style="font-family: Courier New,Courier,monospace;">user_statistics</span> has been extended.<br></td><td style="vertical-align: top;">check_parameters, flow_statistics, modules, parin, read_var_list, user_interface, write_var_list</td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">C</td><td style="vertical-align: top;">In <span style="font-family: Courier New,Courier,monospace;">pres.f90</span>, division through <span style="font-family: Courier New,Courier,monospace;">dt_3d</span>
2311replaced by multiplication of the inverse. For performance
2312optimisation, this is done in the loop calculating the divergence
2313instead of using a seperate loop.<br><br>Variables <span style="font-family: Courier New,Courier,monospace;">var_hom</span> and <span style="font-family: Courier New,Courier,monospace;">var_sum</span> are both renamed <span style="font-family: Courier New,Courier,monospace;">pr_palm</span>.</td><td style="vertical-align: top;">data_output_profiles, flow_statistics, init_3d_model, modules, parin, pres, read_var_list, run_control, time_integration</td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">E</td><td style="vertical-align: top;">Bugfix: <span style="font-family: Courier New,Courier,monospace;">work_fft*_vec</span> removed from some PRIVATE-declarations (<span style="font-family: Courier New,Courier,monospace;">poisfft</span>).<br><br>Bugfix: <span style="font-family: Courier New,Courier,monospace;">field_chr</span> renamed <span style="font-family: Courier New,Courier,monospace;">field_char</span> (<span style="font-family: Courier New,Courier,monospace;">user_interface</span>).<br><br>Bugfix: output of <span style="font-family: Courier New,Courier,monospace;">use_upstream_for_tke</span> (<span style="font-family: Courier New,Courier,monospace;">header</span>).</td><td style="vertical-align: top;">header, poisfft, user_interface</td></tr><tr><td style="vertical-align: top;">21/06/07</td><td style="vertical-align: top;">SR</td><td style="vertical-align: top;">3.3</td><td style="vertical-align: top;">N</td><td style="vertical-align: top;">This version allows runs for the ocean. These runs can be switched on with the new inipar-parameter <span style="font-family: Courier New,Courier,monospace;">ocean</span>.<br><br>Setting this switch has several effects:<br><ul><li>An additional prognostic equation for salinity is solved.</li><li>Potential temperature in buoyancy and stability-related terms is replaced by potential density.</li><li>Potential
2314density is calculated from the equation of state for seawater after
2315each timestep, using the algorithm proposed by Jackett et al. (2006, J.
2316Atmos. Oceanic Technol., <span style="font-weight: bold;">23</span>, 1709-1728).<br>So far, only the initial hydrostatic pressure is entered into this equation.</li><li>z=0 (sea surface) is assumed at the model top (vertical grid index <span style="font-family: Courier New,Courier,monospace;">k=nzt</span> on the w-grid), with negative values of z indicating the depth.</li><li>Initial profiles are constructed (e.g. from <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/doc/app/chapter_4.1.html#pt_vertical_gradient">pt_vertical_gradient</a> / <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/doc/app/chapter_4.1.html#pt_vertical_gradient_level">pt_vertical_gradient_level</a>) starting from the sea surface, using surface values&nbsp;given by <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/doc/app/chapter_4.1.html#pt_surface">pt_surface</a>, <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/doc/app/chapter_4.1.html#sa_surface">sa_surface</a>, <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/doc/app/chapter_4.1.html#ug_surface">ug_surface</a>, and <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/doc/app/chapter_4.1.html#vg_surface">vg_surface</a>.</li><li>Zero salinity flux is used as default boundary condition at the bottom of the sea.</li><li>If switched on, random perturbations are by default imposed to the upper model domain from zu(nzt*2/3) to zu(nzt-3).</li></ul>Relevant new inipar-parameters to be exclusively used for steering ocean runs are <span style="font-family: Courier New,Courier,monospace;">bc_sa_t</span>, <span style="font-family: Courier New,Courier,monospace;">bottom_salinityflux</span>, <span style="font-family: Courier New,Courier,monospace;">sa_surface</span>, <span style="font-family: Courier New,Courier,monospace;">sa_vertical_gradient</span>, <span style="font-family: Courier New,Courier,monospace;">sa_vertical_gradient_level</span>, and <span style="font-family: Courier New,Courier,monospace;">top_salinityflux</span>.<br><br>Salinity (<span style="font-family: Courier New,Courier,monospace;">sa</span>) and potential density (<span style="font-family: Courier New,Courier,monospace;">rho</span>) are included as new 2d/3d output quantities. Vertical profiles of salinity (<span style="font-family: Courier New,Courier,monospace;">sa</span>), salinity fluxes (<span style="font-family: Courier New,Courier,monospace;">w"sa"</span>, <span style="font-family: Courier New,Courier,monospace;">w*sa*</span>, <span style="font-family: Courier New,Courier,monospace;">wsa</span>), and potential density (<span style="font-family: Courier New,Courier,monospace;">rho</span>) can also be output.<span style="font-family: Courier New,Courier,monospace;"></span></td><td style="vertical-align: top;">advec_s_bc, average_3d_data,<br>boundary_conds, buoyancy,<br>check_parameters,&nbsp;data_output_2d,<br>data_output_3d,&nbsp;diffusion_e,<br>diffusivities,&nbsp;flow_statistics,&nbsp;header,<br>init_grid,&nbsp;init_3d_model,&nbsp;modules,<br>netcdf,&nbsp;parin,&nbsp;production_e,<br>prognostic_equations,<br>read_3d_binary,&nbsp;&nbsp;read_var_list,<br>sum_up_3d_data,&nbsp;swap_timelevel,<br>time_integration,&nbsp;user_interface,<br>write_var_list,&nbsp;write_3d_binary<br><br><span style="font-weight: bold;">new:</span><br>eqn_state_seawater,&nbsp;init_ocean</td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">C</td><td style="vertical-align: top;">Inipar-parameter <span style="font-family: Courier New,Courier,monospace;">use_pt_reference</span> renamed <span style="font-family: Courier New,Courier,monospace;">use_reference.</span><br>Internal variable <span style="font-family: Courier New,Courier,monospace;">hydro_press</span> renamed <span style="font-family: Courier New,Courier,monospace;">hyp</span>, routine <span style="font-family: Courier New,Courier,monospace;">calc_mean_pt_profile</span> renamed <span style="font-family: Courier New,Courier,monospace;">calc_mean_profile</span>.<br><br>The format of the <span style="font-family: Courier New,Courier,monospace;">RUN_CONTROL</span> file has been adjusted for ocean runs.<br><br>Defaults of <span style="font-family: Courier New,Courier,monospace;">.._vertical_gradient_levels</span> changed from <span style="font-style: italic;">-1.0</span> to <span style="font-style: italic;">-9999999.9</span>.</td><td style="vertical-align: top;">advec_particles,&nbsp;buoyancy,&nbsp;<br>calc_liquid_water_content, <br>check_parameters,&nbsp;diffusion_e,<br>diffusivities,&nbsp;header,<br>init_cloud_physics,&nbsp;modules,<br>production_e,&nbsp;prognostic_equations,<br>run_control</td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">E</td><td style="vertical-align: top;">Bugfix: height above topography instead of height above level k=0 is used for calculating the mixing length (<span style="font-family: Courier New,Courier,monospace;">diffusion_e</span> and <span style="font-family: Courier New,Courier,monospace;">diffusivities</span>).<br><br>Bugfix: error in boundary condition for TKE removed (<span style="font-family: Courier New,Courier,monospace;">advec_s_bc</span>).</td><td style="vertical-align: top;">advec_s_bc,&nbsp;diffusion_e,&nbsp;diffusivities</td></tr><tr><td style="vertical-align: top;">05/10/07</td><td style="vertical-align: top;">SR</td><td style="vertical-align: top;">3.4</td><td style="vertical-align: top;">N</td><td style="vertical-align: top;">This version allows runs for a coupled atmosphere-ocean LES.<br><br>Coupling frequency is controlled by new d3par-parameter <span style="font-family: Courier New,Courier,monospace;">dt_coupling</span>, the coupling mode ('<span style="font-style: italic;">atmosphere_to_ocean</span>' or '<span style="font-style: italic;">ocean_to_atmosphere</span>') for the respective processes is read from environment variable <span style="font-family: Courier New,Courier,monospace;">coupling_mode</span>, which is set by the mpiexec-command in <span style="font-weight: bold;">mrun</span>. Communication between the two models is handled by the intercommunicator <span style="font-family: Courier New,Courier,monospace;">comm_inter</span>. Local files opened by the ocean model get the additional suffic "<span style="font-family: Courier New,Courier,monospace;">_O</span>".
2317Saturation at k=nzb is assumed for the atmosphere coupled to ocean.
2318Usage of the coupled model is described in the new section 3.8.<br><br>A momentum flux can be set as top boundary condition using the new inipar parameters <span style="font-family: Courier New,Courier,monospace;">top_momentumflux_u|v</span>.<br><br>Non-cyclic boundary conditions can be used along all horizontal directions.<br><br>Quantities w*p* and w"e can be output as vertical profiles.<br><br>Initial profiles are reset to constant profiles in case that <span style="font-family: Courier New,Courier,monospace;">initializing_actions</span> /= '<span style="font-style: italic;">set_constant_profiles</span>'. (init_rankine)<br><br>Optionally calculate km and kh from initial TKE e_init.<br><br><span style="font-weight: bold;">Attention:</span> <br>
2319The format of the testresult-file (run control output) has changed
2320due to this modification.</td><td style="vertical-align: top;">boundary_conds,
2321check_open, check_parameters, diffusion_u, diffusion_v,
2322flow_statistics, header, init_pegrid, init_rankine, init_3d_model,
2323local_stop, modules, palm, parin, prandtl_fluxes, pres,
2324prognostic_equations, read_var_list, read_3d_binary, swap_timelevel,
2325timestep, time_integration, write_var_list, write_3d_binary<br><br><span style="font-weight: bold;">new:</span><br>surface_coupler</td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">C</td><td style="vertical-align: top;">Remaining variables <span style="font-family: Courier New,Courier,monospace;">iran</span> changed to <span style="font-family: Courier New,Courier,monospace;">iran_part</span> (advec_particles, init_particles).<br><br>In case that the presure solver is not called for every Runge-Kutta substep (<span style="font-family: Courier New,Courier,monospace;">call_psolver_at_all_substeps</span> = <span style="font-style: italic;">.F.</span>),
2326it is called after the first substep instead of the last. In that case,
2327random perturbations are also added to the velocity field after the
2328first substep.<br><br>Initialization of <span style="font-family: Courier New,Courier,monospace;">km</span>, <span style="font-family: Courier New,Courier,monospace;">kh</span> = 0.00001 for <span style="font-family: Courier New,Courier,monospace;">ocean</span> = <span style="font-style: italic;">.T.</span> (for <span style="font-family: Courier New,Courier,monospace;">ocean</span> = <span style="font-style: italic;">.F.</span> it remains 0.01).<br><br>Allow <span style="font-family: Courier New,Courier,monospace;">data_output_pr</span> = '<span style="font-style: italic;">q</span>', '<span style="font-style: italic;">wq</span>', '<span style="font-style: italic;">w"q"</span>', '<span style="font-style: italic;">w*q*</span>' for <span style="font-family: Courier New,Courier,monospace;">humidity</span> = <span style="font-style: italic;">.T.</span> (instead of <span style="font-family: Courier New,Courier,monospace;">cloud_physics</span> = <span style="font-style: italic;">.T.</span>).</td><td style="vertical-align: top;">advec_particles, check_for_restart, check_parameters, init_particles, init_3d_model, time_integration<br></td></tr><tr><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">&nbsp;</td><td style="vertical-align: top;">E</td><td style="vertical-align: top;">Bugs from code parts for non-cyclic boundary conditions are removed:<br>loops for u and v are starting from index <span style="font-family: Courier New,Courier,monospace;">nxlu</span>, <span style="font-family: Courier New,Courier,monospace;">nysv</span>,
2329respectively. The radiation boundary condition is used for every
2330Runge-Kutta substep. Velocity phase speeds for the radiation boundary
2331conditions are calculated for the first Runge-Kutta substep only and
2332reused for the further substeps. New arrays <span style="font-family: Courier New,Courier,monospace;">c_u</span>, <span style="font-family: Courier New,Courier,monospace;">c_v</span>, and <span style="font-family: Courier New,Courier,monospace;">c_w</span>
2333are defined for this purpose. Several index errors are removed from the
2334radiation boundary condition code parts. Upper bounds for calculating <span style="font-family: Courier New,Courier,monospace;">u_0</span> and <span style="font-family: Courier New,Courier,monospace;">v_0</span> (in production_e) are <span style="font-style: italic;">nxr+1</span> and <span style="font-style: italic;">nyn+1</span> because otherwise these values are not available in case of non-cyclic boundary conditions.<br><br>+<span style="font-family: Courier New,Courier,monospace;">dots_num_palm</span> in module user, +module netcdf_control in user_init (both in user_interface)<br><br>Bugfix: wrong sign removed from the buoyancy production term in the case <span style="font-family: Courier New,Courier,monospace;">use_reference</span> = <span style="font-style: italic;">.T.</span> (production_e)<br><br>Bugfix: Error message concerning output of particle concentration (pc) modified (check_parameters).<br><br>Bugfix: Rayleigh damping for ocean fixed.</td><td style="vertical-align: top;">advec_u_pw,
2335advec_u_up, advec_v_pw, advec_v_up, boundary_conds, buoyancy,
2336check_parameters, coriolis, diffusion_u, diffusion_v, header,
2337init_pegrid, init_3d_model, modules, production_e,
2338prognostic_equations, user_interface<br></td></tr>
2339</tbody>
2340</table>&nbsp;<b><blink>Attention:</blink></b>
2341If<tt> make </tt>is not used
2342for
2343compiling,
2344<b>all routines</b> have to be re-compiled after every
2345change
2346to <b>modules.f90!</b>
2347<br>&nbsp;
2348<br>&nbsp;
2349<h2><a name="Kapitel2.0"></a>2.0&nbsp; How
2350to change the model source
2351code</h2>
2352&Auml;nderungen, Erweiterungen oder Fehlerkorrekturen am Modellcode
2353(gemeint
2354sind alle Modellteile, die nicht zur benutzereigenen Software
2355geh&ouml;ren)
2356erfordern vom jeweiligen Benutzer Gruppenzugeh&ouml;rigkeit zur
2357Gruppe
2358<tt>"palm"</tt>.
2359Zu dieser Gruppe geh&ouml;ren alle Benutzer, die aktiv an der
2360Modellentwicklung
2361mitwirken (im weiteren "Modellarbeitsgruppe" genannt).
2362<p>Die einzelnen Quelltextdateien des Modells werden mit RCS
2363(Revision
2364Control System) verwaltet. Grundlegende Kenntnisse &uuml;ber dieses
2365System
2366werden im weiteren vorausgesetzt.
2367</p><p>&Auml;nderungen am Modellcode erfordern die
2368Durchf&uuml;hrung
2369bestimmter
2370Aktionen in einer festgelegten Reihenfolge, die nun beschrieben werden
2371sollen.
2372</p><ol> <li>Konzeptplanung.</li> <li>Diskussion
2373der geplanten &Auml;nderungen in der
2374Modellarbeitsgruppe.</li> <li>Auschecken der
2375ben&ouml;tigten Quelltextdateien,
2376Durchf&uuml;hrung der
2377&Auml;nderungen und Test des Modells. Die Modul-Datei <tt>modules.f90</tt>
2378sollte nur dann ausgecheckt werden, wenn dort aufgef&uuml;hrte
2379Variablen
2380ver&auml;ndert werden. Neu geschaffene Variablen sollten
2381w&auml;hrend
2382der
2383Testphase in ein ebenfalls tempor&auml;r neu zu schaffendes Modul
2384geschrieben
2385werden, das von den jeweiligen Programmteilen benutzt werden muss
2386(Einf&uuml;gen
2387entsprechender USE-Anweisungen). Die in den einzelnen Dateien
2388durchgef&uuml;hrten
2389Arbeiten m&uuml;ssen in den Kopfzeilen (unter "Aktuelle
2390Aenderungen")
2391der
2392Dateien vermerkt werden. Dies tut man am besten noch <b>bevor</b>
2393man
2394die
2395eigentlichen &Auml;nderungen durchf&uuml;hrt (sonst droht das
2396Vergessen...).</li> <li>Zum Abschlu&szlig; der Tests
2397sollte mit dem Modell eine
2398Kontrollrechnung
2399durchgef&uuml;hrt und die Ergebnisse mit denen des sogenannten
2400Standardlaufes
2401verglichen werden. Diese Rechnung ist mit der <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/INSTALL/.mrun.config">Konfigurationsdatei</a>
2402und der <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/INSTALL/example_p3d">Parameterdatei</a>
2403durchzuf&uuml;hren, die auch zum Testen der Modellinstallation
2404verwendet
2405werden (s. <a href="Anwendung/Kapitel_5.0.html">Kapitel
24065.0</a> der
2407Anwenderdokumentation).
2408Die Ergebnisdatei mit dem lokalen Namen <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM-1/Dokumentationen/Anwendung/Kapitel_3.4.html#RUN_CONTROL">RUN_CONTROL</a>
2409ist dann mit der <a href="http://www.muk.uni-hannover.de/%7Eraasch/PALM_group/INSTALL/example_rc">Beispiel-Ergebnisdatei</a>
2410zu vergleichen (Hinweis: Kopien der Konfigurationsdatei, Parameterdatei
2411und Beispiel-Ergebnisdatei erh&auml;lt man durch anklicken der
2412entsprechenden
2413Links mit der linken Maustaste bei gleichzeitig gedr&uuml;ckter
2414&lt;SHIFT&gt;-Taste).
2415Werden Abweichungen zwischen den beiden Ergebnisdateien festgestellt,
2416so
2417ist unbedingt eine Diskussion in der Modellarbeitsgruppe notwendig.</li>
2418<li>Nach Durchf&uuml;hrung der Tests m&uuml;ssen bei
2419Bedarf die
2420vorl&auml;ufig
2421im tempor&auml;ren Modul eingetragenen Variablen in die
2422eigentlichen
2423Module
2424des Modells &uuml;bertragen werden. Dazu ist die Modul-Datei <tt>modules.f90</tt>
2425auszuchecken. Nach Eintrag der Variablen sollte das Modell noch einmal
2426testweise &uuml;bersetzt werden, um Sytaxfehler
2427auszuschlie&szlig;en
2428(evtl.
2429auch noch einmal einen Probelauf starten). Die Verwendung des
2430tempor&auml;ren
2431Moduls ist aus allen entsprechenden Programmteilen zu entfernen.</li>
2432<li>Vergabe einer neuen Versionsnummer (Variable <tt>version</tt>
2433im
2434Modul <tt>steuer</tt>),
2435Bsp.: 2.3c. Kleinere &Auml;nderungen werden durch
2436angeh&auml;ngten
2437kleinen
2438Buchstaben kenntlich gemacht, gr&ouml;&szlig;ere
2439&Auml;nderungen durch
2440die Zahl hinter dem Punkt. Eine Inkrementierung der Zahl vor dem Punkt
2441geschieht nur bei ganz grunds&auml;tzlichen Revisionen des Modells,
2442die
2443weite Teile des Modellcodes betreffen.</li> <li>Nun
2444k&ouml;nnen die ausgecheckten Dateien wieder eingecheckt
2445werden.
2446Vor
2447dem Einchecken sind in den Dateien die Vermerke unter "Aktuelle
2448Aenderungen"
2449zu entfernen und beim check-in - Kommando als Log-Text anzugeben. Sie
2450erscheinen
2451dann in der jeweiligen Datei unter "Fruehere Aenderungen" zusammen mit
2452der vom RCS-System vergebenen Versionsnummer (daf&uuml;r sorgt die
2453$Log:
2454... $ - Zeile, die in jeder Quelltextdatei steht).</li> <li>Eine
2455Zusammenfassung der durchgef&uuml;hrten Arbeiten ist im <a href="#Kapitel1.0">Kapitel
24561.0</a> einzutragen.</li> <li>Die
2457Modellarbeitsgruppe ist &uuml;ber den Abschlu&szlig; der
2458durchgef&uuml;hrten
2459Arbeiten zu informieren.</li>
2460</ol><h2>
2461<a name="Kapitel3.0"></a>3.0&nbsp; Description
2462of selected parts of the
2463model source code</h2>
2464<b>This chapter is still under construction (Feb. 04).</b>
2465<p>Dieser Abschnitt verweist auf vorhandene Beschreibungen der
2466genauen
2467Funktionsweise einzelner, spezieller Modellteile. Dazu geh&ouml;rt
2468z.B.
2469die Beschreibung bestimmter numerischer Verfahren (auch ihr
2470theoretischer
2471Hintergrund), die Erkl&auml;rung besonderer Prinzipien bei der
2472Parallelisierung
2473oder Erl&auml;uterungen zur Vorgehensweise bei der L&ouml;sung
2474bestimmter
2475Aufgaben (z.B. der Berechnung horizontal gemittelter
2476Gr&ouml;&szlig;en).
2477<br>Die Beschreibungen liegen in jeweils getrennten Dokumenten,
2478in der
2479Regel als TeX- und/oder Postscript-Datei vor und sind &uuml;ber die
2480folgenden
2481Links zug&auml;nglich.
2482<br>&nbsp;
2483</p><ul> <li> <a name="UPS"></a>upstream-spline
2484advection scheme ( <a href="Upstream_Spline/ups.ps">.ps</a>
2485)</li> <li> <a name="Cloud_physics"></a>cloud
2486physics module ( <a href="Cloud_physics/wolken.pdf">.pdf</a>
2487)</li> <li> <a name="Bitkompression"></a>Datenkompression
2488mit dem Verfahren
2489der <a href="Bitkompression/kompression.html">Bitverschiebung</a></li>
2490<li> <a name="Runge-kutta"></a>Runge-Kutta
2491time integration scheme ( <a href="numerik.heiko/zeitschrittverfahren.pdf">.pdf</a>
2492)</li>
2493</ul><br>
2494&nbsp;
2495<br>&nbsp;
2496<br>&nbsp;
2497<br>&nbsp;
2498<br>&nbsp;
2499<br>&nbsp;
2500<br>&nbsp;
2501<br>&nbsp;
2502</body></html>
Note: See TracBrowser for help on using the repository browser.