Está en la página 1de 3

\documentclass{article}% \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage[spanish]{babel} \usepackage{color} \usepackage{listings} \usepackage{listings}% \usepackage{amsmath}% \setcounter{MaxMatrixCols}{30}% \usepackage{amsfonts}% \usepackage{amssymb}% \usepackage{graphicx} %TCIDATA{OutputFilter=latex2.dll} %TCIDATA{Version=5.50.0.

2960} %TCIDATA{LastRevised=Thursday, March 29, 2012 15:16:53} %TCIDATA{<META NAME="GraphicsSave" CONTENT="32">} %TCIDATA{<META NAME="SaveForMode" CONTENT="1">} %TCIDATA{BibliographyScheme=Manual} %BeginMSIPreambleData \providecommand{\U}[1]{\protect\rule{.1in}{.1in}} %EndMSIPreambleData \definecolor{gray97}{gray}{.97} \definecolor{gray75}{gray}{.75} \definecolor{gray75}{gray}{.45} \lstset{ frame=Ltb, framerule=0pt, aboveskip=0.5cm, framextopmargin=3pt, framexbottommargin=3pt, framexleftmargin=0.4cm, framesep=0pt, rulesep=.4pt, backgroundcolor=\color{gray97}, rulesepcolor=\color{black}, stringstyle=\ttfamily, showstringspaces = false, basicstyle=\small\ttfamily, commentstyle=\color{blue}, keywordstyle=\color{red}, numbers=left, numbersep=15pt, numberstyle=\tiny, numberfirstline = false, breaklines=true, } \lstnewenvironment{listing}[1][] {\lstset{#1}\pagebreak[0]}{\pagebreak[0]} \lstdefinestyle{consola} {basicstyle=\scriptsize\bf\ttfamily, backgroundcolor=\color{gray75}, } \lstdefinestyle{Fortran}{language=[90]Fortran} \begin{document} \noindent Escribe el siguiente cdigo en un archivo llamado \texttt{hello.for} \begin{lstlisting}[style=Fortran] CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC PROGRAM EXMPL3 C Example 3: Bound states in a one-dimensional potential

C COMPUTATIONAL PHYSICS (FORTRAN VERSION) C by Steven E. Koonin and Dawn C. Meredith C Copyright 1989, Addison-Wesley Publishing Company, Inc. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CALL INIT !display header screen, setup parameters 5 CONTINUE !main loop; execute once for each set of param CALL PARAM !get input parameters CALL ARCHON !solve time-independent Schroedinger equation GOTO 5 END CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC SUBROUTINE ARCHON C solves the time-independent Schroedinger equation for 1-dimensional C potential; allows for more than one eigenvalue search CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C Global variables: INCLUDE 'IO.ALL' INCLUDE 'PARAM.E3' C Local variables: REAL ENERGY(MAXLEV) !array of eigenvalues INTEGER LEFTTP(MAXLEV),RGHTTP(MAXLEV) !array of turning points INTEGER NFOUND !number of levels found REAL PSI(MAXLAT) !wave function INTEGER ITER !continue finding levels? INTEGER NODES !number of nodes REAL E !trial eigenenergy INTEGER LTP,RTP !classical turning points (lattice) REAL DE,DESAVE !step in energy search INTEGER NSTP !number of steps taken in search INTEGER SCREEN !send to terminal INTEGER PAPER !make a hardcopy INTEGER FILE !send to a file C Functions: REAL GETFLT !obtain real input INTEGER YESNO !obtain yes or no input DATA SCREEN,PAPER,FILE/1,2,3/ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C output summary of parameters IF (TTERM) CALL PRMOUT(OUNIT) IF (TFILE) CALL PRMOUT(TUNIT) IF (GFILE) CALL PRMOUT(GUNIT) C ITER=1 !initialize searching variables NFOUND=0 E=EBOTTM !reasonable starting values DE=DEBOT C 5 IF (ITER .EQ . 1) THEN !loop over energy levels C E=GETFLT(E,EMIN,EMAX,'Enter energy') !get starting values DE=GETFLT(DE,DEMIN,DEMAX,'Enter step in energy search') DESAVE=DE !save for next level C IF (TTERM) CALL CTITL(OUNIT)!output titles IF (TFILE) CALL CTITL(TUNIT) C CALL SEARCH(E,DE,LTP,RTP,NODES,NSTP,PSI) !search for energy C C prompt for new E and DE if too many steps taken in search IF (NSTP .GE. MAXSTP) THEN

WRITE (OUNIT,*) ' ' WRITE (OUNIT,*) ' Eigenstate not yet found' ITER=YESNO(1, + 'Do you want to try again with new E or DE?') ELSE \end{lstlisting} \noindent Ahora compila usando \texttt{gcc} (bajo Linux): \begin{listing}[style=consola, numbers=none] $ gcc -o hello hello.c \end{listing} \begin{lstlisting}[style=Fortran] MODULE Triangle_Operations IMPLICIT NONE CONTAINS FUNCTION Area(x,y,z) REAL :: Area ! function type REAL, INTENT( IN ) :: x, y, z REAL :: theta, height theta = ACOS((x**2+y**2-z**2)/(2.0*x*y)) height = x*SIN(theta); Area = 0.5*y*height END FUNCTION Area END MODULE Triangle_Operations PROGRAM Triangle USE Triangle_Operations IMPLICIT NONE REAL :: a, b, c, Area PRINT *, 'Welcome, please enter the& &lengths of the 3 sides.' READ *, a, b, c PRINT *, 'Triangle''s area: ', Area(a,b,c) END PROGRAM Triangle \end{lstlisting} Nota: Este archivo fue compilado con Mik% %TCIMACRO{\TeXButton{TeX}{\TeX{}} }% %BeginExpansion \TeX{} %EndExpansion 2.9 y %TCIMACRO{\TeXButton{TeX}{\TeX{}}}% %BeginExpansion \TeX{}% %EndExpansion Live 2010 usando \textsl{Scientific WorkPlace} 5.5 como interface. \end{document}

También podría gustarte