ATS Programming Short Course
Spring 2009
Syllabus (pdf)
Edited by Colette Heald (02/16/09)
I. Introductory Concepts
Instructor: Matt Masarik
Email: mmasarik (at) atmos.colostate.edu
Times: Tuesday, 3:00-5:00pm, see dates listed below.
Place: ATS 101
Preface: I hope to cover most of the topics given in the
syllabus above, though in a different order---see weekly topics below.
Please let me know if there is something you specifically would like
to see covered. The intended audience is first year students
and (almost) no experience is assumed.
Resources - Web links
and downloads related to Unix/Linux and other introductory concepts.
(Updated: Tuesday, March 17, 2009)
Week 1 (Jan 20 2009)
Introduction: Unix background/overview, basic data structures.
PPT 1 |
PDF
PPT 2 |
PDF
Week 2 (Jan 27 2009)
Working in a Unix(-like) environment: Unix terminology, essential
commands, shells(what they are/types/scripting),text editor(s).
Notes to be posted between 1-2pm.
PPT 2 |
PDF
Week 3 (Feb 03 2009)
Network related topics: tunneling, vpn, ssh, ftp, scp,
creating/maintaining a simple webpage (html), brief look at data
format types.
Updated (feb 03 1:10pm) - The first part of class I'll
cover the Unix/Linux commands left from last lecture.
The second part will be a demo illustrating many of these commands
to transfer and work with data over a network.
Part of the process involves a nice opportunity to use a shell
script.
PPT |
PDF
Week 4 (Jan 10 2009)
Introduction to computer science: discrete logic, problem solving
methodology, algorithm design, program structure, good programming
practices, development/debugging tips.
PPT
II. Fortran 90/95
Instructor: Kate Thayer-Calder
Email: katetc (at) atmos.colostate.edu
Times: Tuesday, 3:00-5:00pm, see dates listed below.
Place: ATS 101
Preface: I, also, hope to cover most of the topics given in the
updated syllabus linked above. The intended audience is first year students
and (almost) no experience is assumed. This course does not cover fixed-format
Fortran (FORTRAN 77) or advanced topics such as HPC.
Fortran Class Info Sheet
Week 5 (Feb 17, 2009)
Introduction: Creating a basic program in Fortran.
Key |
PDF |
PPT
Example code
ILikePie.f90,
ClimateModel.f90,
TestingInts.f90,
Statistics.f90
Homework #1 PDF
Week 6 (Feb 24, 2009)
Step 2: Control Structures and Multi-Dimensional Arrays.
Key |
PDF |
PPT
Example code
OscarsIF.f90,
OscarsCase.f90,
OscarCount.f90,
MultiArray.f90,
OscarCount2.f90,
OscarCount3.f90
Homework #2 PDF
Week 7 (March 3, 2009)
In's and Out's of Files
Key |
PDF |
PPT
Example code
RelativeHumidity.f90,
RH.f90,
RelativeHumidityMods.f90,
AtmosLib.f90,
makefile
WriteExample.f90,
ReadExample.f90,
ReadUnformatted.f90,
ComplexAtmos.f90,
StdAtmos.f90
Factorial.f90,
Fibbonacci.f90
Week 8 (March 10, 2009)
Dealing with Data
Key |
PDF |
PPT
Example code
makefile,
WriteExample2.f90,
ReadBadData.f90,
Histogram_MyData.f90
Data File: NCEP.Precip.0100-1204.nc,
NCEP.precip.metadata.txt
read_netcdf.f90,
PlayWithPrecip.f90,
PrecipClimatology.f90,
DaisyEsq.f90
III. IDL: Interactive Data Language
Instructor: Rachel McCrary
Email: rachel (at) atmos.colostate.edu
Times: Tuesday, 3:00-5:00pm, see dates listed below.
Place: ATS 101
Preface:
IDL Class Info Sheet
Week 9 (March 24, 2009)
Introduction to IDL.
Key |
PDF |
PPT
Example code
arr_matrix_multip.pro,
array_arith.pro,
array_character.pro,
convert_variables.pro,
create_lat_lon.pro
example_print_command.pro,
hello_world.pro,
loop_comparison.pro,
max_location.pro,
order_operations.pro
sphere_info.pro,
string_conversions.pro
surface_area_of_sphere.pro
test_for.pro
test_if.pro
variable_types.pro
volume_of_sphere.pro
spheres.pro
Week 9 (March 24, 2009)
Introduction to IDL.
Key |
PDF |
PPT
Example code
Week 11 (April 7, 2009)
Contour Mapping.
Key |
PDF |
PPT
Example code
cbar.pro,
cindex.pro,
contour1.pro,
contour2.pro,
contour3.pro
legend.pro,
make_postscript.pro,
plotting_colors.pro,
wrapping.pro
Data sets
data.txt is a 41 x 41 block of data representing "elevation"
the data set covers the area 24.0 N to 48 N and -122.0 W to -72 W
with 0.6 degrees between each grid point in the meridional direction
and 0.75 degrees between each grid poin in the zonal direction.
This dataset was obtained from D. Fanning
tas_gfdl.nc is a global surface temperature dataset from the
Climate of the 20th Century simulations produced with the
GFDL CM 2.0 GCM. This dataset was obtained from the PCMDI website.
Week 12 (April 7, 2009)
Optimization and Statistical Techniques.
Key |
PDF |
PPT
Example code
cindex.pro,
colors_anomalies.pro,
eof_example.pro,
global_temp.pro,
power_spec_example.pro
read_had_global.pro,
read_sun_spot.pro,
rm_seasonal_cycle.pro,
rmv_season.pro
temp_trend.pro
temp_vs_sunspot.pro
Data sets
GP_precip.txt is timeseires of monthly mean Great Plains Preciptation
Extending from 1901-2002. This data set was derived from the CRU TS 2.1 preciptation data set.
hadcrut3gl.txt is a global combined land and
marine [sea surface temperature (SST) anomalies from HadSST2,
see Rayner et al., 2006] temperature anomalies on a 5 x 5 degree grid-box basis.
anomalies are taken relative to the 1961-1990 base. The timeseires extends from
1850-present. For each year, the first row represents the monthly mean temperature anomalies
and the second row represents the percent of the globe with data.
nino3.4_index.txt is a timeseires of the Nino 3.4 index.
The timeseires extends from 1870-2002
sunspot_activity is a timeseries of the
monthly mean international sunspot number from
http://www.ngdc.noaa.gov/stp/SOLAR/ftpsunspotnumber.html
The timeseries extends from 1850-present.
zg_ukmo.nc is a global geopotential height dataset from the
Climate of the 20th Century simulations produced with the
HadCM3 GCM. This dataset was obtained from the PCMDI website.
IV. MATLAB: MATrix LABoratory
Instructor: Kate Musgrave
Email: kate (at) atmos.colostate.edu
Times: Tuesday, 3:00-5:00pm, see dates listed below.
Place: ATS 101
Preface:
MATLAB Class Info Sheet
Week 13 (April 21, 2009)
Introduction to MATLAB.
PDF |
PPT
Week 14 (April 28, 2009)
Programming in MATLAB.
PDF |
PPT
Example code
first_program.m,
first_program_v2.m,
stat.m,
stat2.m,
calcERadius.m,
triDiagMatrix.m,
our_vars.mat,
readField.m
Week 15 (May 5, 2009)
Graphics in MATLAB.
PDF |
PPT
Example code
AIRC_lifetime_plot.m,
make_ind_plot.m,
IntFig200525.tif,
vort193_fig.tif
Week 16 (May 12, 2009)
MATLAB Extras.
PDF |
PPT
Example code
AIRC_map_all.m,
AIRC_map_all.mat,
AIRC_map_all.tif