Sei sulla pagina 1di 5

CODIGO ESCRITO EN LENGUAJE PPL

//INICIO DEL ALGORITMO

//DECLARACION DE LAS VARIABLES GLOBALES


EXPORT Np,m,Pin,Pfi;
EXPORT Bo,Bg,Boi,Bgi,Bw;
EXPORT Rp,Rs,Rsi;
EXPORT Sw,Cw,Cf,Swi,We,Wp;
EXPORT Giny,Bginy,Winy,Bwiny;
EXPORT Bt,Bti;
EXPORT Eo,Eg,Efw,eW;
EXPORT DDI,SDI,WDI,EDI;
EXPORT a,f,h,t,rw,ro,Θ;
EXPORT Npdt,Wpdt,Qo,Qg,Qw,Wi;
EXPORT PRQ_230()
BEGIN
//DECLARACION DE VARIABLES LOCALES
LOCAL OP1,OP2,OP3;
//INICIALIZACION DE LA APLICACIÓN “Solve”
STARTAPP("Solve");
0▶E1;
0▶E2;
0▶E3;
0▶E4;
0▶E5;
0▶E6;
0▶E7;
0▶E8;
0▶E9;
0▶E0;
//LIMPIADO DE PANTALLA INICIAL
PRINT();
//ALGORITMO DEL MENU PRINCIPAL
//LAS OPCIONES 3 Y 4 AUN NO ESTAN DISPOINBLES
CHOOSE(OP1,
"Reservorios 1",
"B.M. general",
"Indices de empuje",
"B.M. lineal",
"Intrusion de agua");
CASE
//ALGORITMO DEL MENU SECUNDARIO "B.M. GENERAL"
IF OP1==1 THEN
INPUT({{A,{"Monofasico","Bifasico"},{15,30,1}},
{B,{"Subsaturado","Saturado","Con capa de gas"},{50,30,1}},
{C,0,{85,10,1}},
{D,0,{25,10,2}},
{E,0,{50,10,2}},
{F,0,{75,10,2}}},
"Balance de materia",
{"Reser",
"",
"",
"EntAgu",
"VolIny",
"ExpAgu"},
{"Tipo de reservorio",
"Tipo de reservorio",
"Tipo de reservorio constante",
"Entrada neta de neta",
"Volumenes de inyeccion",
"Expansion de agua connata mas reduccion de volumen poroso"},
{1,1,0,0,0,0},
{A,B,C,D,E,F});
STARTAPP("Solve");
IF A==1 THEN
CASE
IF B==1 OR B==2 THEN
"Np*Bo"▶E3;
IFTE(C==1,"Np*Bo"▶E3,"Np*(Bo+Bg*(Rp-Rs)"▶E3);
END;
IF B==3 THEN
"Np*(Bo+Bg*(Rp-Rs))"▶E3;
END;
END;
IFTE(D==1,"(We-Wp*Bw)"▶E4,"0"▶E4);
IFTE(E==1,"Giny*Bginy+Winy*Bwiny"▶E5,"0"▶E5);
CASE
IF B==1 OR B==2 THEN
"(Bo-Boi)"▶E6;
IFTE(C==1,"(Bo-Boi)"▶E6,"(Bo-Boi)+Bg*(Rsi-Rs)"▶E6);
END;
IF B==3 THEN
"(Bo-Boi)+Bg*(Rsi-Rs)"▶E6;
END;
END;
IFTE(B==1 OR B==2,"0"▶E7,"m*Boi*(Bg/Bgi-1)"▶E7);
IF F==1 THEN
IFTE(B==1 OR B==2,"(Boi*(Sw*Cw+Cf)*(Pin-Pfi)/(1-
Swi))"▶E8,"(Boi*(1+m)*(Sw*Cw+Cf)*(Pin-Pfi)/(1-Swi))"▶E8);
ELSE
"0"▶E8;
END;
"N"▶E1;
E1=(E3-E4-E5)/(E6+E7+E8)▶E1;
"N=(Np*(Bo+Bg*(Rp-Rs))-(We-Wp*Bw)-(Giny*Bginy+Winy*Bwiny))/((Bo-Boi)+Bg*(Rsi-
Rs)+m*Boi*(Bg/Bgi-1)+(Boi*(1+m)*(Sw*Cw+Cf)*(Pin-Pfi)/(1-Swi)))"▶E2;
ELSE
CASE
IF B==1 OR B==2 THEN
"Np*Bt"▶E3;
IFTE(C==1,"Np*Bt"▶E3,"(Np*(Bt+Bg*(Rp-Rsi))"▶E3);
END;
IF B==3 THEN
"(Np*(Bt+Bg*(Rp-Rsi))"▶E3;
END;
END;
IFTE(D==1,"(We-Wp*Bw)"▶E4,"0"▶E4);
IFTE(E==1,"Giny*Bginy+Winy*Bwiny"▶E5,"0"▶E5);
"(Bt-Bti)"▶E6;
IFTE(B==3,"m*Bti*(Bg/Bgi-1)"▶E7,"0"▶E7);
IF F==1 THEN
IFTE(B==1 OR B==2,"(Bti*(Sw*Cw+Cf)*(Pin-Pfi)/(1-
Swi))"▶E8,"(Bti*(1+m)*(Sw*Cw+Cf)*(Pin-Pfi)/(1-Swi))"▶E8);
ELSE
"0"▶E8;
END;
"N"▶E1;
E1=(E3-E4+E5)/(E6+E7+E8)▶E1;
"N=(Np*(Bt+Bg*(Rp-Rsi))-(We-Wp*Bw)-(Giny*Bginy+Winy*Bwiny))/((Bt-
Bti)+m*Bti*(Bg/Bgi-1)+(Bti*(1+m)*(Sw*Cw+Cf)*(Pin-Pfi)/(1-Swi)))"▶E2;
END;
END;
//ALGORITMO DEL MENU SECUNDARIO "INDICES DE EMPUJE"
IF OP1==2 THEN
STARTAPP("Solve");
"A=(Np*(Bt+(Rp-Rsi)*Bg))"▶E1;
"DDI=N*(Bt-Bti)/A"▶E2;
"SDI=(N*m*Bti*(Bg/Bgi-1)/A"▶E3;
"WDI=(We-Wp*Bw)/A"▶E4;
"EDI=(N*Bti*(1+m)*((Cw*Swi+Cf)/(1-Swi))*(Pin-Pfi))/A"▶E5;
END;
//ALGORITMO DEL MENU SECUNDARIO "B.M. LINEAL"
IF OP1==3 THEN
PRINT("EN CONSTRUCCION");
END;
//ALGORITMO DEL MENU SECUNDARIO "INTRUSION DE AGUA"
IF OP1==3 THEN
PRINT("EN CONSTRUCCION");
END;
END;
END;
//FINAL ALGORITMO

Potrebbero piacerti anche