Manish Kumar Assistant Professor Department of Civil Engineering Indian Institute of Technology Bombay, Mumbai |

insert content here

**C++**

C++ is a very powerful object oriented programming language.
OpenSees is written primarily in C++ and its required if you
plan to write a new material or element in OpenSees. A
useful reference that was sufficient for me to get the
background of C++ was:

Object oriented programming in C++(4th edition): Robert
Lafore

**Fortran
**

Fortran has been used for a long time and is very simple and powerful for numerical computations. It is reuired if you plan to write a new user subrouitne(UMAT, VUMAT, UEL etc.) in ABAQUS.

Introductory F77 notes are available on

http://www.idris.fr/data/cours/lang/fortran/f90/F77.html

http://www.stanford.edu/class/me200c/tutorial_77

http://www2.ph.ed.ac.uk/~playfer/f77_tut.html

A good reference accesible freely on web is Numerical Recepies of Cambridge University Press (Not recommended for learning basics of fortran):

http://imf.ing.ucv.ve/_1numerical_recipe/Fortran77.html

Books that I explored for introductory Fortran 77 were:

Structured FORTRAN 77 for engineers and scientists: Delores M. Etter

Fortran 90 for scientists and engineers: Brian D Hahn

Matlab is one of the most widely used tool by engineers and scientists for numerical computations. It has a vast library of pre-defined mathematical functions and routines that helps programmer to write codes that are much shorter that if the same program is written in C++ or Fortran. However, this comes at a cost of longer executation time than pre-compiled languages like C++ and Fortran.

Wide literature and support is available for Matlab on web. Some of the resources that I found useful for my coursework and research while doing Matlab programming are listed below:

Finite Element Programming using Matlab:

http://www.math.mcmaster.ca/~bprotas/MATH745b/matlab_fem.pdf