REM PROGRAMA VIRIAL2.BAS 1 CLS 2 DIM T0(100) 3 INPUT "¨VA A USAR EL POTENCIAL DE LENNARD-JONES (si/no)"; L$ 4 IF L$ = "si" THEN GOTO 21 5 PRINT 7 INPUT "¨HA DEFINIDO YA EL POTENCIAL (si/no) "; D$ 8 IF D$ = "si" THEN GOTO 19 10 PRINT "************************************************************" 11 PRINT "PARA DEFINIR EL POTENCIAL DEBE UTILIZAR LAS INSTRUCCIONES" 12 PRINT "COMPRENDIDAS ENTRE 400 Y 500 !! EMPIEZE EN LA 400!! " 13 PRINT " i) ESCRIBA DELETE 400-500 " 14 PRINT " ii) DEFINA EL POTENCIAL " 15 PRINT " iii) ACABE CON 500 REM " 16 PRINT " iv) LUEGO PULSE F2 " 17 PRINT "*******************************************************" 18 GOTO 300 19 INPUT "INDIQUE EL VALOR DE R PARA EL CUAL U SE HACE INFINITO"; R8 20 GOTO 24 21 PRINT "SI VA A UTILIZAR EL POTENCIAL DE LENNARD-JONES," 22 PRINT "DEBERA DAR LA TEMPERATURA REDUCIDA" 23 PRINT 24 INPUT "NUMERO DE TEMPERATURAS ="; N 25 FOR K = 1 TO N 26 INPUT "TEMPERATURA = "; T0(K) 27 NEXT K 28 DR = .01 29 E = 1E-08 30 INPUT "¨EN QUE FICHERO QUIERE GUARDAR LOS RESULTADOS?"; Q$ 31 OPEN Q$ FOR OUTPUT AS #1 32 FOR K = 1 TO N 34 R = R8 36 S = 0 37 F0 = 0 38 IF L$ = "no" THEN GOTO 100 39 T = T0(K) 42 FOR I = 1 TO 10000 45 S0 = S 46 F0 = F 50 R = R + DR 55 U = 4 * (R ^ (-12) - R ^ (-6)) / T 56 F = (EXP(-U) - 1) * R ^ 2 60 S = S + (F + F0) / 2 65 IF I > 300 AND ABS((S0 - S) / S) < E THEN GOTO 200 75 NEXT I 80 PRINT #1, "******* NO CONVERGE **************" 82 GOTO 300 100 T = T0(K) 101 FOR I = 1 TO 10000 102 S0 = S 103 F0 = F 104 R = R + DR 108 GOSUB 400 109 IF F <> 0 THEN GOTO 112 110 PRINT #1, "SE ANULA EL POTENCIAL PARA R ="; R 111 GOTO 200 112 S = S + (F + F0) / 2 115 IF I > 300 AND ABS((S0 - S) / S) < E THEN GOTO 200 120 NEXT I 125 PRINT #1, "******* NO CONVERGE**********" 127 GOTO 300 200 BR = -3 * DR * S + R8 * R8 * R8 205 PRINT #1, T, BR, I 220 NEXT K 250 CLOSE 300 END 400 P = 24 410 500 REM 501 F = (EXP(-U) - 1) * R ^ 2 502 RETURN