Está en la página 1de 3

NONISOTHERMAL CSTR Programa en Fortran

C DISTURBANCE IS STEP CHANGE IN FEED COMPOSITION AT TIME ZERO FROM 0.50 TO 0.55 C REAL K,KC Initial Conditions CA=0.245 TJ=594.59 V=48 TIME=0 VC=V*CA VT=V*T Parameter Values TJ0=530 F0=40 T0=530 CAO=0.5 KC=4 DELTA=0.01 TPRINT=0 Disturbance CA0=0.55 %6 significa: salida standar ya esta %Define K y KC como numeros reales

WRITE(6,1) predifinido

%1 significa: que ira a la etiqueta 1 1 FORMAT(TIME CA T V F TJ FJ) %escribira lo que esta dentro de los apostrofes 100 C CONTINUE Feedback Controllers FJ=49.9 KC*(600 T) F=40 10*(48 V) Reaction Rate K=7.08E10*EXP(-30000./(1.99*T)) Q=150*250*(T TJ) Evaluate all Derivatives VDOT=F0 F VCDOT=F0*CA0-F*CA V*K*CA VTDOT=F0*T0 F*T + (30000.*V*K*CA Q)/(0.75*50) TJDOT=FJ*(TJ0 TJ)/3.85 +Q/240

IF (TIME.LT.TPRINT) GO TO 10 %dice si TIME less than TPRINT, es decir si TIME < TPRINT %saltara a la etiquieta 10 WRITE(6,2)TIME,CA,T,V,F,TJ,FJ %escribe la lista de variables en la salida estndar %salta a la etiqueta 2 2 FORMAT(1X,7F8.3) %1X:salto horizontal de lnea % F8.3 significa que el nmero deber mostrarse en notacin de %punto fijo con un ancho de 8 y 3 decimales, el 7 de adelante que %se repetir 7 veces TPRINT=TPRINT + 0.2 10 V=V + VDOT*DELTA VC=VC + VCDOT*DELTA VT=VT + VTDOT*DELTA TJ=TJ + TJDOT*DELTA TIME=TIME + DELTA CA=VC/V T=VT/V IF(TIME.LT.4.1) GO TO 100 %si TIME < 4.1 saltara a la linea 100 STOP END

Equivalencias ms Resaltantes en el Matlab


1. Fortran WRITE(6,2)TIME,CA,T,V,F,TJ,FJ %escribe la lista de variables en la salida estndar %salta a la etiqueta 2 2 FORMAT(1X,7F8.3) %1X:salto horizontal de lnea % F8.3 significa que el nmero deber mostrarse en notacin de %punto fijo con un ancho de 8 y 3 decimales, el 7 de adelante que %se repetir 7 veces 1. Matlab fprintf(TIME CA T V TIME,CA,T,V,F,TJ,FJ); F TJ FJ \n %.3f %.3f %.3f %.3f %.3f %.3f %.3f \n',

2. Fortran IF (TIME.LT.TPRINT) GO TO 10

2. Matlab goto10=false; a=a+1; Este algoritmo, es una a=0; %TIME s=s+1; propuesta, ya que en Matlab %4 es un valor de plot(s,s,'-o'),hold on no es esta implentado el TPRINT end goto. s=0; %valor de TPRINT if goto10 Este algorimto es una buena para %que salga del fprintf('Se opcin si este fuera el fin del bucle s=4 acabo.\n'); programa. while (a<4) end if s==4 goto10=true; break end Las dems lneas de cdigo son fcilmente implementadas en el Matlab, como las constantes y las ecuaciones.

Bibliografia
http://www.mathworks.com/matlabcentral/newsreader/view_thread/154252 *Some* uses of goto can be replaced by try/catch blocks catching custom error() conditions. Este es un ejemplo con utilizando bloques trycatch, que son usados en recoger los errores que hay en el programa, cual puede ser usado para reemplazar los bloques goto s=0; try for i =1:5 s=s+1; if i == 5 error('ERROR'); end end return catch if strcmp(lasterror.message,'ERROR') sprintf('se acabo %d \n', i); return else rethrow(lasterror) end end

También podría gustarte