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

Last change on this file since 62 was 62, checked in by raasch, 18 years ago

Id string added to all html files

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