F90 or FORTRAN90, is the successor to the Fortran77 language.
The new array syntax added to FORTRAN90 is one of the nicest features for general scientific programming. Other useful features include a standard random number generator, a standard way to get the time and CPU time, and some ways to make a chunk of data available without resorting to common blocks or very long argument lists.
C examples which illustrate features of the C language.
C++ examples which illustrate features of the C++ language.
F77 examples which illustrate features of the FORTRAN77 language.
F90_INTRINSICS examples which illustrate the use of FORTRAN90 intrinsic functions.
G95_INTRINSICS examples which illustrate the use of intrinsic functions peculiar to the G95 FORTRAN compiler.
GFORTRAN is a directory which includes examples of the use of the GFORTRAN compiler with FORTRAN90 code.
GFORTRAN_INTRINSICS is an executable FORTRAN90 program which demonstrates the use of some of the intrinsic functions included with the GFORTRAN compiler.
MAKEFILES examples which show how to use makefiles with a set of FORTRAN90 files.
matlab examples which illustrate features of MATLAB.
MIXED examples which show how to write a program partly in FORTRAN90 and partly in some other language.
MPI examples which show how to set up parallel programs in FORTRAN90.
TIMER examples which show how to compute elapsed CPU time in FORTRAN90.
TIMESTAMP a library which shows how to get a timestamp in FORTRAN90.
XLF_INTRINSICS is a directory which includes some examples of the use of intrinsic functions peculiar to the IBM XLF FORTRAN compiler.
I would recommend the book by Ellis, Philips, and Lahey, but I believe it is out of print, so it may be hard to find. My feeling is that this book does an excellent job of discussing how to use FORTRAN90, with examples that make sense.
I refer to the handbook by Adams, Brainerd, Martin, Smith and Wagener; this covers everything in the language, so you won't ever come away from the book without some information. However, because it needs to discuss everything, the book is choppy, indigestible in large quantities, does not contain extensive examples, and never says that some features of the language are bizarre or of little use.
The book by Press, Flannery, Teukolsky and Vetterling is useful as an introduction to the ideas of numerical computation, and how to embody an algorithm in a language such as FORTRAN. This particular edition is in FORTRAN77, but a second version of the book was made available in FORTRAN90. I can't recommend that book, at least not for a beginner, since it determinedly jumps into the more arcane features of FORTRAN90 and has a far less friendly approach.
BIG_INTS shows how you can use the new KIND qualifier to create, for example, really big integers.
BINARY_TREE shows how a binary tree can be defined and manipulated, using the FORTRAN90 "POINTER" type.
CHAR_ALLOC shows that in FORTRAN90 it is possible to declare an allocatable array of characters, for which the dimension is not specified in advance. Note, however, that the "length", that is, the "LEN" parameter, must be specified explicitly. It is not possible to make the "LEN" parameter "allocatable" until FORTRAN2003.
CONSTANT_TYPE shows that FORTRAN90 constants have a type, and that if you don't specify it for real values, the default will be single precision.
DIGITS investigates how many digits you can usefully specify for data.
DIVISION shows that, if you're expecting double precision accuracy, you need to specify your constants carefully, as double precision values.
DOUBLE_COMPLEX shows how you can use the new KIND qualifier to create and use variables of type "double precision complex".
EXPONENT_FORMAT_OVERFLOW shows that (at least some) FORTRAN compilers cannot properly print real numbers with exponents of magnitude greater than 99. This becomes an especially serious problem if you write a very large or very small number out, and then read it back in, only to find that it has suddenly entirely lost its exponent, and now has magnitude roughly 1!
EXPONENTIAL investigates ways of approximating the exponential function.
HELLO is just a "Hello, world!" program.
LINKED_LIST shows how a linked list can be defined, using the FORTRAN90 "POINTER" type.
MATRIX_FUNCTION_TEST shows how you may now define a function whose return value is a matrix.
MAXMIN_TEST shows the use of the very useful MAXVAL and MINVAL operators for vectors and arrays, and the so-very-fussy and hence maddeningly useless operators MAXLOC and MINLOC.
MXM multiplies two matrices using the MATMUL intrinsic.
RANDOM_PRB demonstrates the random number routines.
RANDOM_TEST tests the random number routines.
READ_VARIABLE_RECORDS shows how to read lines of data when you don't know how many items are on each line. We're assuming that every item is in "I4" format, but the number of such items variables from line to line.
REAL_KIND shows how to declare real data types of various precision, and to inquire about their properties.
RECURSIVE_FUN_TEST shows how you can use recursion in a function definition.
RECURSIVE_SUB_TEST shows how you can use recursion in a subroutine definition.
SGE_MOD tries to set up an interesting example of the use of modules. In this case, the idea is that a set of linear algebra routines will share a module that stores the value of a matrix, its LU factor and determinant, and also knows which of these items have been computed. This hides a lot of information from the user, and makes for simple calls.
SORT_TEST bubble-sorts a real vector.
WHERE_TEST demonstrates the WHERE statement.
You can go up one level to the FORTRAN90 source codes.