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

Last change on this file since 203 was 198, checked in by raasch, 16 years ago

file headers updated for the next release 3.5

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