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

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

Id string added to all html files

  • Property svn:keywords set to Id
File size: 130.2 KB
RevLine 
[5]1<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
2<html><head>
[62]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;
[5]6</font>a
7<b>pa</b>rallelized
8<b>L</b>ES <b>m</b>odel
[62]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%">
[5]20<p><font size="+2">Table of contents</font>
[62]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
[5]28of
29the model source code <br>
30&nbsp;</p>
[62]31</ul><b>Please note: Parts of this document are still in
32German. We
[5]33apologize
34for any inconvenience.</b>
[62]35<br>&nbsp;
36<h2><a name="Kapitel1.0"></a>1.0&nbsp;
37History of changes</h2>
[5]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.
[62]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
[5]55(initializing_actions, end_time,
56fcl_factor, use_prior_plot1d_parameters), zus&auml;tzliche
57&Uuml;berpr&uuml;fung
[62]58von Parametern auf Zul&auml;ssigkeit (prandtl_layer, psolver, nx,
59ny,
[5]60nz,
[62]61fcl_factor), H&ouml;he der Schnittebenen der Horizontalschnitte
62wird
[5]63auf
[62]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
[5]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
[62]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,
[5]80init_pegrid,
81local_getenv, local_system, local_tremain, local_tremain_ini, poisfft</td>
[62]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
[5]85Vorgehensweise von
[62]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
[5]90ausserhalb der k-Schleife,
[62]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
[5]95(Piascek-Williams)
[62]96bei k=1. Terme werden nun &uuml;berall gleich berechnet. Evtl.
97leichte
[5]98Erh&ouml;hung der Varianzen in Oberfl&auml;chenn&auml;he.</td>
[62]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
[5]103noch bei
[62]104k=1. Unrealistische sekund&auml;re Maxima in den Km-Profilen
105oberhalb
[5]106der
[62]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
[5]113simulierter
[62]114Zeit bei Fortsetzungsl&auml;ufen korrigiert.&nbsp; <p>Berechnung
115von cross_uxmin(1) und cross_uxmax(1) aus den
[5]116Werten von
[62]117ug und vg entfernt. Lieferte falsche Wertebereiche f&uuml;r Plots
118von
[5]119Vertikalprofilen,
120wenn im ersten Koordinatenkreuz nicht die Windgeschwindigkeiten
121gezeichnet
[62]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
[5]126der Initialparameter
127rif_max und rif_min einstellbar (Werte waren bisher fest auf -2.0, +1.0
[62]128eingestellt).</td> <td>check_parameters, header,
129init_1d_model, modules, parin,
[5]130prandtl_fluxes,
[62]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 =
[5]134"<i>set_constant_profiles</i>"
[62]135und "<i>set_1d-model_profiles</i>" korrigiert.&nbsp; <p>2D-Plotausgabe
136von u* und theta* korrigiert. Hier wurden
[5]137bisher falsche
[62]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
[5]144Datei RUN_CONTROL
[62]145um einige Kommastellen erweitert.&nbsp; <p>Lieferung von
146ausf&uuml;hrlicheren Informationen bei
[5]147Programmabbruch
[62]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
[5]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
[62]157des Schwerkraftvektors. Dadurch erh&auml;lt auch die u-Komponente
158der
[5]159Windgeschwindigkeit
[62]160einen Anteil der Auftriebskraft.&nbsp; <p>Diese
161Implementierung ist noch nicht abgeschlossen. Die
[5]162Simulation von
163Kaltluftabfl&uuml;ssen erfordert bisher noch Eingriffe "von Hand".</p>
[62]164</td> <td>buoyancy, check_parameters, header, leap_frog,
165modules,
[5]166parin, prandtl_fluxes,
[62]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
[5]170I/O auf
[62]171T3E-Rechnern.&nbsp; <p>Ermittelung wahrer I/O-Zeiten
172f&uuml;r bin&auml;re
[5]173Ein-/Ausgabe auf
[62]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
[5]181zwingend den
182Einsatz der MPI-Version mpt.1.2.0.1. In dieser neuen Version tritt auch
[62]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
[5]189von Impuls
[62]190und skalaren Gr&ouml;&szlig;en (neue UP's, s. rechts).
191Berechnung von
[5]192Variablen
[62]193f&uuml;r spezielle Advektionsverfahren in eigenst&auml;ndiges
194UP
[5]195ausgelagert
[62]196(<tt>init_advec</tt> + eigenes Modul <tt>advection</tt>).
197Reines
[5]198Euler-/Upstream-Verfahren
[62]199kann gerechnet werden.&nbsp; <p>Schnelle bin&auml;re I/O
200(s. 15/12/98) wieder abgeschaltet, da
[5]201Dateien
[62]202nicht wieder einlesbar sind. Druckst&ouml;rung (p) wird zu Beginn
203auf 0
[5]204gesetzt, damit sie keine Tendenzen im ersten Zeitschritt hervorruft.</p>
[62]205</td> <td>advec_s_bc, check_open, check_parameters,
206flow_statistics,
[5]207header,
208init_3d_model, init_grid, leap_frog, modules, parin, plot_2d, plot_ts,
[62]209read_var_list, timestep, write_3d_binary, write_var_list&nbsp; <p><b>Neu:</b>
210<br>
[5]211advec_s_ups, advec_u_ups, advec_v_ups, advec_w_ups, init_advec,
212long_filter,
[62]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
[5]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>
[62]225<td>check_parameters, diffusion_e, diffusion_pt, diffusivities,
[5]226header,
227init_advec, long_filter, modules, production_e, spline_x, spline_y,
[62]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
[5]232TKE,
233Korrektur der Dichteberechnung (war falsch bei Galilei-Transformation)</td>
[62]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
[5]240des
241Upstream-Verfahrens
[62]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,
[5]247modules,
[62]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.
[5]253Beim
254bin&auml;ren Einlesen d&uuml;rfen Records nicht mit dem Trick "<tt>READ
[62]255(..) idum</tt>" &uuml;berlesen werden. Zeitmessungen auf T3E
256erfolgen
[5]257jetzt
[62]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
[5]264Wahl der
265numerischen Begrenzer f&uuml;r das Upstream - Spline - Verfahren.</td>
[62]266<td>check_parameters, header, init_3d_model, leap_frog, modules,
[5]267parin,
[62]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
[5]275m&ouml;glich.
276Ausgabe erfolgt im dvr-Format. Bisher noch nicht nutzbar, da noch
277Einstellm&ouml;glichkeiten
[62]278f&uuml;r die Partikelquelle(n) fehlen. <b>Wichtig:</b>
279Die Benutzung
[5]280der
281vtk-Software erfordert die zus&auml;tzliche mrun-Option <tt>-g</tt>.
282Das
[62]283Hauptprogramm <tt>parles</tt> wird in diesem Fall zum
284Unterprogramm
[5]285und
[62]286von einem c++-Programm aus aufgerufen.</td> <td>header,
287init_3d_model, init_pegrid, leap_frog, modules,
[5]288parin, parles,
[62]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
[5]295umgestellt.
[62]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
[5]301t3eh
302m&ouml;glich. Ausgabe erfolgt im dvr-Format. Bisher noch nicht
303allgemein
304nutzbar, da noch diverse manuelle Eingriffe n&ouml;tig sind.</td>
[62]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
[5]312zwar nicht
[62]313nur bei&nbsp; <tt>k = nzb, nzt+1</tt> sondern auch
314bei&nbsp; <tt>k =
[5]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
[62]320den Druckl&ouml;ser modifiziert. Soweit bis jetzt abzusehen, hat
321diese
322&Auml;nderung nur minimale Auswirkungen auf den Prognoseverlauf.
323Evtl.
[5]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>
[62]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
[5]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>
[62]338<p>3D-Feldvariablen (u, v, w, pt, e, km, kh) sowie einige
[5]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
[62]346die jeweilige Neuzuordnung der Targets entf&auml;llt das
347Umspeichern
[5]348der
[62]349Zeitebenen komplett (Zeitersparung: ca. 5% der
350Gesamtrechenzeit).&nbsp; <br>
[5]351Die Umordnung der Zeitebenen wurde ins neue UP <tt>swap_timelevel</tt>
[62]352ausgelagert.&nbsp; <br> <b>Wichtig:</b> Die
353&Uuml;bersetzungszeiten haben durch die
[5]354Einf&uuml;hrung
355der Pointer t.w. sehr deutlich zugenommen (<tt>leap_frog</tt>
356ben&ouml;tigt
[62]357jetzt z.B. ca. 60 Sekunden). Au&szlig;erdem ben&ouml;tigt der
358Compiler
[5]359jetzt wesentlich mehr Speicher. Der "memory"-Parameter in den
360Konfigurationsdateien
361(.mrun.config, .al.config) muss nun mindestens den Wert 60 (MB) (t3eh,
[62]362t3ej2) bzw. 45 (t3eb) und 96 (vpp) haben.&nbsp; <br> <b>Achtung:</b>
363bislang wurde diese &Auml;nderung nur f&uuml;r
[5]364das
[62]365reine Leapfrog-Verfahren getestet!&nbsp; </p> <p>Neue
366Laderoption "<tt>-D preset=nan</tt>" empfohlen (s.
[5]367Beispiel-Konfigurationsdatei).
[62]368Ebenso empfehlenswert f&uuml;r Debug-L&auml;ufe: Compileroption
369"<tt>-ei</tt>".
[5]370Diese bewirkt einen Programmabbruch, falls mit nicht initialisierten
371Variablen
372gearbeitet wird (ist aber zeitaufwendig in der Ausf&uuml;hrung!).</p>
[62]373</td> <td>boundary_conds, check_parameters, header,
374init_3d_model,
[5]375leap_frog,
[62]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
[5]381aufgerufen. Dies
382geschah bisher f&auml;lschlicherweise erst danach, sodass der
383Zeitfilter
[62]384asymmetrisch arbeitete.&nbsp; <br> <b>Achtung:</b>
385diese &Auml;nderung hat Auswirkungen auf den
[5]386Prognoseverlauf.
387Die Testergebnis-Datei wurde entsprechend ge&auml;ndert.</td>
[62]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>
[5]391Der Asselin-Filter im 1D-Modell wird nun auch vor der Umordnung der
[62]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 -
[5]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
[62]403Impulsfl&uuml;sse.&nbsp; </p> <p>Bei der
404Berechnung der Diffusion der Temperatur werden die
[5]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
[62]412Anwachsen der Grenzschicht mit der Zeit.&nbsp; </p> <p><b>Achtung:</b>
413diese &Auml;nderungen haben Auswirkungen auf
[5]414den Prognoseverlauf.
[62]415Die Testergebnis-Datei wurde entsprechend ge&auml;ndert.</p> </td>
416<td nosave="" valign="top">init_1d_model,
417asselin_filter,
[5]418diffusion_u, diffusion_v,&nbsp; <br>
[62]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
[5]426&Auml;nderungen
427in zahlreichen Programmteilen notwendig (Beschreibung <a href="#Cloud_physics">siehe
428unten</a> ). Im einzelnen wurden folgende Unprogramme
[62]429ge&auml;ndert:&nbsp; <br> <b>modules</b>:&nbsp;
430<br>1) Bereitstellung neuer 3D-, 2D- und 1D-Felder f&uuml;r
431die Prognose
[5]432des Gesamtwassergehaltes&nbsp; <br>
4332) "cloud_parameters" als neues Modul mit wolkenphysikalischen
[62]434Variablen&nbsp; <br> <b>parin: </b>Initialisierungsparameterliste
435wurde erweitert
436(s.u.)&nbsp; <br> <font color="#000000"><b>read_var_list,
437write_var_list,
[5]438write_3d_binary: </b>In/Output
439der neuen Initialisierungsparamter und Felder f&uuml;r
[62]440Fortsetzungsl&auml;ufe&nbsp;</font> <br> <font color="#000000"><b>check_parameters:</b>
441Initialisierung
[5]442des
[62]443Feuchteprofils und Ausgabe von neuen Vertikalprofilen:&nbsp;</font>
444<br> <font color="#ff0000">vpt</font><font color="#000000">: virtuelle
[5]445poteniellen
[62]446Temperatur,</font> <br> <font color="#ff0000">lpt</font><font color="#000000">:
[5]447potentielle
[62]448Fl&uuml;ssigwassertemperatur,</font> <br> <font color="#ff0000">q</font><font color="#000000">:
449Gesamtwassergehalt,</font> <br> <font color="#ff0000">qv</font><font color="#000000">:
[5]450spezifische
[62]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">:
[5]453Auftriebsfluss (subskalig, aufgel&ouml;st, gesamt),</font> <br>
[62]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
[5]461Wolkenphysik
462eingef&uuml;gt, au&szlig;erdem Formatnummern erweitert um Platz
463f&uuml;r
[62]464weitere Ausgaben zu schaffen&nbsp; <br> <b>leap_frog:</b>
465<br>
[5]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>
[62]4703) veraenderter Aufruf von diffusivities&nbsp; <br> <b><tt>b</tt>oundary_conds,
471asselin_filter, swap_timelevel,
[5]472flow_statistics: </b>Anpassung
[62]473an Feuchtebehandlung&nbsp; <br> <b>plot2d, plot3d</b>:
474Ausgabem&ouml;glichkeiten von q und ql <br> <b>buoyancy</b>:
475Anpassung des Autriebstermes an
[5]476Feuchtebehandlung
477durch neue &Uuml;bergabeparameter: Temperatur + Nummer des
478entsprechenden
[62]479mittleren Temperaturprofils&nbsp; <br> <b>diffusion_e</b>:
480Anpassung der Mischungswegberechnung an
[5]481Feuchtebehandlung
[62]482durch Variation der &Uuml;bergabeparameter&nbsp; <br> <b>production_e</b>:
483TKE-Produktion durch Auftriebskr&auml;fte an
[5]484Feuchtebehandlung
[62]485angepasst&nbsp; <br> <b>diffusivities</b>:
486siehe diffusion_e&nbsp; <br> <b>prandtl-fluxes</b>:
487Prandtl-Schicht fuer den
[5]488Gesamtwassergehalt
[62]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
[5]495Gleichungen
[62]496aus leap_frog, zus&auml;tzliche porgnostische Gleichung
497f&uuml;r den
498Gesamtwassergehalt&nbsp; <br> <b>diffusion_s</b>:
499Berechnung der Diffusion skalarer
[5]500Gr&ouml;&szlig;en
501(Temperatur und Gesamtwassergehalt), ersetzt diffusion_pt&nbsp; <br>
[62]502<b>calc_liquid_water_content</b>: Berechnung des
503Fl&uuml;ssigwassergehalts&nbsp; <br> <b>calc_radiation</b>:
504Parametrisierung langwelliger
[5]505Strahlungsprozesse
506&uuml;ber des Schema der effektiven Emissivit&auml;t&nbsp; <br>
[62]507<b>calc_precipitation</b>:Parametrisierung von
[5]508Niederschlagsprozessen
[62]509mit Hilfe eines vereinfachten Kesslerschemas&nbsp; <br> <b>impact_of_latent_heat</b>:
510Ber&uuml;cksichtigung der durch
[5]511Niederschlagsprozesse
512zur&uuml;ckbleibenden latenten Waerme innerhalb eines
[62]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
[5]551erzeugt
552wurden, sind aufgrund der erweiterten Initialisierungsparameterliste
553INKOMPATIBEL
554zu den Einleseroutinen der Version 2.0. Ein Update auf Version 2.0
555sollte
[62]556deshalb nach Abschluss eines kompletten Modelllaufs erfolgen.&nbsp;
557</p> <p><b>Achtung:</b> diese
558&Auml;nderungen haben Auswirkungen auf
[5]559den Prognoseverlauf.
[62]560Die Testergebnis-Datei wurde entsprechend ge&auml;ndert.</p> </td>
561<td nosave="" valign="top">modules, parin,
562read_var_list,
[5]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,
[62]568write_3d_binary&nbsp; <p><b>Neu:</b> <br>
[5]569init_cloud_physics, prognostic_equations, diffusion_s,
570calc_liquid_water_content,
571calc_radiation, calc_precipitation, impact_of_latent_heat, comute_vpt</p>
[62]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
[5]574noch kleine
[62]575&Auml;nderungen an den Unterprogrammen diffusion_e, production_e
576und
[5]577diffusivities
578vorgenommen. In allen genannten&nbsp; <br>
579Unterprogrammen wurde bisher ein strengeres Kriterium zur Bestimmung
[62]580der Schichtungsverh&auml;ltnisse verwendet. Ein Modellvergleich
581zeigte
[5]582jedoch, dass dadurch die Diffusion im Bereich der Inversion zu gross
[62]583wird.&nbsp; <p>Eine weitere Erg&auml;nzung betrifft die
[5]584Advektionsverfahren:&nbsp; <br>
[62]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
[5]589den Prognoseverlauf.
[62]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
[5]596dvrp-Software.
597Grafik-Ausgaben im dvr-Format sind mittlerweile begrenzt nutzbar
598(Isooberfl&auml;chen
[62]599sind darstellbar, siehe neue Laufparameter&nbsp; <tt>dt_dvrp,
600threshold</tt>),
[5]601es wird aber in der Anwendung in naher Zukunft noch diverse
602&Auml;nderungen
603geben. Partikelausgabe vorerst nicht mehr m&ouml;glich (Verlagerung
[62]604schon).</td> <td>header, init_particles, init_3d_model,
605leap_frog, modules,
[5]606parin, parles,
[62]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
[5]615sehr
616viele SENDRECV-Aufrufe eingespart.&nbsp; <br>
[62]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
[5]624&Auml;nderungen
625am Header-Format wurde Testergebnis-Datei ge&auml;ndert.</td>
[62]626<td>advec_s_bc, check_open, header, init_pegrid, modules, parin,
[5]627read_var_list,
[62]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
[5]632Vorgabe
633eines stabil geschichteten Temperaturprofils mit konstantem Gradienten.
634Hinzuschalten von Feuchte funktioniert f&uuml;r Hangrechnungen noch
[62]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
[5]641gesetzt.
642Ein Nichtsetzen der Randbedingungen f&uuml;hrte zu Fehlern bei der
643Ausgabe
[62]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
[5]648von <tt>prognostic_equation</tt>
[62]649aufgerufen werden und an die Pointer-Variablen &uuml;bergeben
650werden,
[5]651sind
652jetzt explizite Interfaces vereinbart (neues Modul <tt>pointer_interfaces</tt>).
653Auch im Vereinbarungsteil der entsprechenden Unterprogramme sind diese
[62]654&Uuml;bergabeparameter jetzt aus Konsistenzgr&uuml;nden (und
655weil es
[5]656sonst
657Laufzeitfehler gibt) als Pointer-Variablen deklariert. Mit dieser
658&Auml;nderung
[62]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;
[5]663reduziert.&nbsp; <br>
664Im Rahmen dieser &Auml;nderungen wurde auch an diffusion_e ein
665Hilfsfeld
666weniger &uuml;bergeben.&nbsp; <br>
[62]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
[5]671Spalte
672mit der Gesamtdivergenz nach Aufruf des Druckl&ouml;sers).</td>
[62]673<td>advec_s_bc, buoyancy, diffusion_e, diffusion_s, diffusion_u,
[5]674diffusion_v,
675diffusion_w, disturb_field, modules, production_e, prognostic_equations</td>
[62]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
[5]679Fl&uuml;ssigwassergehalt
[62]680werden gesetzt. Dies w&auml;re bereits nach Einf&uuml;hrung der
681Pointer
[5]682zwingend notwendig gewesen. Rechnungen mit vorgegebener
683Oberfl&auml;chentemperatur
[62]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
[5]688k=nzb und
689k=nzt+1 berechnet, um die Randwerte auch f&uuml;r Ausgabezwecke
[62]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,
[5]694die zwar
[62]695zum Modell geh&ouml;ren, standardm&auml;&szlig;ig aber
696nicht mit
[5]697&uuml;bersetzt
698werden, um so unter anderem Kompilationszeit einzusparen. Siehe neues
699Kapitel
[62]7003.7 in der Modelldokumentation.&nbsp; <p>Einsatz der
701dvrp-Software wurde vollst&auml;ndig
[5]702&uuml;berarbeitet.
703Sie ist nun als Software-Paket optional im Modell einsetzbar. Siehe
704&uuml;berarbeitetes
[62]705Kapitel 4.5.6 in der Modelldokumentation.&nbsp; </p> <p>Die
706Prognose der Partikelverlagerung ist ebenfalls in ein
[5]707optionales
[62]708Software-Paket ausgelagert.</p> </td> <td>advec_particles,
709header, init_3d_model, init_dvrp,
[5]710init_particles,
711init_pegrid, modules, parin, parles, plot_dvrp, prognostic_equations,
712read_var_list,
[62]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
[5]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>
[62]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.
[5]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>
[62]729<td>advec_particles, check_cpu_time, check_open, cpu_auswertung,
[5]730init_1d_model,
731init_3d_model, init_particles, modules.f90, parin, parles, plot_2d,
[62]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,
[5]744package_parin,
[62]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>
[5]750wurde deshalb von <tt>calc_spectra.f90</tt> nach <tt>modules.f90</tt>
751geschoben
[62]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
[5]755Verwendung
756einer Prandtl-Schicht vorgegeben werden (neuer
[62]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>
[5]762Modell kann auf DEC-Workstations eingesetzt werden (-D <tt>dec</tt>).&nbsp;
[62]763<br>Zus&auml;tzliche Zeitmessungen mit dvrp-Software.
764Schreiben von
[5]765Partikel-Informationen
766ist optional (neuer Parameter <tt>write_particle_informations</tt>).</td>
[62]767<td>advec_particles, calc_spectra, check_parameters,
[5]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;
[62]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>
[5]777fehlte in disturb_field.&nbsp; <br>
778Wertebereich von theta* in Prandtl-Fluxes eingeschr&auml;nkt, weil
[62]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
[5]783Feuchte),
784dazu neuer Initialisierungsparameter <tt>passive_scalar</tt>.&nbsp;
[62]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,
[5]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,
[62]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.
[5]798Version vom
79925/01/01 brach deswegen bei Fortsetzungsl&auml;ufen ab.&nbsp; <br>
[62]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.
[5]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
[62]812von <tt>pres, advec_s_bc, poisfft, production_e, sor </tt>sowie
813den
[5]814Spline-Unterprogrammen).
815Der Long-Filter wurde in das Upstream-Spline-Verfahren integriert. Da
816der
817Zeitfilter jetzt direkt in der prognostischen Gleichung angewendet wird
[62]818(bisher geschah dies erst nach Aufruf des Druckl&ouml;sers), haben
819sich
[5]820die Zahlen in der Testergebnis-Datei ge&auml;ndert. Die mittleren
821Profile
[62]822sind aber unbeeinflusst.&nbsp; <p>Eine weitere kleinere
823&Auml;nderung der Testergebnis-Daten
[5]824wird dadurch
825verursacht, dass jetzt der Parameter <tt>adjust_mixing_length</tt>
826defaultm&auml;&szlig;ig <tt>.FALSE.</tt>
[62]827ist und der Mischungsweg grunds&auml;tzlich zus&auml;tzlich
828auf&nbsp; <tt>0.7
[5]829* zu</tt>&nbsp;&nbsp; begrenzt wird. Falls <tt>adjust_mixing_length=T</tt>,
[62]830wird jetzt der Mischungsweg in <tt>diffusivities</tt>
831analog zu <tt>diffusion_e</tt>
[5]832an allen Gitterpunkten modifiziert. <b>Achtung: </b>Diese
833&Auml;nderungen
[62]834k&ouml;nnen bei anderen Simulationen t.w. erhebliche Auswirkungen
835auf
[5]836die
[62]837oberfl&auml;chennahen Ergebnisse haben.&nbsp; </p> <p><b>Kleinere
838&Auml;nderungen:</b> In <tt>init_cloud_physics</tt>
[5]839wird
[62]840der Wert der Variablen <tt>surface_pressure</tt> in hPa
841belassen
[5]842(bisher
843Umwandlung in Pa).&nbsp; <br>
844Die Namelist-Namen der Software-Pakete sind&nbsp; t.w.
845ge&auml;ndert.&nbsp; <br>
[62]846Unit 14 (bin&auml;re Ausgabe f&uuml;r
847Fortsetzungsl&auml;ufe) wird
[5]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
[62]856Galilei-Transformation.&nbsp; </p> <p>Restliche
857deutsche Variablen-, Unterprogramm- und Modulnamen
[5]858wurden
859ins Englische &uuml;bersetzt. Davon sind fast alle Programmteile
860betroffen
[62]861(nicht in rechter Spalte aufgef&uuml;hrt).</p> </td> <td>advec_particles,
862advec_s_bc, advec_s_ups, advec_u_ups,
[5]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,
[62]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
[5]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,
[62]887damit die durch sie vereinbarten Variablen w&auml;hrend der
888Rechnung in
889keinem Fall undefiniert werden k&ouml;nnen (diese Gefahr besteht
890z.B.
[5]891auf
[62]892SGI-Origin-Maschinen).</td> <td>advec_particles, header,
893init_dvrp, init_particles,
[5]894modules.f90, package_parin,
[62]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,
[5]904init_pegrid, modules,
[62]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
[5]910Schw&auml;nzen
911versehen werden. Die Ausgabe der dvrp-Plotdaten durch einen separaten
912PE
[62]913ist m&ouml;glich (mrun-Option "<tt>-p dvrp_graphics+1PE</tt>").
914Der
[5]915Kommunikator <tt>MPI_COMM_WORLD</tt>&nbsp;
[62]916wurde deshalb durch&nbsp; <tt>comm_palm</tt>&nbsp;
917ersetzt.&nbsp; <p>Reduzierung des Mischungsweges im
918Wandbereich kann wahlweise
[5]919abgeschaltet
920werden. F&uuml;r km und kh wird jetzt eine Neumann-Randbedingung am
921unteren
922Rand verwendet. Die TKE-Energieproduktionsberechnung durch Scherung des
[62]923Grundstroms am unteren Rand wurde verbessert.&nbsp; </p> <p>Generelle
924Verwendung der bodennahen vertikalen
[5]925Impulsfl&uuml;sse in
926den Diffusionstermen von u und v, immer wenn diese als Randbedingung
927vorgegeben
[62]928sind (gem&auml;&szlig; <tt>use_surface_fluxes</tt>,
929- bisher wurde
[5]930dies
931nur bei eingeschalteter Prandtl-Schicht gemacht). Schubspannungen
932k&ouml;nnen
933jetzt als Randbedingungen vorgegeben werden (allerdings unter
934zuhilfenahme
[62]935benutzereigener Software).&nbsp; </p> <p>Zus&auml;tzliche
936Schnittstellen f&uuml;r benutzereigene
[5]937Software in
[62]938allen Tendenztermen, in <tt>flow_statistics,</tt> und
939f&uuml;r
[5]940Partikel-
941bzw. dvrp-Programmteile (Bestimmung von Partikeleigenschaften,
942Festlegung
[62]943von Farbtabellen).&nbsp; </p> <p><b>Achtung: </b>Diese
944&Auml;nderungen k&ouml;nnen bei
[5]945Simulationen mit
[62]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,
[5]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>
[62]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
[5]965Energieproduktionsterme m&ouml;glich.
[62]966St&ouml;rdruck wird bei der FFT-Methode nicht mehr durch
967Aufsummieren
[5]968der
[62]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
[5]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
[62]979an den seitlichen R&auml;ndern der Teilgebiete).&nbsp; <p><b>Achtung:</b>
980Der Inhalt der Testergebnis-Datei &auml;ndert
[5]981sich durch
[62]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
[5]986&auml;ndern. Einschalten
987der Partikeladvektion bei Fortsetzungsl&auml;ufen m&ouml;glich.</td>
[62]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
[5]993m&ouml;glich.
[62]994Partikeldaten k&ouml;nnen f&uuml;r sp&auml;tere Analysen
995auf Datei
[5]996geschrieben
[62]997werden (Unit 85). <tt>PARTICLE</tt>-Datentyp
998enth&auml;lt
[5]999Informationen
[62]1000&uuml;ber Partikelgeschwindigkeitskomponenten und
1001Startposition.&nbsp; <p>Skalartransport sowie entsprechende
1002Datenausgaben k&ouml;nnen
[5]1003durch
1004eigene Parameter gesteuert werden (nicht mehr &uuml;ber die
[62]1005Feuchteparameter).&nbsp; </p> <p>Im Fall von
1006pdims(1)=1 (eindimensionales virtuelles
[5]1007Prozessornetz in
1008y-Richtung) werden die zyklischen Randbedingungen in x-Richtung durch
1009direktes
[62]1010Umspeichern anstatt durch&nbsp; <tt>sendrecv </tt>realisiert.
1011Ebenso
[5]1012werden
[62]1013die Transponierungen xz, yz, zx&nbsp; und zy eingespart (es wird
1014aber
[5]1015weiter
[62]1016umsortiert).&nbsp; </p> <p>Im Fall von
10173D-Plotausgaben Aufruf von ftpcopy-Script durch
[5]1018batch_scp-Script
1019ersetzt (dient der Ermittelung von Dateizyklusnummern als Information
1020f&uuml;r
[62]1021die AVS-fld-Datei).&nbsp; </p> <p>Bei fehlerhafter
1022Er&ouml;ffnung einer CPU_MEASURES-Datei
[5]1023werden erneute
[62]1024Er&ouml;ffnungsversuche durchgef&uuml;hrt.</p> </td>
1025<td>advec_particles, check_open, check_parameters,
[5]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,
[62]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
[5]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
[62]1039f&auml;lschlicherweise die Zeitebene t+dt verwendet. Asselin-Filter
1040ist
[5]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
[62]1045Optimierung.&nbsp; <p>Fehler bei Berechnung von
1046Ausgabezeitpunkten eliminiert (trat
[5]1047auf, wenn
[62]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
[5]1052sich durch
[62]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
[5]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
[62]1070interpoliert.</p> </td> <td nosave="">advec_particles,
1071check_parameters, cpu_log,
[5]1072global_min_max,
[62]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
[5]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
[62]1084als Argumente &uuml;bergeben. Die Tendenzunterprogramme sind als
1085Module
1086geschrieben, die mittels Technik der &uuml;berladenen Funktionen
1087auch
[5]1088ohne
[62]1089diese Indices i und j aufgerufen werden k&ouml;nnen, und dann wie
1090in
[5]1091fr&uuml;heren
[62]1092Versionen funktionieren (d.h. in ihnen laufen die Schleifen
1093&uuml;ber
[5]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
[62]1101Gleichungen in einer einzigen (i,j)-Schleife gerechnet. </p> <p><b>Kommunikationsoptimierung:</b>
1102Zus&auml;tzliche
[5]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>
[62]1113<p><b>Kleinere Anpassungen:</b> String-Vergleiche
1114erfordern beim
[5]1115IBM-Compiler
[62]1116in der Regel den Einsatz der TRIM-Funktion, um
1117&uuml;bersch&uuml;ssige
[5]1118Blanks am Ende des Strings abzuschneiden (sonst liefert der Vergleich
1119.F.). <br>
1120Lokal allokierte Felder t.w. in sogenannte automatische Felder
1121umgewandelt
[62]1122(g&uuml;nstiger, um Gefahr von eventuellen Speicherlecks zu
1123vermeiden).
[5]1124Einige Feldoperationen wurden wegen schlechter Performance auf der IBM
[62]1125entfernt (s. pres). </p> <p><b>Achtung: </b>Die
1126&Uuml;bersetzung des Modells erfordert
[5]1127aufgrund
1128der Vielzahl nunmehr eingesetzter Module die Verwendung des
1129make-Mechanismus,
[62]1130um die korrekte Reihenfolge bei der &Uuml;bersetzung der
1131Programmteile
1132zu gew&auml;hrleisten. Die Beschreibung dieser
1133Abh&auml;ngigkeiten
[5]1134erfolgt
[62]1135in der Datei<tt> Makefile</tt>, die zusammen mit den
1136Programmdateien
[5]1137abgelegt
[62]1138ist und ebenfalls unter RCS-Verwaltung steht. </p> <p>Im
1139User-Interface ist das Unterprogramm<tt> user_actions </tt>nun
[5]1140ebenfalls
[62]1141als Modul geschrieben und bedient sich der Methode der
1142&uuml;berladenen
[5]1143Funktionen. Existierende benutzereigene Software muss entsprechend
1144angepasst
[62]1145werden.</p> </td> <td>advec_s_pw, advec_s_up,
1146advec_u_pw, advec_u_up, advec_v_pw,
[5]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,
[62]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
[5]1166werden und
1167einen Dichteunterschied zum umgebenden Fluid haben. Zur Steuerung dient
1168der neue Paketparameter <tt>density_ratio</tt>.</td>
[62]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
[5]1174und q entfernt
1175(obere Feldgrenze von 10 konnte in <tt>pt_vertical_gradient_level_ind</tt>
[62]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
[5]1182entfernt, die
[62]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
[5]1191runtime (d3par)
[62]1192parameters <tt>restart_time</tt> and <tt>dt_restart</tt>.
1193Run
[5]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.
[62]1201Remaining cpu-time is also evaluated on IBM-Regatta.</td> <td valign="top">cpu_log, cpu_statistics,
[5]1202check_parameters,header, leap_frog,
[62]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
[5]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.
[62]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>
[5]1219Additional optimization of the hybrid-solver for multinode usage
1220(overlapping
[62]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
[5]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
[62]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
[5]1238sendrecv
[62]1239in case of a 1d-decomposition along <tt>x</tt>. SENDRECV
1240replaced by
[5]1241nonblocking
1242routines ISEND and IRECV in <tt>exchange_horiz.f90</tt>. </p>
[62]1243<p>Speed optimization by removing MINVAL/MAXVAL calls and by
[5]1244handling <br>
1245the "abs" case in a different way than the min/max cases (routine <tt>global_min_max</tt>).</p>
[62]1246</td> <td valign="top">asselin_filter, check_open,
1247exchange_horiz,
[5]1248global_min_max,
1249init_3d_model, init_pegrid, parin, poisfft_hybrid, read_var_list,
1250timestep,
[62]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)).
[5]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>,
[62]1258which is set to 1.8 in <tt>modules.f90</tt>. The factor
12590.7 was the
[5]1260possible
[62]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
[5]1265MPI_FINALIZE is called before STOP in case of a parallel environment. </p>
[62]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,
[5]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,
[62]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
[5]1282particles in
1283case of zero density ratio. Steering of variables by dvrp browser
[62]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
[5]1288(needed
1289on linux machines <br>
1290due to the little/big endian problem). Updates for new version of dvrp
[62]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
[5]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
[62]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>
[5]1308is added, where cache optimizations are undone. The tendency
1309subroutines
[62]1310called by <tt>prognostic_equations_vec</tt> contain the
1311full 3d-loops
[5]1312(compared
1313with the cache-optimized versions where only loops over k are carried
1314out).
[62]1315Additionally, a new pressure solver <tt>poisfft_hybrid_vec</tt>
1316is
[5]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;
[62]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>
[5]1326which
1327caused run time errors on IBM and NEC due to compiler problems. </p>
[62]1328<p>Reading of environment variable <tt>tasks_per_node</tt>
1329moved
[5]1330from routine <tt>poisfft_hybrid</tt>
[62]1331to routine <tt>parin</tt>. </p> <p><b>Changes
1332in makefile:</b> modules and user_interface now
[5]1333depend on
1334the f90 files, dependency of singleton added, LDFLAGS moved to the end
[62]1335of PROG rule, temperton_fft added.</p> </td> <td valign="top">advec_s_pw, advec_s_up, advec_u_pw, advec_u_up,
[5]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,
[62]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
[5]1350calling sor
[62]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
[5]1356(for equal
[62]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
[5]1363the right
[62]1364column!</p> </td> <td valign="top">asselin_filter,
1365check_parameters, diffusion_e,
[5]1366diffusivities,
1367disturb_field, global_min_max, header, local_tremain, modules, parin,
1368poisfft_hybrid,
[62]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
[5]1372(velocity must
[62]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
[5]1379decomposition.
1380Abort in case of Temperton fft, if number of gridpoints along x and/or
[62]1381y contain illegal factors.&nbsp; </p> <p>Index values
1382for the extrema found in global_min_max are
[5]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>
[62]1386<p>Output format of iteration count in routine run_control
1387enlarged.</p> </td> <td valign="top">check_parameters,
1388fft_for_1d_decomp,
[5]1389global_min_max, init_pegrid,
[62]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>
[5]1393and <tt>host</tt>
[62]1394(<tt>hybrid_solver</tt> must not be used for a
13952d-domain-decomposition, <tt>host</tt>
[5]1396should be set by setting environment variable <tt>localhost</tt>).
[62]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
[5]1403and Intel
[62]1404FORTRAN compiler (ifc)</b> <p>So far, only absolutely
1405neccessary changes have been done
[5]1406(possible
[62]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
[5]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
[62]1415module (named <tt>mpi</tt>).&nbsp; I did not find out
1416how character
[5]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
[62]1422PE. </p> <p>On the MUK-cluster, only PE0 is able to read
1423the values of
[5]1424environment
1425variables. Therefore, these values are communicated via broadcast to
1426the
[62]1427other PEs. </p> <p>1d-decomposition is set as the default
1428on Linux Clusters.
[5]1429Character
[62]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,
[5]1434init_pegrid, local_getenv,
[62]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>,
[5]1438which allows correct measurements for jobs running over the 24:00
[62]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
[5]1444integral divisor
[62]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
[5]1449removed. It
1450was caused by the Linux changes of version 2.7 and led to program abort
[62]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
[5]1461dvrp-browser
1462plugin extended (position of slicers, threshold values of isosurfaces)
1463. New dvrp_graphics package parameter<tt> slicer_range_limits_dvrp</tt>.</td>
[62]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,
[5]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>.
[62]1472<p>Particle groups implemented. New data type<tt>
[5]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>
[62]1477diameter</tt>. Parameter name<tt> uniform_psize</tt>
1478changed to<tt>
[5]1479dvrp_psize</tt>.
1480Parameters<tt> density_ratio </tt>is now an array.</p>
[62]1481</td> <td valign="top">advec_particles, check_open,
1482exchange_horiz,
[5]1483header, init_particles,
[62]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
[5]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
[62]1491numbers. New binary version 2.2. <p>Buffer is flushed for file
1492RUN_CONTROL immediately after every
[5]1493output
[62]1494on IBM and Linux cluster.</p> </td> <td valign="top">advec_particles,
1495disturb_field, init_3d_model,
[5]1496init_particles,
[62]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
[5]1501is now
1502taken from array hom instead of array sums (otherwise inconsistence in
[62]1503case of using more than one statistical region). <p>Information
1504about the time of the last timestep change added
[5]1505to the
[62]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
[5]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
[62]1515former default leapfrog scheme.&nbsp; The intermediate steps, which
1516are
[5]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;">
[62]1519leap_frog</span>, but this routine will be renamed soon).
1520Steering
[5]1521variables<span style="font-family: monospace;">
[62]1522at&nbsp;</span>and<span style="font-family: monospace;">
1523bt&nbsp;</span>have
1524been replaced by array<span style="font-family: monospace;">
1525sct</span>.
[5]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;">
[62]1529timestep_scheme_steering</span>. <p>When using Runge-Kutta
1530schemes,&nbsp; the timestep increment
[5]1531is freely
1532allowed to adjust after each timestep (the older schemes are using some
[62]1533restrictions, see routine<span style="font-family: monospace;">
1534timestep</span>).
1535Also, routine<span style="font-family: monospace;">
1536run_control&nbsp;</span>is
[5]1537not automatically called in case of timestep changes, when Runge-Kutta
[62]1538schemes are switched on. </p> <p>The old leapfrog scheme
1539is still implemented and should
[5]1540produce the
[62]1541same results as in the previous version(s)! </p> <p>Depending
1542on the user experience, further adjustments to the
[5]1543Runge-Kutta
1544schemes may be necessary within the next minor versions.&nbsp; </p>
[62]1545<p><span style="font-weight: bold;">Attention:</span>
1546<br>
[5]1547The content of the testresult-file (run control output) has
1548significantly
[62]1549changed due to the new default timestep scheme!</p> </td> <td style="vertical-align: top;">check_parameters, header,
[5]1550init_3d_model,
1551init_rankine, leap_frog, modules, prognostic_equations, read_var_list,
[62]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
[5]1555subroutine<span style="font-family: monospace;">
[62]1556allocate_prt_memory&nbsp;</span>on demand only. <p>Type<span style="font-family: monospace;"> log&nbsp;</span>(used
[5]1557for
1558cpu time measurements) changed to<span style="font-family: monospace;">
[62]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
[5]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;">
[62]1566init_particles</span>), in order to avoid the possibility of
1567hanging
[5]1568jobs,
1569which may occur if unit 80 is opened within routine<span style="font-family: monospace;">
[62]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
[5]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;">
[62]1579nzb_2d&nbsp;</span>in many of the three-dimensional loops. So
1580far, all
[5]1581elements of this array are set to<span style="font-family: monospace;">
[62]1582nzb</span>. <p>This change should not effect simulation
1583results and cpu time
[5]1584in any
[62]1585way.</p> </td> <td style="vertical-align: top;">advec_s_pw,
1586advec_s_up,
[5]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,
[62]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
[5]1596removed in
1597the run control output in case of Runge-Kutta schemes. Also, the
1598timestep
[62]1599increment limitation is removed for the Runge-Kutta schemes. <p><span style="font-weight: bold;">Attention:</span> <br>
[5]1600The content of the testresult-file (run control output) has changed
[62]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
[5]1605surface calculated
1606in routine production_e are now limited. In case of inhomogeneous
1607surface
1608heating small diffusivities (<span style="font-family: monospace;">km</span>)
[62]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
[5]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.
[62]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
[5]1626all processors. This new feature is switched on by setting the
[62]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
[5]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
[62]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
[5]1642faster when running PALM on more than one node of the IBM-Regatta,
[62]1643although the difference is not very big. The <span style="font-family: monospace;">poisfft</span>-code
1644for a
[5]1645decomposition along y has still a poor performance and needs further
[62]1646optimization.<br> <br>
[5]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
[62]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
[5]1655quantity arrays are allocated for previous timelevels only in case of
[62]1656leapfrog scheme.<br> <br>
[5]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
[62]1661internal compiler errors).<br> </td> <td style="vertical-align: top;">advec_s_ups, advec_u_ups,
[5]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,
[62]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>
[5]1671For all transpositions, MPI_ALLTOALL is used instead of MPI_ALLTOALLV.
[62]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,
[5]1681flow_statistics, header, init_1d_model, init_3d_model, init_advec,
1682init_pegrid, palm, parin, poisfft, poisfft_hybrid, production_e,
[62]1683prognostic_equations, read_var_list, sline_x, spline_y, write_var_list<span style="font-weight: bold;"><br> <br>
[5]1684new:</span><br>
[62]1685fft_xy, read_3d_binary, time_integration, transpose<br> <br>
1686<span style="font-weight: bold;">deleted:</span><br>
[5]1687fft_for_1d_decomp, leap_frog, transpose_xy, transpose_xz, transpose_yx,
[62]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
[5]1691particle-package removed, which sometimes caused aborts of restart runs
[62]1692on IBM.<br> <br>
[5]1693Small error in calculating the time series profiles removed (array
1694bounds of some arrays needed for profil-output had to be increased).<br>
[62]1695<br>
[5]1696Function fft (singleton method) replaced by subroutine fftn due to
[62]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
[5]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
[62]1708passed to routine<span style="font-family: monospace;">
1709exchange_horiz </span>and<span style="font-family: monospace;">
1710disturb_field </span>by two
[5]1711additional arguments. Boundary conditions are set with new
[62]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>).
[5]1719Non-cyclic conditions require the use of the multigrid-method for
[62]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>
[5]1724Minor changes:<br>
[62]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,
[5]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>
[62]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
[5]1740at the last Runge-Kutta-substep, which spares a big amount of CPU-time
1741(see also new parameter<span style="font-family: monospace;">
[62]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>
[5]1745The content of the testresult-file (run control output) has changed
[62]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,
[5]1753diffusivities, modules, poismg, pres, time_integration,
[62]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>
[5]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
[62]1760faster).<br> <br>
[5]1761Two errors concerning switch to PE0 (multigrid method) removed from<span style="font-family: monospace;"> init_pegrid</span>.<br>
[62]1762<br>
1763Two errors in<span style="font-family: monospace;">
1764plot_2d </span>removed:
[5]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
[62]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>
[5]1774Wrong re-definition of dx2 and dy2 in<span style="font-family: monospace;"> sor </span>removed.<br>
[62]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
[5]1782incompatibilities between non-cyclic lateral boundary conditions and
[62]1783other schemes.<br> <br>
1784fcl_factor renamed cfl_factor.<br> <br>
[5]1785New local array sums_ll declared in flow_statistics instead of
[62]1786temporarily using sums_l.<br> <br>
[5]1787crmax (maximum number of crosses allowed in a plot of vertical
[62]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
[5]1793time counters regarding a possible decrease of the output time interval
[62]1794in case of restart runs.<br> <br>
[5]1795Error removed in Dirichlet bottom boundary conditions for pt and q in
[62]1796case of Runge-Kutta schemes.<br> <br> <span style="font-weight: bold;">batch_scp</span> calls
1797(needed
[5]1798for determining correct filenames for AVS-fld-files) is given the
[62]1799remote username as an additional argument.<br> <br>
1800Default setting of outflow_damping_width corrected.<br> <br>
[5]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
[62]1803resulting too small timesteps.<br> <br>
[5]1804Implicit counters i renamed i9 in modules due to declaration conflicts
[62]1805with i in other subroutines (reported by Portland compiler).<br> </td>
1806<td style="vertical-align: top;">advec_particles,
1807boundary_conds,
[5]1808check_open, check_parameters, init_1d_model, modules, time_integration<br>
[62]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>
[5]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
[62]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>
[5]1819Output of cross sections for qv, vpt and lwp (liquid water path).<br>
[62]1820</td> <td style="vertical-align: top;">advec_particles,
1821check_open,
[5]1822check_parameters, close_file, header, modules, parin, plot_1d, plot_2d,
1823plot_3d, plot_spectra, plot_ts, read_var_list, write_var_list<br>
[62]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
[5]1827number of spectra (formerly, the number of spectra was given by n-1)<br>
[62]1828<br>
[5]1829Abort if <span style="font-family: monospace;">poisfft_hybrid</span>
[62]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
[5]1845implemented, which explicitly simulates single cloud droplets,
1846including droplet growth by condensation and collision. Using this code
[62]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
[5]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,
[62]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>
[5]1888No opening of units 101 - 108 in case of missing NetCDF support.</td>
[62]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
[5]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
[62]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,
[5]1906check_parameters, coriolis, header, init_1d_model, modules, parin,
1907prognostic_equations, read_var_list, spline_z, write_var_list<br>
[62]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
[5]1909and
[62]1910v_0 in production_e.f90 removed.<br> <br> <span style="font-weight: bold;">Attention:</span> <br>
[5]1911The content of the testresult-file (run control output) has changed
[62]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
[5]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
[62]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
[5]1937in case of the first respective intermediate timestep. This is done in
1938order to spare communication time and to produce identical model
[62]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
[5]1946the implementation of topography, this version contains several other
[62]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>
[5]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
[62]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
[5]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)
[62]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
[5]2006conservation of the volume flow (through the complete xz- and
2007yz-sections &nbsp;of the total domain) can be enforced by the new
[62]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
[5]2018(large file support) on most machines. The user can switch to the
[62]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
[5]2022logging routines are added (see file data_log.f90), which can be used
2023for debugging purposes. Output is done on unit 20 (local file
[62]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
[5]2028the dissipation can be used in the 1d-model. These are steered by the
[62]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,
[5]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,
[62]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>
[5]2046plot_spectra -&gt; data_output_spectra<br>
2047plot_ts -&gt; data_output_tseries<br>
[62]2048plot_1d -&gt; data_output_profiles<br> <span style="font-weight: bold;"></span>plot_2d -&gt;
2049data_output_2d<br>
[5]2050plot_3d -&gt; data_output_3d<br>
[62]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
[5]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
[62]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>
[5]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>
[62]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>
[5]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>
[62]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>
[5]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>
[62]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
[5]2126directives have been added where necessary. Still further tuning will
2127be necessary to get optimum performance. Other parts of the code than
[62]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
[5]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
[62]2139global sum is computed via MPI_ALLREDUCE.&nbsp; For storing the
2140thread
[5]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
[62]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-
[5]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
[62]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
[5]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
[62]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,
[5]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,
[62]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
[5]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
[62]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>
[5]2214The content of the testresult-file (run control output) has changed
[62]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
[5]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
[62]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>
[45]2251The content of the testresult-file (run control output) has changed
2252due to this modification.</td><td style="vertical-align: top;">check_parameters,
[40]2253diffusion_s, flow_statistics, header, init_grid, init_3d_model,
2254modules, parin, production_e, prognostic_equations, read_var_list,
[62]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,
[40]2263boundary_conds, calc_precipitation, check_parameters, diffusion_e,
2264diffusion_s, impact_of_latent_heat, init_dvrp, init_pt_anomaly,
[62]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
[5]2276for
2277compiling,
[62]2278<b>all routines</b> have to be re-compiled after every
2279change
[5]2280to <b>modules.f90!</b>
[62]2281<br>&nbsp;
2282<br>&nbsp;
2283<h2><a name="Kapitel2.0"></a>2.0&nbsp; How
2284to change the model source
[5]2285code</h2>
2286&Auml;nderungen, Erweiterungen oder Fehlerkorrekturen am Modellcode
2287(gemeint
2288sind alle Modellteile, die nicht zur benutzereigenen Software
2289geh&ouml;ren)
[62]2290erfordern vom jeweiligen Benutzer Gruppenzugeh&ouml;rigkeit zur
2291Gruppe
[5]2292<tt>"palm"</tt>.
2293Zu dieser Gruppe geh&ouml;ren alle Benutzer, die aktiv an der
2294Modellentwicklung
2295mitwirken (im weiteren "Modellarbeitsgruppe" genannt).
[62]2296<p>Die einzelnen Quelltextdateien des Modells werden mit RCS
2297(Revision
[5]2298Control System) verwaltet. Grundlegende Kenntnisse &uuml;ber dieses
2299System
2300werden im weiteren vorausgesetzt.
[62]2301</p><p>&Auml;nderungen am Modellcode erfordern die
2302Durchf&uuml;hrung
[5]2303bestimmter
2304Aktionen in einer festgelegten Reihenfolge, die nun beschrieben werden
2305sollen.
[62]2306</p><ol> <li>Konzeptplanung.</li> <li>Diskussion
2307der geplanten &Auml;nderungen in der
2308Modellarbeitsgruppe.</li> <li>Auschecken der
2309ben&ouml;tigten Quelltextdateien,
[5]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
[62]2314ver&auml;ndert werden. Neu geschaffene Variablen sollten
2315w&auml;hrend
[5]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
[62]2323Arbeiten m&uuml;ssen in den Kopfzeilen (unter "Aktuelle
2324Aenderungen")
[5]2325der
[62]2326Dateien vermerkt werden. Dies tut man am besten noch <b>bevor</b>
2327man
[5]2328die
2329eigentlichen &Auml;nderungen durchf&uuml;hrt (sonst droht das
[62]2330Vergessen...).</li> <li>Zum Abschlu&szlig; der Tests
2331sollte mit dem Modell eine
[5]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
[62]2339werden (s. <a href="Anwendung/Kapitel_5.0.html">Kapitel
23405.0</a> der
[5]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>
[62]2352<li>Nach Durchf&uuml;hrung der Tests m&uuml;ssen bei
2353Bedarf die
[5]2354vorl&auml;ufig
[62]2355im tempor&auml;ren Modul eingetragenen Variablen in die
2356eigentlichen
[5]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
[62]2360testweise &uuml;bersetzt werden, um Sytaxfehler
2361auszuschlie&szlig;en
[5]2362(evtl.
2363auch noch einmal einen Probelauf starten). Die Verwendung des
2364tempor&auml;ren
2365Moduls ist aus allen entsprechenden Programmteilen zu entfernen.</li>
[62]2366<li>Vergabe einer neuen Versionsnummer (Variable <tt>version</tt>
2367im
[5]2368Modul <tt>steuer</tt>),
[62]2369Bsp.: 2.3c. Kleinere &Auml;nderungen werden durch
2370angeh&auml;ngten
[5]2371kleinen
[62]2372Buchstaben kenntlich gemacht, gr&ouml;&szlig;ere
2373&Auml;nderungen durch
[5]2374die Zahl hinter dem Punkt. Eine Inkrementierung der Zahl vor dem Punkt
[62]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
[5]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:
[62]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
[5]2392durchgef&uuml;hrten
2393Arbeiten zu informieren.</li>
[62]2394</ol><h2>
2395<a name="Kapitel3.0"></a>3.0&nbsp; Description
2396of selected parts of the
[5]2397model source code</h2>
2398<b>This chapter is still under construction (Feb. 04).</b>
[62]2399<p>Dieser Abschnitt verweist auf vorhandene Beschreibungen der
2400genauen
2401Funktionsweise einzelner, spezieller Modellteile. Dazu geh&ouml;rt
2402z.B.
[5]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).
[62]2411<br>Die Beschreibungen liegen in jeweils getrennten Dokumenten,
2412in der
[5]2413Regel als TeX- und/oder Postscript-Datei vor und sind &uuml;ber die
2414folgenden
2415Links zug&auml;nglich.
[62]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
[5]2423der <a href="Bitkompression/kompression.html">Bitverschiebung</a></li>
[62]2424<li> <a name="Runge-kutta"></a>Runge-Kutta
2425time integration scheme ( <a href="numerik.heiko/zeitschrittverfahren.pdf">.pdf</a>
[5]2426)</li>
[62]2427</ul><br>
[5]2428&nbsp;
[62]2429<br>&nbsp;
2430<br>&nbsp;
2431<br>&nbsp;
2432<br>&nbsp;
2433<br>&nbsp;
2434<br>&nbsp;
2435<br>&nbsp;
[5]2436</body></html>
Note: See TracBrowser for help on using the repository browser.