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