Introduction to Unix, DTDM, GrADS
http://www.atmos.ucla.edu/~fovell/AOSC115/
Some Unix basics (basis of Linux and Mac OS X)
• The command prompt is $ (do not type it) • Unix commands presented in Courier font $ ls
[lists your “visible” files] $ ls -a
[lists all files, including invisible] $ ls -al!
[lists all files, includes size & other info] $ pwd
[print working directory - shows your location]
Some Unix basics (continued)
$ mkdir TEST [makes a directory called “TEST”]
$ cd TEST [changes directory to “TEST”]
$ cd ..! [moves UP in directory hierarchy]
$ cd TeST [command should FAIL… Unix is usually CASE SENSITIVE – though it isn’t on Mac]
Some Unix basics (continued)
$ touch crap.txt [makes an empty file]
$ gedit crap.txt !! [invoked Notepad-like text editor on Synoptic Lab machines] [add some text, save file and exit]
$ ls -al crap.txt! [see it’s there]
$ cp crap.txt crap.txt.backup! [make a copy with cp]
$ rm crap.txt [the remove command. Asks for confirmation. Don’t type ‘y’]
$ \rm crap.txt! [remove without confirmation. Think before hitting ENTER!]
Some Unix basics (continued)
$ mkdir BACKUP [makes a new directory]
$ cp crap.txt.backup BACKUP/. [type exactly as written - there is NO space before the period] [the period means “keep the same name”]
$ ls -al BACKUP/! [see a copy is in the new location]
$ mkdir BACKUP/more_backup! [a new subdirectory in a directory]
$ cd BACKUP/more_backup [move to new subdirectory]
$ cd!$ pwd
[cd by itself always takes you to your home directory]
Some Unix basics (continued)
$ cp /home/fovell/part* . [asterisk is wild card character. There IS a space before the period] [copies all files matching text pattern to your directory]
$ ls part* [lists files matching pattern]
$ cat part1 part2 > both_parts! [concatenates files] [greater-than sign is output redirect]
$ more both_parts! [more lists contents, one screen at a time] [hit space bar for next screenfull, type “q” to quit]
Your Unix PATH $ cp /home/fovell/execute_me . $ execute_me
- if you receive execute_me: command not found your PATH needs changing - The PATH is an environment variable that tells Unix where to find stuff, and the order in which to look
$ ./execute_me - this forces Unix to look in the current directory for the program to run
Fortran compiler
• Try this command $ which ifort
• If you get this… we definitely need to alter your Unix environment
$ ifort: Command not found!
Preparation for new users [for users with bash shell ONLY]
$ cd $ mv .bash_profile .bash_profile_old!
[mv is move command] ![.bash_profile is script file of commands, paths, etc., executed for
every new terminal window] $ cat .bash_profile_old /home/fovell/addon2014.sh
> .bash_profile [type exactly as shown] [greater-than sign is output redirect]
$ source .bash_profile! [changes to script file in present window do not take effect until “sourced”]
$ which ifort! [see: /opt/intel/composer_xe_2015.0.090/bin/intel64/ifort ]
$ which grads! [see /usr/bin/grads]
DTDM on our Synoptic Lab Linux computers
• Synoptic Lab computers open during business hours ONLY and printing is difficult $ cp /home/fovell/DTDM_package_linux.tar . [note space and period!]
$ tar –xvf DTDM_package_linux.tar! $ cd DTDM! $ make! [makes the dtdm executable file]
Using DTDM $ dtdm < input_thermal.txt! [runs model, makes output] [less-than sign provides contents of txt file to the dtdm executable]
$ grads –l!! [starts up GrADS; ga-> is GrADS prompt] ga-> open thermal.anelastic!ga-> query file
Getting to know GrADS • Important commands open [file] ! ! !open my_experiment!q or query ! ! !q file, q dims!d or display! ! !d theta, d qvapor!c or clear ! ! !c!set gxout ! ! !contour, shaded, print, scatter!d u;v ! ! ! ![plots vectors!set t 13 ! ! ![sets to 13th time!set cint 1.5! ! ![contour interval!set ccolor 4! ! ![contour color blue!printim out.gif gif ![makes a GIF plot!set display color white ![makes white background**!quit ! ! ! ![quits GrADS!
!
**GrADS 2.1 and later ignores “color”, so ‘set display white’ suffices
http://grads.iges.org/grads/gadoc/gadocindex.html
Using DTDM (cont.) File 1 : DTDM demo simulation Descriptor: thermal.anelastic.ctl Binary: thermal.anelastic.dat Type = Gridded Xsize = 99 Ysize = 1 Zsize = 82 Tsize = 11 Number of Variables = 17 u 82 0 horizontal velocity up 82 0 pert horizontal velocity w 82 0 vertical velocity th 82 0 potential temperature thp 82 0 pert potential temperature pi 82 0 ndim pressure pip 82 0 pert ndim pressure ppmb 82 0 pert pressure in millibars pbyc 82 0 buoyancy pressure in millibars pdyn 82 0 dynamic pressure in millibars ptot 82 0 total pressure in millibars dudtd 82 0 U acceleration - dynamic dudtb 82 0 U acceleration - buoyancy dudtt 82 0 U acceleration - total dwdtd 82 0 W acceleration - dynamic dwdtb 82 0 W acceleration - buoyancy dwdtt 82 0 W acceleration - total
• running dtdm model created two new GrADS files: thermal.anelastic.ctl!thermal.anelastic.dat • contents of thermal.anelastic.ctl shown at left!
ga-> set t 6 ga-> start.gs ga-> d thp
ga-> c ga-> set black 0 0 ga-> d thp
ga-> d ppmb [Note zero contour is back…]
ga-> c ga-> set ccolor 1 ga-> d pbyc
ga-> c ga-> set ccolor 4 ga-> d pdyn
GrADS default color sequence
http://grads.iges.org/grads/gadoc/gadocindex.html
ga-> c ga-> set ccolor 2 ga-> d w*100
ga-> c ga-> set gxout shaded ga-> d w ga-> scripts/cbarn.gs ga-> set gxout contour ga-> set ccolor 1 ga-> d dwdtt
dwdtt is Lagrangian dw/dt, not Eulerian ∂w/∂t
ga-> set t 9 ga-> c ga-> d u;w
ga-> c ga-> d skip(u,2,3);w
Control vector length with set arrscl 0.5 20.0![standard length set to 20 m/s]
ga-> c ga-> q dims ga-> set x 30 70 ga-> set xaxis 30 70 10 ga-> d skip(u,2,3);w
Zoom in
ga-> draw xlab x (km) ga-> draw ylab height (km) ga-> draw title EXP01 uw t=9 ga-> printim example01.gif gif
Outside of GrADS, can display images using display!
scripts/thermal.gs 'set mproj off' 'set display color white' 'clear' 'set grads off' 'scripts/rgbset.gs' * plot w 'set x 30 70' 'set gxout shaded' 'set clevs -12.5 -10 -7.5 -5 -2.5 0 2.5 5 7.5 10 12.5' 'set ccols 49 47 45 43 41 0 61 62 63 65 67 69' 'd w' 'scripts/cbarn.gs' 'set gxout contour'
http://grads.iges.org/grads/gadoc/script.html#intro
ga-> set t 6 ga-> scripts/thermal.gs
Three important commands ga-> reset!
• resets GrADS environment to starting conditions… Time dimension set to 1st time, gxout to contour, etc.. Does not close open files. ga-> reinit!
• resets AND closes all open files. “All but quit.” ga-> quit!
Running another case $ gedit! [edit input_thermal.txt] [change casename, ianelastic, csnd] ! &experiment! casename = 'thermal.nonanelastic.30',! $!! &framework! ipressure = 1,! ianelastic = 0,! csnd = 30.,! $!!!
$ dtdm < input_thermal.txt!
Multiple files with GrADS $ grads –l!! ga-> open thermal.anelastic!ga-> open thermal.nonanelastic.30
When multiple files are open, append file number to variable name: e.g., d thp.2!
ga-> start.gs ga-> set t 11 ga-> scripts/thermal.gs ga-> set gxout contour ga-> set ccolor 1 ga-> set cthick 8 ga-> set cint 0.1 ga-> d ppmb.1-ppmb.2
Animations made painless
ga-> step.gs thp 1 11 1.0
Plots field thp!…for steps through times 1 through 11, inclusive …with contour interval 1.0 …hit return to proceed to the next time
ga-> c ga-> set x 50 ga-> set z 1 ga-> set t 1 11 ga-> d max(w,z=1,z=82) ga-> set ccolor 4 ga-> d max(w.2,z=1,z=82)
Time series plots
ga-> c ga-> set x 50 ga-> set z 1 82 ga-> set t 1 11 ga-> d thp
Hovmoller plots
More on GrADS image output ga-> printim image01.png ga-> printim image01.jpg jpg !ga-> enable print image01.m!ga-> print!ga-> disable print
Once a *.m file is created, it can be converted (outside of GrADS) to a postscript or eps file !$ gxps –c –i image01.m –o image01.ps!$ gxeps –c –i image01.m –o image01.eps!!
GrADS 2.1 simplifies all of this…
Final cautions
• Make backups • This command runs the model $ dtdm < input_thermal.txt
• This command destroys the input file! $ dtdm > input_thermal.txt!!
Advice
• Don’t ask what’s the least you can do for me. Instead, ask what’s the most you can do for yourself.