fortran usando listings en latex

Upload: dario-castro-castro

Post on 05-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 Fortran usando listings en LaTeX

    1/3

    Escribe el siguiente cdigo en un archivo llamado hello.for

    1 C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C

    2 P R O G R A M E X M P L 3

    3 C E x am p l e 3: Bou nd s t at e s in a o ne - d i m e n si o n a l p o t e n ti a l

    4 C C O MP U TA T I ON A L P H Y SI C S ( F O RT R AN V E RS I ON )

    5 C b y S t ev en E . K o on in a nd D aw n C . M e r ed it h

    6 C C o py r ig h t 1 98 9 , A d di so n - W e sl e y P u bl i sh i ng C o mp an y , I nc .

    7 C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C

    8 CALL INIT ! d i s p l a y h e a d er s c re e n , s e t up p a r a m et e r s

    9 5 C O N T I N U E ! m a in l oo p ; e x ec u te o n ce f or e ac h

    s et o f p a ra m

    10 CALL P A R A M ! g e t i n p ut p a r a m et e r s

    11 CALL A R C H O N ! s o l v e t im e - i n d e p en d e n t S c h r o e di n g e r

    e q u a t i o n

    12 GOTO 5

    13 EN D

    14 C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C

    15 S U B R O U T I N E A R C H O N

    16 C s o lv e s t he t im e - i n d ep e nd e nt S c hr o e di n ge r e q ua t io n f or 1 -

    d i m e n s i o n a l

    17 C p o te n ti a l ; a l lo w s f or m or e t ha n o ne e i ge n va l ue s e ar c h

    18 C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C

    19 C G l ob a l v a ri a bl e s :

    20 I N C L U D E I O . A L L

    21

    I N C L U D E P A R A M . E 3 22 C L o ca l v a ri a bl e s :

    23 REAL E N E R G Y ( M A X L E V ) ! a r ra y o f e i ge n va l ue s

    24 I N T E G E R L E F T T P ( M A X L E V ) , R G H T T P ( M A X L E V ) ! a r ra y o f t u rn i ng

    p o i n t s

    25 I N T E G E R N F O U N D ! n u mb e r o f l e ve l s f o un d

    26 REAL P S I ( M A X L A T ) ! w a v e f u n c t io n

    27 I N T E G E R ITER ! c o n t i n ue f i n d in g l e v el s ?

    28 I N T E G E R N O D E S ! n u mb e r o f n o de s

    29 REAL E ! t r i a l e i g e n en e r g y

    30 I N T E G E R L T P , R T P ! c l a ss i ca l t u rn i ng p o in t s (

    l a t t i c e )

    31 REAL D E , D E S A V E ! s t ep i n e n er g y s e ar c h

    32 I N T E G E R NSTP ! n u mb e r o f s t ep s t a ke n i n

    s e a r c h33 I N T E G E R S C R E E N ! s e nd t o t e rm i na l

    34 I N T E G E R P A P E R ! m a ke a h a rd c op y

    35 I N T E GE R F I LE ! s en d t o a f il e

    36 C F u nc t io n s :

    37 REAL G E T F L T ! o b ta i n r ea l i n pu t

    1

  • 8/2/2019 Fortran usando listings en LaTeX

    2/3

    38 I N T E G E R Y E S N O ! o bt ai n y es o r n o i np ut

    39 DATA SCREEN ,PAPER , FILE / 1 , 2 , 3 /

    40 C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C C C C CC C C C C C C C C

    41 C o ut pu t s um ma ry of p ar am et er s

    42 IF ( T T E R M ) CALL P R M O U T ( O U N I T )

    43 IF ( T F I L E ) CALL P R M O U T ( T U N I T )

    44 IF ( G F I L E ) CALL P R M O U T ( G U N I T )

    45 C

    46 I T E R = 1 ! i n i t i a l i ze s e a r ch i n g

    v a r i a b l e s

    47 N F O U N D = 0

    48 E = E B O T T M ! r e a s o n a bl e s t a r ti n g v a l ue s

    49 D E = D E B O T

    50 C

    51 5 IF ( IT ER . EQ . 1) THEN ! l o op o ve r e n er g y

    l e v e l s52 C

    53 E = G E T F L T ( E , EM I N , E M AX , E n t e r e n e rg y ) ! g e t s t a r ti n g

    v a l u e s

    54 D E = G E T F LT ( D E , D E M IN , D E MA X , E n t e r s t ep i n e n e rg y s e a r ch )

    55 D E S A V E = D E ! s a ve f or n e xt l e ve l

    56 C

    57 IF ( T T E R M ) CALL C T I T L ( O U N I T ) ! o u t p u t t i t l es

    58 IF ( T F I L E ) CALL C T I T L ( T U N I T )

    59 C

    60 CALL S E A R C H ( E , D E , L T P , R T P , N O D E S , N S T P , P S I ) ! s e ar c h f or e n er g y

    61 C

    62 C p r om p t for new E and DE if t oo m a ny s t ep s t a ke n in

    s e a r c h

    63 IF ( N S TP . G E . M A XS T P ) THEN64 W R I T E ( O UN IT , *)

    65 W R I T E ( O UN IT , *) E i ge n st a te n ot y et f o un d

    66 I T E R = Y E S N O ( 1 ,

    67 + Do you want to try a ga in with new E or DE ? )

    68 ELSE

    Ahora compila usando gcc (bajo Linux):

    $ g c c - o h el lo h el lo . c

    1 M O D U L E T r i a n g l e _ O p e r a t i o n s

    2 I M P L I CI T N O N E3 C O N T A I N S

    4 F U N C T I O N A r e a ( x , y , z )

    5 REAL : : A re a ! f u nc t io n t y pe

    6 REAL , I N T E N T ( IN ) :: x , y , z

    7 REAL : : t he ta , h e ig h t

    2

  • 8/2/2019 Fortran usando listings en LaTeX

    3/3

    8 t h e ta = A C OS ( ( x * * 2 + y * * 2 - z * * 2) / ( 2 . 0 * x * y ) )

    9 h e ig h t = x * S IN ( t h et a ) ; A r ea = 0 . 5* y * h e ig h t

    10 E N D F U N C TI O N Area11 E N D M O D UL E T r i a n g l e _ O p e r a t i o n s

    12 P R O G R A M T r i a n g l e

    13 US E T r i a n g l e _ O p e r a t i o n s

    14 I M P L I CI T N O N E

    15 REAL :: a , b , c , A re a

    16 P R I N T * , W el co me , p l ea s e e n te r t he &

    17 & l en gt hs o f t he 3 s id es .

    18 READ * , a , b , c

    19 P R I N T * , T r i an gl e s a re a : , A r ea ( a ,b , c)

    20 E N D P R O G RA M T r i a n g l e

    Nota: Este archivo fue compilado con MikTEX 2.9 y TEXLive 2010 usandoScientific WorkPlace5.5 como interface.

    3