shell und unix - meteorologie - lmu münchenwolfi/modellbaukasten/... · shell und unix shell...
Post on 18-Sep-2018
235 Views
Preview:
TRANSCRIPT
Shell und UNIX
Typischer Datei-Baum unter UNIX/
/bin /dev /tmp /usr
usr/local /usr/users
usr/local/bin/usr/local/bin/f95
/usr/users/wolfi
/usr/users/heinz
/usr/users/roger
Benutzer..Compiler..
/bin/sh/bin/ksh/bin/bash/bin/csh/bin/tcsh/bin/zsh
Shells..
Kommandos/bin/man/bin/mv/bin/cp
/lib/etc
Die Shell ist der Kommandozeilen-Interpreter vomBetriebssystem UNIX. Sie ist ein (normales) Programm dasdem Super-User (Administrator) gehort. Der Benutzer kann esnicht loschen! Je nach Installation hat der Benutzer nach demeinloggen eine Shell. Es gibt komfortable aber wenigverbreitete Shells wie zsh und tcsh.
1
Shell und UNIX
Verschiedene Shells: Merkmale
Bourne-Shell (S.R. Bourne): sh
• unkomfortabel: Tippfehler = neu tippen
• auf jedem UNIX System vorhanden !!
C-Shell: csh
• Eingabe komfortabler
• Kommandos angelehnt an C (vorwiegendKleinbuchstaben)
• aufwarts-kompatibel dazu ist Tenex-Shell: tcsh
Korn-Shell (Bolsky and Korn): ksh
• Mindestens so komfortable wie C-Shell
• absolut aufwarts-kompatibel zur sh
Bourne (borne) Again Shell: bash
• absolut aufwarts-kompatibel zur sh
• fast aufwarts-kompatibel zur ksh und csh
• Bei Suse Linux Standard; verbreitet sich rasend
2
Shell und UNIX
Shell Stammbaum
Linux überall MM5 ???Rechenzentren
ksh (93)
ksh (88)
sh
csh
tcsh
1977
1979
1988
1993
1995
1998
2004
bash
Ablauf wenn ich ein Terminal (Konsole) offne
Shell login-Shell nichtlogin-Shell
sh /etc/profile,$HOME/.profile
—
ksh /etc/profile,$HOME/.profile,ENV Datei
ENV Datei,ENV=datei gesetztin $HOME/.profile
bash /etc/profile,$HOME/.bash_profile,$HOME/.bash_login,$HOME/.profile
$HOME/.bashrc
csh $HOME/.cshrc,$HOME/.login
$HOME/.cshrc
tcsh /etc/csh.cshrc,/etc/csh.login,$HOME/.cshrc,$HOME/.login
/etc/csh.cshrc,~/.login, ~/.tcshrc,~/.tcshrc
3
Shell und UNIX
Anderungen wirksam machen
Ich habe Anderungen in .profile bzw .login gemacht undmochte dass diese sofort wirksam werden
• Ich habe sh, ksh oder bash:. .profile
• Ich habe csh oder tcsh:source .login
Ich habe sh, ksh, bash und mochte meine Anpassungen auf einseparates File schreiben:
# dies ist die letzte Zeile von .profile
. $HOME/.mysettings # in .mysettings sind meine Anpassungen
Typische Anpassung: Such-Pfad verlangern
PATH=$PATH:. # in .profile sh ksh bash
set path = ( $path . ) # in .login csh tcsh
4
Shell und UNIX
Der Anfang: einige UNIX Standard Kommandos:
Kommando Wirkung Beispiel
which welches Kommandowird benutzt ?
which f95
man Kurz-Referenz desKommandos
man man
ls Dateien und Rechtelisten
ls -alF
cp copy cp von nachmv umbenennen mv alt nachneurm loschen rm -i datei
echo Textausgabe echo "Text ausgeben",echo $HOME,echo $PATH
date Datum ausgeben date +%jchmod Datei-Attribute set-
zenchmod ugo+r
Shell-Skripts
In der Datei todo steht:
# ich bin ein shell-scriptecho "Compile and run demo.f90"f95 demo.f90ls -l a.outa.outecho "fertig"
Start in Sub-Shell
sh todoksh todocsh todobash todo
oder einfach fur den user (mich) ausfuhrbar machen:
chmod u+x todotodo
5
Shell und UNIX
Start auf gleicher Ebene
Start als Prozess auf gleicher Ebene . todo in sh, ksh, bashbzw. source todo in csh oder tcsh. Dies ist normalerweiseunerwunscht, da die aktuelle Umgebung beeinflusst wird,wohingegen der Kind-Prozess nur intern etwas an derUmgebung andert. Ausnahme: .profile bzw, .login
Pseudokommentar: Shell in der todo lauft bei Aufruf mitNamen durch Pseudokommentar erzwingen
#!/bin/bash
# laeuft unter Bourne-Again Shell falls mit todo gerufen
# sh todo oder ksh todo .... ignorieren diesen Kommentar
# ebenso Aufruf mit . todo
echo "Compile and run demo.f90"
...
Argumente an Skript ubergeben
#!/bin/sh
# filename: argumentef95 $3
a.out
echo "$1 Jahre w$2der"
echo "ende $0"
Aufruf etwa:argumente Alle ie demo.f90
6
Shell und UNIX
Metazeichen fur Dateinamen
Zeichen Bedeutung
* Wird zu einem oder mehreren beliebigenZeichen (auch leer) expandiert. Ausnah-me: . am Anfang, sog. versteckte Datei
? Wird zu 1 beliebigen Zeichen expandiert.[s] Wird mit einem Zeichen aus der Zeichen-
kette s ersetzt. ls t[mu]p listet tmp undtup
[!s] Wird mit einem Zeichen aus der Zeichen-kette ersetzt, das nicht in s enthalten ist.
[c1-cn] wird durch genau ein Zeichen aus c1-cn
ersetzt, z.B. [a-z]
Weitere Metazeichen
Zeichen Bedeutung
$ Beginn einer Variablen, die substituiertwerden soll, z.B. echo $HOME oder echo $1
oder echo $PATH‘kommando‘ Wird durch die Ausgabe (stdout),
die kommando erzeugt ersetzt. Bsp.‘date +%j‘, auch ‘a.out‘
7
Shell und UNIX
Sonder-Bedeutung von Metazeichen
aufheben: Quoten
Quote-Zeichen Bedeutung
\ Zeichen rechts davon keine Sonder-Bedeutung
’ ’ Text innerhalb einfacher Anfuhrungszei-chen wird nicht verandert.
" " $ bleibt Sonderzeichen. Alle anderen ver-lieren innerhalb der Anfuhrungszeichenihre Bedeutung
Umlenkung von input output und error
Umlenkung von sh ksh bash csh tcsh
stdin < file < filestdout > file > filestderr 2> file nicht moglichstdout and stderr >file 2>&1 >& filegetrennte Umlen-kung stdout undstderr
>file 2>file1 nicht moglich
stdout and fileanhangen
>> file >> file
stdout und stderr anfile anhangen
>>file 2>&1 >>& file
8
Shell und UNIX
Konzept der Pipes
Kommando1 stdout stdin Kommando2 stdout
stderr
stderr|
Beispiele:
ls -lR | grep tm
cat demo.f90 | tr "[A-Z]" "[a-z]"
Gruppierung von Kommandos
Symbol Bedeutung
; trennt Kommandosk1 && k2 k2 wird ausgefuhrt wenn k1 den Ruck-
gabewert 0 liefert (=Erfolg)k1 || k2 k2 wird ausgefuhrt wenn k1 einen Ruck-
gabewert ungleich 0 liefert(kommando) kommando wird in einer Sub-Shell aus-
gefuhrt
Beispiele:
ls; cd ..; ls cd
ls && echo "ok"
ls /00 && echo "’ok"
pwd; (cd /tmp; pwd): pwd
sh exit
9
Shell und UNIX
Shell-Variablen
Variable Bedeutung
? Ruckgabewert des letzten Kommandos$ Prozess-Nummer der Shell* Alle Argumente die an die Shell ubergeben wur-
den als einzige Zeichenkette@ Alle Argumente die an die Shell ubergeben wur-
den als einzelne Zeichenkette# Enthalt die Anzahl der Argumente die an die
Shell ubergeben wurden als einzelne Zeichenket-te
HOME Pfad zum Home Verzeichnis de BenutzersPWD Enthalt das aktuelle ArbeitsverzeichnisPATH Suchpfad in dem nach Programmen gesucht wirdPS1 Steuerung der Eingabeaufforderung
Environment Variablen
wie Shell-Variablen mussen exportiert werden um in Sub-Shellsverfugbar zu sein (sonst sind sie nicht verfugbar).
# Lizenzinformation f95
LM_LICENSE_FILE=/usr/local/lib/NAGWare/NAG.demo; export LM_LICENSE_FILE # sh ksh bash
setenv LM_LICENSE_FILE /usr/local/lib/NAGWare/NAG.demo # csh
10
Shell und UNIX
Kontrollstrukturen (nur in Beispielen)
Bedingte Anweisung in sh (neue Zeilen konnen durch ; ersetztwerden)
if test $# -ne 1
thenecho "$0 falsche Anzahl von Parametern -- Abbruch"
exit 1 # Rueckgabewert
else
echo "Uebergeben wurde $1"
fi
..
alternativ fur test konnen eckige Klammern mit Leerzeichen (!)geschrieben werden
if [ $# -ne 1 ]; thenecho "$0 falsche Anzahl von Parametern -- Abbruch"
exit 1 # Rueckgabewert
fi
..
Die while Schleife
while [ -n "$1" ]; do # prueft ob "string" leer ist
echo "Argument: $1"
shift # jetzt ist $1 das zweite Argument
done
11
Shell und UNIX
Die for Schleife
for i in wolfi heinz roger 2 3; do
echo $i
done
Die case-Anweisung
echo "Ihre Anwort bitte: "
read ANSWER # belegt variable ANSWER
case $ANSWER in
[jJ]a|[yY]es)echo "Antwort war ja/Ja oder yes/Yes"
exit 0
;;
[nN]ein|[nN]o)
echo "Antwort war nein/Nein/ oder no/No"
exit 1;;
*)
echo "unpassende Antwort"
;;
esac
12
Shell und UNIX
Operatoren des Kommandos test
Operator Bedeutung
n1 -eq n2 wahr wenn Zahl n1 gleich Zahl n2n1 -lt n2 wahr wenn Zahl n1 kleiner als Zahl n2n1 -le n2 wahr wenn Zahl n1 kleiner gleich Zahl n2n1 -gt n2 wahr wenn Zahl n1 großer als Zahl n2n1 -ge n2 wahr wenn Zahl n1 großer gleich Zahl n2s1 = s2 wahr wenn Zeichenkette s1 gleich Zei-
chenkette s2s1 != s2 wahr wenn Zeichenkette s1 nicht gleich
Zeichenkette s2-z s1 wahr wenn Zeichenkette s1 null Zeichen
ist-n s1 wahr wenn Zeichenkette s1 großer null
Zeichen ist-e datei wahr wenn datei existiert-f datei wahr wenn datei eine normale datei ist
(kein Verzeichnis, kein Link)-r datei wahr wenn datei lesbar ist (Permission)-w datei wahr wenn datei beschreibbar ist (Per-
mission)-x datei wahr wenn datei ausfuhrbar ist (Permis-
sion)-s datei wahr wenn datei langer als Null Zeichen
ista1 -a a2 AND Verknupfung zweier Test-
Ausdrucke a1 a2a1 -o a2 OR Verknupfung zweier Test-Ausdrucke
a1 a2!a Negation, wahr wenn nicht a wahr ist
( a ) Klammerung zur Klarung von Prio-ritaten, wie ( a1 -o a2 ) -a a3 im Ge-gensatz zu a1 -o ( a2 -a a3 )
13
Shell und UNIX
Shell (Skript) Optionen
Option Wirkung
set -e Shell wird bei Fehler beendetset -f Dateinamenersetzung ausset -n Testlauf - keine Ausfuhrungset -v verbose zur Fehlersucheset -x jedes Kommando wird interpretiert ausgegeben
Nicht in der sh verfugbar sind:
set -o emacs Kommandozeile im emacs-Mode editierenset -o vi Kommandozeile im vi-Mode editieren
14
Shell Beispiele
wolfi@ramses2:~/Shells> cat .bash_profile
#
# all created data are private#
umask 077 # remove permissions 0 4+2+1 4+2+1 4=-r 2=-w 1=-x
#
# on ramses only the old version ifc is available
#
case ‘uname -n‘ inramses)
alias ifort=ifc
;;
esac
wolfi@ramses2:~/Shells> cat findshort
#!/bin/sh
max=1000
for name in *do size=‘wc -c < $name‘ # count words
if [ $size -le $max ]
then echo "$name is a short file: $size characters"
fi
done
wolfi@ramses2:~/Shells> cat forloop
#!/bin/shingred=’apple berry cake dough’
for word in $ingred
do echo $word
done
15
Shell Beispiele
wolfi@ramses2:~/Shells> cat forset#!/bin/shset ‘ls‘for file
do echo $filedone
echo "This is equivalent.."
for file in *do echo $file
done
wolfi@ramses2:~/Shells> cat function## make available with . function#rename ()
echo "Current name: "read fileecho "new name: "read newmv $file $newecho "file $file has been renamed $new "
wolfi@ramses2:~/Shells> cat untilloop#!/bin/shi=1until i=‘expr $i - 1‘do echo Counter is $idone
wolfi@ramses2:~/Shells> cat whileloop#!/bin/shi=5while i=‘expr $i - 1‘ # Loop while truedo echo Counter is $idone
16
GMT
Generic Mapping Tools Graphicshttp://gmt.soest.hawaii.edu
• Paul Wessel and Walter H.F. Smith
• follows UNIX command line philosophy not Windows
• why so popular - the price is right (free)
• output is postscript
Die -B Option (Eier legende Wollmilchsau)
3010 20
grid
frameanotation
17
GMT
Postscript im Baukasten Prinzip
−O ommits header
−K ommits trailer
−O −K
HEADER
BODY−1
BODY−n
TRAILER
Das Koordinatensystem
default is Landscape
xoff=1 inch
yoff=1 inch
xoff
yoff
y
x
−X −Y
18
GMT
Beispiel: pscontour
Struktur des input-files:
Chan and Williams vortex-250.00 -250.00 0.00-245.00 -250.00 0.00... ... ...-50.00 0.00 47.18-45.00 0.00 49.25-40.00 0.00 50.00... ... ...
MODULE VORTEXPROFILE
CONTAINS
ELEMENTAL SUBROUTINE ChanWilliamsVortex(v,r,vm,rm,b)
! elemental: subroutine may be called with conformal arrays! restricted to "pure" (=simple) subroutines without! if structures inside. Interface must be explicit,! e.g. module procedure.
REAL, INTENT(out) :: v ! azimuthal windREAL, INTENT(in) :: r ! radiusREAL, INTENT(in) :: vm ! max azimuthal windREAL, INTENT(in) :: rm ! radius of max windREAL, INTENT(in) :: b ! shape parameter use 1 or 2
REAL :: s; s=r/rm
v=vm*s*EXP((1.0-s**b)/b)
END SUBROUTINE ChanWilliamsVortex
END MODULE VORTEXPROFILE
19
GMT
PROGRAM VortexDemo ! 3.12.2004USE VORTEXPROFILEINTEGER, PARAMETER :: NX=50, NY=50, iu=7REAL, PARAMETER :: dx=5.E3, dy=dx, rm=40.E3, vm=50.REAL, DIMENSION(-NX:NX,-NY:NY) :: wind, rREAL, DIMENSION(-NX:NX) :: xREAL, DIMENSION(-NY:NY) :: y
x=(/(i*dx,i=-NX,NX)/)y=(/(i*dy,i=-NY,NY)/)
xc=0.; yc=0. ! centre of vortex
DO j=-NY,NYDO i=-NX,NX
r(i,j)=SQRT((x(i)-xc)**2+(y(j)-yc)**2)ENDDO
ENDDO
b=2.CALL ChanWilliamsVortex(wind,r,vm,rm,b)CALL togmt(’CWvortex.xyz’)
CONTAINS
SUBROUTINE togmt(filename)CHARACTER(LEN=*) :: filenameOPEN(UNIT=iu,FILE=filename)WRITE(UNIT=iu,FMT="(A)") "Chan and Williams vortex"DO j=-NY,NY
DO i=-NX,NXWRITE(UNIT=iu,FMT="(2F10.2,F10.2)") &x(i)/1000.,y(j)/1000.,wind(i,j) ! x y z
ENDDOENDDOCLOSE(UNIT=iu)END SUBROUTINE togmt
END PROGRAM VortexDemo
20
GMT
Demo-script: gmtscript.bash
#!/bin/bash######################################################################## bash script demo to plot xyz files# W.Ulrich 23.11.2004######################################################################### settings#set -e # stop on any errorgmtset PAPER_MEDIA A4 # A4 paperPSOUT=wind.ps # postscript outputXYZ=CWvortex.xyz # data file with structure x y zif test -e $PSOUT; then # if $PSOUT alreay exists delete it
rm $PSOUTfihead -1 $XYZ # display first line of $XYZminmax -H $XYZ # GMT: display minimum and maximum of dataLO=0; HI=60; INC=5 # contour settingsXWEST=-250; XEAST=250 # X-axisYSOUTH=-250; YNORTH=250 # Y-axisTITLE=’WIND SPEED’XTITLE=’WEST-EAST (km)’YTITLE=’SOUTH-NORTH (km)’XWIDTH=16c # size of diagram in cmYWIDTH=16c # use an even number, see belowXTICKS=a50f10g50 # aanotate fticks ggridYTICKS=a50f10g50COLOURPALETTE=rainbow # this is a recommended oneLABELS=1## write a colour table (rainbow sequence) to file palette.cpt#makecpt -C$COLOURPALETTE -T$LO/$HI/$INC > palette.cpt## colour shading#
21
GMT
pscontour $XYZ -H \-I -Cpalette.cpt \-JX$XWIDTH/$YWIDTH \-R$XWEST/$XEAST/$YSOUTH/$YNORTH \-B$XTICKS:"$XTITLE":/$YTICKS:"$YTITLE"::."$TITLE":WeSn \-X4c -K > $PSOUT
## contour labels if LABELS=1#if test $LABELS -eq 1; then
pscontour $XYZ -H \-W -Cpalette.cpt \-JX \-R \-O -K >> $PSOUT
fi## colour bar finishes figure#XPOS=‘expr $XWIDTH%c + 2‘cYPOS=‘expr $YWIDTH%c / 2‘cecho "XPOS=$XPOS YPOS=$YPOS"LENGTH=$YWIDTHif test ‘expr 2 \* $YPOS%c‘ -ne $YWIDTH%cthen
LENGTH=‘expr $YWIDTH%c - 1‘cfiWIDTH=1cUNITS=’ms@+-1@+’psscale -Cpalette.cpt \
-D$XPOS/$YPOS/$LENGTH/$WIDTH \-Ba$INC::/:$UNITS: \-O -U >> $PSOUT
## display $PSOUT with postscript viewer gv#gv -landscape $PSOUT
22
GMT
GMT - gmtscript.bash
-250
-200
-150
-100
-50
0
50
100
150
200
250
SO
UT
H-N
OR
TH
(km
)
-250 -200 -150 -100 -50 0 50 100 150 200 250
WEST-EAST (km)
WIND SPEED
5
5
5
5
10
10
10
15
15
15
20
20
2025 25
30
30
35
35
3540
40
40
45
45
2004 Dec 4 11:19:25
0
5
10
15
20
25
30
35
40
45
50
55
60ms-1
23
GMT
Leicht zu erstellen: x-y-plot
#
# axes ticks and label texts
#
psbasemap -JX$XWIDTH/$YWIDTH \
-R$XLEFT/$XRIGHT/$YBOT/$YTOP \
-B$XTICKS:"$XTITLE":/$YTICKS:"$YTITLE"::."$TITLE":WeSn \-K > $PSOUT
#
# use e.g. default thick thicker fat fatter
#
psxy $XY -H -JX -R -B -Wthicker,red -O >> $PSOUT
0
10
20
30
40
50
V (
m/s
)
0 50 100 150 200 250 300
RADIUS (km)
0
10
20
30
40
50
V (
m/s
)
0 50 100 150 200 250 300
RADIUS (km)
24
Gnuplot
Gnuplothttp://www.gnuplot.info
Gnuplot is a portable command-line driven interactive datafile(text or binary) and function plotting utility for UNIX, IBMOS/2, MS Windows, DOS, Apple Macintosh, VMS, Atari andmany other platforms. The software is copyrighted but freelydistributed (i.e., you don’t have to pay for it). It was originallyintended as graphical program which would allow scientists andstudents to visualize mathematical functions and data. It doesthis job pretty well, and in addition it serves as non-interactiveplotting engine for miscellaneous portable third-partyapplications, like Octave. Gnuplot is developed and supportedsince 1986, and having its scripts and commands easy tounderstand text files, it is time-portable as well.
Demonstration mit dem input-file: p_th_TK.dat
# p (hPa) theta (K) TK(k)
100.0 353.4 183.2
200.0 339.2 214.2
300.0 330.1 234.1400.0 323.3 248.9
500.0 317.9 260.8
600.0 313.3 270.8
700.0 309.4 279.4
800.0 305.9 287.0
900.0 302.8 293.81000.0 300.0 300.0
Das # wird als Kommentarzeile interpretiert.
25
Gnuplot
Gnuplot besitzt eine einfache (Script-)Sprache
> cat theta_p.gpi # Ausgabe## gnuplot input#set terminal postscript eps enh color solid "Times-Roman" 24set output "th_p.eps"set size ratio 0.6set title "constant N^2 profile"set xlabel "/Symbol q in K"set ylabel "p in hPa"set autoscale xset yrange [1000:100]set key right bottomplot "p_th_TK.dat" using 2:1 title "[/Symbol q(p)]_N^2=const" \w l lt 1 lw 5pause 1!gv th_p.eps &
100
200
300
400
500
600
700
800
900
1000 300 310 320 330 340 350 360
p in
hPa
θ in K
constant N2 profile
[θ(p)]N2=const
Ergebnis von load "theta_p.gpi"
26
Gnuplot
Qualitat hangt stark vom terminal ab
> cat theta_p.pnggpi## gnuplot input#set terminal png color mediumset output "th_p.png"set size ratio 0.6set title "constant N^2 profile"set xlabel "/Symbol q in K"set ylabel "p in hPa"set autoscale xset yrange [1000:100]set key right bottomplot "p_th_TK.dat" using 2:1 title "/Symbol q" w l lt 1 lw 5pause 1!xv th_p.png &
Ergebnis von load "theta_p.pnggpi"
27
Gnuplot
Starke: Automatische Wahl derAchsenbeschriftung
> cat theta_TK_p.gpi## gnuplot input#set terminal postscript eps enh color solid "Times-Roman" 24set output "th_TK_p.eps"set size ratio 0.6set title "constant N^2 profiles"set xlabel "/Symbol q and T_K in K"set ylabel "p in hPa"set autoscale xset yrange [1000:100]set key topplot "p_th_TK.dat" using 2:1 title "[/Symbol q(p)]_N^2=const" \w l lt 1 lw5, \
"" using 3:1 title "[T_K(p)]_N^2=const" w lp lt 3 lw 1pause 1!gv th_TK_p.eps &
100
200
300
400
500
600
700
800
900
1000 180 200 220 240 260 280 300 320 340 360
p in
hPa
θ and TK in K
constant N2 profiles
[θ(p)]N2=const[TK(p)]N2=const
Ergebnis von load "theta_TK_p.gpi"
28
GrADS
GrADShttp://grads.iges.org/grads/grads.html
The Grid Analysis and Display System (GrADS) is aninteractive desktop tool that is used for easy access,manipulation, and visualization of earth science data. Theformat of the data may be either binary, GRIB, NetCDF, orHDF-SDS (Scientific Data Sets). GrADS has beenimplemented worldwide on a variety of commonly usedoperating systems and is freely distributed over the Internet.
• GrADS uses a 4-Dimensional data environment: longitude,latitude, vertical level, and time
z(=3.DIM)
x(=1.DIM)
y(=2.DIM)
t(=4.DIM)
t=2
t=3
t=1
• Data sets are placed within the 4-D space by use of adata descriptor file
• Data from different data sets may be graphically overlaid,with correct spatial and time registration
• Operations are executed interactively by enteringFORTRAN-like expressions at the command line
• GrADS has a programmable interface (scripting language)that allows for sophisticated analysis and displayapplications
29
GrADS
Example Descriptor file example.ctl
DSET ^gridded_data_sample.datTITLE Gridded Data SampleUNDEF -9.99E33XDEF 180 LINEAR 0.0 2.0YDEF 90 LINEAR -90 2.0ZDEF 10 LEVELS 1000 850 700 500 400 300 250 200 150 100TDEF 4 LINEAR 0Z10apr1991 12hrVARS 4slp 0 99 sea level pressurehgt 10 99 heightstemp 10 99 temperatureshum 6 99 specific humidityENDVARS
Eine kleine function auf dem file myd.gs im selben Verzeichniskann mit dem Aufruf myd ps den Bodendruck mit Farbe unduberlagerten Isolinien darstellen.
function myd(var)******************************************** merkwuerdig, die 1. function auf dem file* darf nur 1 Argument haben*******************************************’set gxout shaded’’d ’varcbarn’set gxout contour’’d ’varreturn
Hinweis: Soll die function so einfach bleiben ist ein execvorzuziehen, das keine ’ ’ braucht.
set gxout shadedd &0cbarnset gxout contourd &0
30
GrADS
Erganzungen zum GrADS Tutorial
Eine einfache Moglichkeit der Animation
function stepit(var)
* animate time evolution of varrc = gsfallow("on")
t=1
’set t ’t
_tmax=gettmax()
while(t <= tmax)_t=t
sho(var)
prompt ’[[f][b][q]]<RETURN> ’
pull ans
if(ans="q"); return; endif
if(ans="b"); inc=-1; endifif(ans="f"); inc=1; endif
if(t=_tmax); inc=-1; endif
if(t=1); inc=1; endif
t=t+inc
’set t ’t
endwhile
return
function sho(var)
*----------------
c’set gxout shaded’
’d ’var
cbarn
’set gxout contour’
’d ’var
’draw title t=’_t’ date=’getdate()return
31
GrADS
im Verzeichnis auf das die Umgebungsvariable GASCRP (in.profile) zeigt stehen getdate.gsf
function getdate()
*----------------
’q dims’
line=sublin(result,5)
return subwrd(line,6)
und gettmax.gsf
function gettmax()
******************
* get final t *******************
’q file’
line=sublin(result,5)
tmax=subwrd(line,12)
return tmax
die haufiger in Skripten (vom Benutzer) verwendet werden. DerAnschluss erfolgt mit der Zeile rc = gsfallow("on"). Die beidenfunctions konnten aber auf dem file stehen.
32
GrADS
GrADS Datenfile erzeugen
...
CONTAINS
SUBROUTINE toGrADS(filename)INTEGER, SAVE :: RECORD=0
CHARACTER(LEN=*) :: filename
! binary write like a C-Program
!------------------------------
NWORDS=(2*NX+1)*(2*NY+1)
NBYTES=NWORDS*4OPEN(UNIT=iu,FILE=filename,ACCESS=’direct’,FORM=’unformatted’,&
STATUS=’replace’,RECL=NBYTES)
RECORD=RECORD+1
WRITE(UNIT=iu,REC=RECORD) wind(-NX:NX,-NY:NY)
CLOSE(UNIT=iu)
END SUBROUTINE toGrADS
Das zugehorige Descriptor file
DSET ^CWvortex.grads
TITLE Chan and Williams vortexUNDEF -9.99E33
XDEF 101 LINEAR -250 5
YDEF 101 LINEAR -250 5
ZDEF 1 LEVELS 1000
TDEF 1 LINEAR 0Z10apr1991 12hr
VARS 1wind 0 99 wind speed
ENDVARS
33
GrADS
Das zugehorige exec script
open CWvortex.ctlset vpage 0.0 11.0 0.0 8.5set parea 1.5 7.5 1.5 7.5set mproj offset gxout shadedset xlint -50set ylint -50d windcbarnset gxout contourd winddraw xlab X(km)draw ylab Y(km)draw title Chan and Williams vortex
34
Advektion
Advektion
Dρ
Dt= 0 ⇒ ρt + uρx + vρy + ωρp = 0 (1)
mit: ux + vy + ωp = 0 ⇒
ρt + (uρ)x + (vρ)y + (ωρ)p︸ ︷︷ ︸∮ ∮ ∮
...dxdydp=0
= 0 (2)
Advektion von ρ in einer Dimension: ρt + uρx = 0. Mitu = c0 = const ergibt sich die lineare Advektionsgleichung
ρt + c0ρx = 0 c0 = const (3)
auch als simplest wave equation bezeichnet. Losung ist:ρ = f(x − c0t), f(x) beliebig !! Dies ist ein idealer Testfall umeine numerische Losung mit der analytischen zu vergleichen !Hoffnung: was linear gut ist ist auch sonst gut. Wie sieht dienichtlineare Losung aus? Wir betrachten
ρt + c(ρ)ρx = 0. (4)
auch als quasi-lineare Gleichung bezeichnet. Wichtig: DasSuperpositionsprinzip linearer Gleichungen gilt nicht mehr! Wirgehen in die (x,t)-Ebene und schreiben
Dx
Dt= c(ρ) (5)
Dρ
Dt=
∂ρ
∂t+
Dx
Dt
∂ρ
∂x= 0 (6)
(5) bedeutet eine Steigung einer Kurve in der (x,t) Ebene und(6) sagt aus, dass ρ entlang dieser Kurve konstant bleibt, alsoist die Kurve eine Gerade fur ein bestimmtes ρ. Man nennt dieKurven die Charakteristiken der quasi-linearen Gleichung. Beianderen Gleichungen bleibt die Eigenschaft ρ nicht konstant.
35
Advektion
Wir suchen eine spezifische Losung:
t = 0, ρ = f(x), −∞ < x < ∞ (7)
x
t
ρ
ρ
tB
ξΒSei bei t = 0 : x = ξ ⇒ ρ = f(ξ) auf einer Kurve. Die Steigungist dann F (ξ) := c(f(ξ)) entlang der Kurve. Integration von (5)liefert die Kurven-Gleichung:
x = ξ + F (ξ)t (8)
Wir lassen ξ variieren und erhalten
ρ = f(ξ), c = F (ξ) = c(f(ξ)) auf x = ξ + F (ξ)t (9)
somit ist ρ implizit gegeben mit ξ = ξ(x, t) Differentiation vonρ = f(ξ) nach t und nach x ergibt:
ρt = f ′(ξ)ξt, ρx = f ′(ξ)ξx. (10)
Differentiation nach t und x von (8) liefert
0 = F (ξ) +(1 + F ′(ξ)t
)ξt, 1 =
(1 + F ′(ξ)t
)ξx (11)
Elimination von ξt und ξx und Einsetzen in (10) ergibt dieLosung von (4)
ρt = − F (ξ)f ′(ξ)
1 + F ′(ξ)t, ρx =
f ′(ξ)
1 + F ′(ξ)t(12)
36
Advektion
Auf jeder Charakteristik mit F ′(ξ) < 0 tritt Brechen auf, falls
t = − 1
F ′(ξ). (13)
Das erste Brechen tritt auf fur t = tB:
F ′(ξ) minimal ⇒ tB = − 1
F ′(ξB). (14)
Abhangigkeit von der Anfangsbedingung
f(x) =
ρ1, x > 0ρ2, x < 0. F (x) =
c1 = c(ρ1), x > 0c2 = c(ρ2), x < 0
(15)
Fur c2 > c1 tritt sofort Brechen auf.
Fur c2 < c1 gilt aber fur die Kurven-Familie (8):
c = F, x = Ft ⇒ c =x
t, c2 < F < c1 (16)
Die Losung ist dann
c =
c1, c1 < x
t,
xt, c2 < x
t< c1,
c2,xt
< c2.(17)
Der Fall c2 < c1 ist im Gegensatz zu c2 > c1 eine physikalischeLosung.
37
Advektion
Kompression c2 > c1
x
x
t
c=c2 c=c1
ρ
ρ2
ρ1
x=c1
x=c2 t
t
Expansion c2 < c1
x
x
t
c=c2 c=c1
ρ
ρ1
ρ2
38
Advektion
Flussform
Sei ρ(x, t) eine Dichte pro Langeneinheit und q(x, t) ein Flusspro Zeiteinheit. Dann ist eine Geschwindigkeit v(x, t)
v =q
ρ. (18)
Materielle Erhaltung
D
Dt
∫ x1
x2
ρ(x, t)dx + q(x1, t)− q(x2, t) = 0. (19)
Mit x1 → x2 erhalt man die Erhaltungsgleichung
∂ρ
∂t+
∂q
∂x= 0 (20)
Sei q = Q(ρ) ⇒ ρt + c(ρ)ρx = 0 mit c(ρ) = Q′(ρ).
Beispiele:
• ρ(x, t): Autos pro Langeneinheitq(x, t): Autos die x im Zeitintervall kreuzen.
• ρ(x, t): Kanal-Querschnittq(x, t): Volumenfluss durch Querschnitt q = Q(A).
• ρ(x, t): Dicke von Gletscher-Eisq(x, t): Vorbeifluss bei x.
39
Advektion
Schock (Brechen)
Es gelte q = Q(ρ) und die Erhaltung (19). Sei ein Sprung(Schock) da: x2 < s(t) < x1 (Konvention in dieser Literatur).Aus (19) folgt
q(x2, t) − q(x1, t) =D
Dt
∫ s(t)
x2
ρ(x, t)dx +D
Dt
∫ x1
s(t)
ρ(x, t)dx
= ρ(s−, t)s − ρ(s+, t)s +
∫ s(t)
x2
ρt(x, t)dx +
∫ x1
s(t)
ρt(x, t)dx (21)
Mit s = DsDt
. Fur x1 → s+ und x2 → s− verschwinden die beidenletzten Integrale weil ρt begrenzt. Somit
q(s−, t)− q(s+, t)︸ ︷︷ ︸
q2−q1
= s(ρ(s−, t) − ρ(s+, t)
)
︸ ︷︷ ︸U(ρ2−ρ1)
(22)
oder mit[..] als Symbol fur den Sprung
−U [ρ]︸ ︷︷ ︸
→ ∂ρ
∂t
+ [q]︸︷︷︸
→ ∂q
∂x
= 0 (23)
Wo q = Q(ρ) erfullt ist gilt also
U =q2 − q1
ρ2 − ρ1
=Q(ρ2) − Q(ρ1)
ρ2 − ρ1
(24)
Wir machen den Fall c2 > c1 physikalisch:
ρ =
ρ1, x > Utρ2, x < Ut (25)
In Schock-relativen Koordinaten:
q1 − Uρ1 = q2 − Uρ2 (26)
40
Advektion
q=q1
ρ=ρ1ρ=ρ2
2q=q
ρ=ρ1ρ=ρ2
ρ2 ρ1
U
2 q=q1q=q −U −U
moving relative
Schock-Struktur
(Physikalischer) Ansatz:
q = Q(ρ) − νρx, ν = const. (27)
eingesetzt in (20):
ρt + c(ρ)ρx = νρxx, c(ρ) = Q′(ρ) (28)
Anmerkung: Die Losung von
ρt = νρxx (29)
ist
ρ = ρ2 +ρ1 − ρ2√
π
∫ x/√
4νt
−∞exp(−ζ2)dζ. (30)
Losungsansatz fur (28):
ρ = ρ(X), X = x − Ut, U = const. (31)
Eingesetzt
(c (ρ) − U) ρX = νρXX. (32)
41
Advektion
Integriert nach ρ:
Q(ρ) − Uρ + A = νρX (33)
Gesucht: ρ → ρ1 fur X → ∞, ρ → ρ2 fur X → −∞. Sei auchρX → 0 fur X → ±∞.
Q(ρ1) − Uρ1 + A = Q(ρ2) − Uρ2 + A = 0 (34)
⇒ U =Q(ρ2) − Q(ρ1)
ρ2 − ρ1
(35)
Dies ist gerade die (richtige) Schock-Bedingung! Man kann mitdρ = ρXdX (33) umformen zu
X
ν=
∫dρ
Q(ρ) − Uρ + A(36)
Fur bestimmte Q(ρ) z.B. Q(ρ) = αρ2 + βρ + γ ist diesintegrierbar. U und A folgen aus (34). Dafur
X =ν
α(ρ2 − ρ1)log
ρ2 − ρ
ρ − ρ1
(37)
Ein Maß fur die Breite der Ubergangszone ist
ν
α(ρ2 − ρ1)(38)
ρ=ρ1
ρ=ρ2
x
ρ
∼ ν
42
Advektion
Numerische Losung der Advektionsgleichung
Die Erhaltungsform
∂ρ
∂t+
∂F (ρ)
∂x= 0, F (ρ) = vρ (39)
• umgesetzt in ein (versetztes) Gitter
ρt+∆ti = ρt
i −
(F t
i+12
− F ti−1
2
∆x
)
∆t. (40)
i−1 i i+1i+1/2i− 1/2
• umgesetzt in zentrierte finite Differenzen
F ti+1
2
=F t
i+1 + F ti
2⇒ ρt+∆t
i = ρti −(
F ti+1 − F t
i−1
2∆x
)
∆t. (41)
Diese Form ist numerisch instabil! (Beweis mitNeumannscher Stabilitatsanalyse)
Mathematisches Musterbeispiel: Lax-Wendroff
1. Ausgangspunkt: Taylor-Entwicklung
ρ(x, t + ∆t) = ρ(x, t) +∂ρ
∂t∆t +
∂2ρ
∂t2∆t2
2+O(∆t3) (42)
2. Ersetze Zeitableitung durch Ortsableitung. Ort und Zeitsind also nicht unabhangig!
ρ(x, t + ∆t) = ρ(x, t) − ∂F
∂x∆t +
∂
∂x
(∂F
∂ρ
∂F
∂ρ
∂ρ
∂x
)∆t2
2+O(∆t3)(43)
43
Advektion
• mit zentrierten Differenzen erhalt man
ρt+∆tn = ρt
n −(
F ti+1 − F t
i−1
2∆x
)
∆t +v∆t2
2
(F t
i+1 − 2F ti + F t
i−1
∆x2
)
,(44)
• oder in Erhaltungsform:
F ti+1
2
=1
2
(F t
i+1 + F ti
)−(F t
i+1 − F ti
) v∆t
2∆x(45)
• Fur diese Formen gilt das Courant-Friedrichs-Lewy (CFL)Stabilitatskriterium v∆t/∆x ≤ 1.
Upwind Methoden: Der Natur nachempfunden
1. Ordnung:
F ti+1
2
=
F t
i v > 0F t
i+1 v < 0 (46)
Das Schema ist monoton (erzeugt keine falschlichen Extrema).Godunov (1959) zeigt: Lineare monotone finite Differenzen sindnur 1. Ordnung genau (=sehr diffusiv). Ausweg: NichtlineareSchemen, z.B basierend auf Total Variation Diminishing:
TV D =
N∑
i=1
|uti+1 − ut
i|. (47)
TVD ist ein Maß fur Oszillationen. Kriterium fur TVD istTV (ut+∆t) ≤ TV (ut). Zentrales Element ist der sog. Limiter.
F = F1 + C(. . .)F2 (48)
44
Advektion
Flux-corrected Transport
φn+1i − φn
i
∆t+
(Fi+1
2− Fi−1
2
∆x
)
= 0 (49)
• F Li±1
2
=monoton und diffusiv (Donor Cell)
• F Hi±1
2
=hohere Ordnung
• Ai+12= F H
i+12
− F Li+1
2
=Anti-diffusive Flusse
• φtdi = φn
i − ∆t∆x
δxF L=transported+diffused
• ACi+1
2
= Ci+12Ai=1
20 ≤ C ≤ 1=Limter C
• C so gewahlt, dass keine falschlichen Extrema generiertwerden konnen.
• φn+1i = φtd
i − ∆t∆x
δxAC=verbesserte Losung
Noch verstandlich: Der Limiter von Boris und Book (1973)
ACi+1
2
= Si+12 0, MIN
[|Ai+1
2|,
Si+12
(φtd
i+2 − φtdi+1
)∆x∆t
,
Si+12
(φtd
i − φtdi−1
)∆x∆t
](50)
mit S = A/|A|.
45
Advektion
-20
0
20
40
60
80
100
120
0 10 20 30 40 50 60 70 80 90 100
AM
PLIT
UD
E
GRIDPOINT
CFL=0.40 (steps=250)
initFL
Low order
-20
0
20
40
60
80
100
120
0 10 20 30 40 50 60 70 80 90 100
AM
PLIT
UD
E
GRIDPOINT
CFL=0.40 (steps=250)
initFH
High order
-20
0
20
40
60
80
100
120
0 10 20 30 40 50 60 70 80 90 100
AM
PLIT
UD
E
GRIDPOINT
CFL=0.40 (steps=250)
initFCT
Limited
46
Advektion
Zeitintegration 3. Ordnung
• Adams-Bashforth
ρn+1i = ρn
i +∆t
12
(23δiF
n − 16δiFn−1 + 5δiF
n−2)
(51)
• Runge-Kutta
ρ∗i = ρn
i − ∆t
3δiF
n (52)
ρ∗∗i = ρn
i − ∆t
2δiF
∗ (53)
ρn+1i = ρn
i − ∆tδiF∗∗. (54)
Zweidimensionaler Rotationstest
∂ρ
∂t= −∂F
∂x− ∂G
∂y(55)
Testfeld
u = −Ω(y − y0), v = −Ω(x − x0) (56)
47
Advektion
48
Advektion
49
Advektion
50
Dammbruch
Dammbruch-Problem mitFlachwasser-Gleichungen
Flachwasser-Gleichungen 1-D:
∂u
∂t+ u
∂u
∂x+ g
∂h
∂x= 0 (57)
∂h
∂t+
∂
∂x(uh) = 0 (58)
mit c2 = gh ergibt sich(
∂
∂t+ (u ± c)
∂
∂x
)
(u ± 2c) = 0. (59)
In der x-t-Ebene gilt auf den Charakteristiken DxDt
= u ± c fur dieRiemannsche Invariante u ± 2c=const. Das System isthyperbolisch. Wir betrachten den Anfangszustand:
h =
h0, x ≤ 0,0, sonst (60)
Fur t < 0, x < 0 gilt fur die Charakteristiken u = 0,DxDt
= ±c0 =√
gh0. Die Chrakteristiken sind Geraden:x = ±c0t + const.
• Front x > 0: u = 2c0 folgt aus u + 2c = 2c0 mit c = 0(wegen h = 0). Integriert: x = 2c0t.
• Ruhezone x < 0: DxDt
= −c0 folgt aus u = 0. Integriert:x = −c0t
51
Dammbruch
Der Bereich −c0t < x < 2c0t heisst centered simple wave. Aufeiner negativen Charakteristik gilt dann: Dx
Dt= u − c = x/t. Aus
u + 2c = 2c0 und u − c = x/t folgt die Losung fur c und u:
c =1
3(2c0 − x
t) (61)
u =2
3(c0 +
x
t) (62)
Die Losung fur h ist dann:
c =√
gh =
c0 =√
gh0, −∞ < x ≤ −t√
gh0
13
(2c0 − x
t
), −t
√gh0 ≤ x ≤ 2t
√gh0
0, 2t√
gh0 < x < ∞(63)
Bemerkung: Bei x = 0 gilt h = 49h0 und u = c.
0
0.2
0.4
0.6
0.8
1
1.2
-10 -5 0 5 10
h
x
dam break h0=1.00 g=1.00
t=0t=1t=2t=3t=4
52
Dammbruch
Erhaltungs-Gleichungen fur Flachwasser
∂
∂tP (u, h) +
∂
∂xQ(u, h) = 0 (64)
Man kann immer neue Erhaltungsformen generieren falls:
Qu = uPu + hPh, Qh = gPu + uPh (65)
Die ersten sind:
Erhaltung P QImpuls/Einheitsmasse u 1
2u2 + gh
Masse h uhImpuls uh u2h + 1
2gh2
Energie 12u2 + 1
2gh2 1
2u3h + ugh2
Namenlos 13u3h + ugh2 1
3u4h + 3
2u2gh2 + 1
3g2h3
Bei einem Schock bleibt die Energie nicht erhalten! DieSchock-Bedingungen fur Masse und Impuls sind:
−U [uh] +
[
u2h +1
2gh2
]
= 0 (66)
−U [h] + [uh] = 0 (67)
Hier z.B. tritt sofort Shock auf auf mit U = const.
Damm
h1
h0
x
Es ist u0 = 0, somit wird z.B aus (67)
−U(h0 − h2) + u0h0 = 0 (68)
53
Dammbruch
Dammbruch mit Schock
Es gibt mehr Unbekannte als Gleichungen, man kannberechnen:
u2
c0
=U
c0
− c0
4U
(
1 +
√
1 + 8
(U
c0
)2
)
,c2
c0
=
√√√√1
2
(√
1 + 8
(U
c0
)2
)
(69)
h0
t=t0
x=−c1tx=(u2−c2)t x=Ut
x
x
t
h1
h2
(1) (3) (2) (0)
Aus u + 2c = const folgt in Gebiet (3) wegen u1 = 0:
u + 2c = 2c1, u + 2c = u2 + 2c2 ⇒ u2 + 2c2 = 2c1 (70)
Die Losung von (70) fur U als Funktion von (h1/h0) mußgrafisch oder iterativ erfolgen.
In Gebiet (3) gilt wieder
Dx
Dt= u − c = 2c1 − 3c =
3
2u − c1 (71)
und die Losung in (3) ist
c2 =1
9
(
2c1 − x
t
)2
u =2
3
(
c1 +x
t
)
(72)
54
Dammbruch
0
0.5
1
1.5
2
2.5
1 1.5 2 2.5 3 3.5
U/c0
dam break with shock
h0/h1=0.1384
u2/c0=1.79
U/c0=2.60
u2/c0c2/c0h0/h1u/c0
• Losung (72) ist in Gebiet (3) eine Parabel. Sie hat keinehorizontale Tangente zu Gebiet (1) und (2)!
• Fur u2 > c2 liegt x = 0 in Gebiet (3). Es gilt h = 49h1 und
u = 23c1 und somit der Durchfluss uh unabhangig von t
und von h0. Es gilt auch c = u, somit kann keineInformation stromauf wandern.
• u2 = c2 ⇒ h0/h1 = 0.1384.
• Fur h0/h1 < 0.1384 liegt x = 0 im Gebiet (2). Auch hierist der Durchfluss unabhangig von t weil u2 = const, aberabhangig von h0.
55
Dammbruch
Durchfluss
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0 0.2 0.4 0.6 0.8 1
h0/h1
(dQ/dt)/(h1 c1)
h0/h1=0.138
dQ/dt=0.29 h1 c1
Schockfront
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0 0.2 0.4 0.6 0.8 1
h0/h1
(h2-h0)/h1
h0/h1=0.176
h2-h0=0.32 h1
56
Dammbruch
Die Grenzfalle fur h0/h1
t=t0x=−c1t
x=Utx=+c1t
h0
t=t0
x=Ut
h2 h0
x=−c1t
x
x
h1
t
(0)(2)(3)(1)
x
x
t
h1
(1) (3) (2) (0)
x=2c1t
Zusammenfssung der Losung
h(x, t) =
h1 x < −c1t,19g
(2c1 − x/t)2 −c1t < x < (u2 − c2)t,
h2 (u2 − c2)t < x < Ut,0 Ut < x,
(73)
u(x, t) =
0 x < −c1t,23(c1 + x/t) −c1t < x < (u2 − c2)t,
u2 (u2 − c2)t < x < Ut,0 Ut < x,
(74)
u2 = U − gh0
4U
[
1 +
(
1 +8U2
gh0
)12
]
, (75)
c2 =
gh0
2
[(
1 +8U2
gh0
)12
− 1
]12
, (76)
h2 = c22/g, (77)
u2 = 2(gh1)12 − 2c2. (78)
57
Dammbruch
Bewegter Damm mit U0
Es gelte 0 < U0 < 2c1.
3/2U0−c1
c1
U0
x
h1
Fur x + c1t > 0 haben wir die Invariante u + 2c = 2c1. Fur den
bewegten Damm gilt x = U0t . Aus der Invariante folgt:
U0 + 2c = 2c1 ⇒ c = c1 − 12U0. Die Verbindungsbedingung
zwischen Front und Parabel ergibt sich aus der negativenCharakteristik:
u = U0, c = c1 − 1
2U0 ⇒ Dx
Dt= u − c =
3
2U0 − c1, (79)
⇒ x =
(3
2U0 − c1
)
t (80)
Die Losung ist somit
c = (gh)12 =
c1 x < −c1t,13(2c1 − x/t) −c1t < x <
(32U0 − c1
)t,
c1 − 12U0
(32U0 − c1
)t < x < U0t,
0 x > U0t,
(81)
u =
0 x < −c1t,23(c1 − x/t) −c1t < x <
(32U0 − c1
)t,
U0
(32U0 − c1
)t < x < U0t,
0 x > U0t
(82)
58
Dammbruch
Vergleiche mit Wasserkanal
Dammbruch-Losung unrealistisch. Realistischer Ansatz:
uf = k(g∗hf)12 , g∗ = g∆ρ/ρ, k ≈ 1. Damit
uf =2kc1
2 + k(83)
hf = h1
(2
2 + k
)2
(84)
Unser Wasserkanal: h1=15 cm, beobachtete Dicke derDichtestromung hf ≈ 2.2 cm. Bemerkung: Passtnicht-Erklarungsbedarf!
Zu den numerischen Modellen gibt es eine Beilage!
59
top related