Array Do Loop Constante Parametrizar
Publicado por Pedro Pérez (1 intervención) el 11/10/2011 06:21:56
Este es mi problema:
Tengo que definir un punto (vector) L_X, que puede tener 7 valores (X=A,B,C,D,E,F,G ) ^T o sea que tengo estos siete puntos: L_A,L_B,L_C,L_D,L_E,L_F,L_G.
L_X aparece en otras variables,donde estas dependen de L_X. En el fondo todas las variables depende de este punto.
Ejemplo:
ST_X= SQRT(AS*BS-L_X)
a la vez que otras variables dependen indirectamente de L_X:
ANL_X=(KNM**2-ST_X**2) etc...
Hay que formar para todas las variables, todas las posibilidades introduciendo L_X y sus respectivos valores.
o sea, que hay que formar ST_A,= SQRT(AS*BS-L_A), ST_B,...,ST_G=SQRT(AS*BS-L_G)
y ANL_A=(KNM**2-ST_A**2) ,......,ANL_G =(KNM**2-ST_G**2)
etc...
Y para no escribirlo todo mil veces lo quiero hacer por arrays.Quisiera crear una variable que la pueda escribir en el código que automaticamente interprete que tiene que calcular los 7 puntos.
Tengo esto de momento:
SUBROUTINE PESL (MA,TEM,RES)
Real ST_X,ANL,X
Real(8) L_(7) !aquí defino la variable L_ con 7 valores
Integer I
L_(1)=0 !Donde L_(1) sería igual a L_A y sucesivamente, o sea defino cada componente
L_(2)=MA-TEM ! del vector
L_(3)=TEM+1 ! Los valores del vector MA,TEM y RES son variables de otra subrutina que llamo
L_(4)=MA-RES !al principio
L_(5)=TEM
L_(6)=TEM+2
L_(7)=MA
! a partir de aquí me pierdo
DO I=1,7
L_(I)=L_X ! se puede hacer esto? o como lo haría?
END DO
ST_X= SQRT(AS*BS-L_X !está esto bien?
DO I=1,7
ST_X= SQRT(AS*BS-L_(I)) ! o de esta forma?
END DO !
END
el compilador me da un error y me dice array bounds exceeded.
Todo esto ocurre dentro de una subrutina.
Si tenéis tiempo y me podéis ayudar os lo agradecería mucho mucho.
Tengo que definir un punto (vector) L_X, que puede tener 7 valores (X=A,B,C,D,E,F,G ) ^T o sea que tengo estos siete puntos: L_A,L_B,L_C,L_D,L_E,L_F,L_G.
L_X aparece en otras variables,donde estas dependen de L_X. En el fondo todas las variables depende de este punto.
Ejemplo:
ST_X= SQRT(AS*BS-L_X)
a la vez que otras variables dependen indirectamente de L_X:
ANL_X=(KNM**2-ST_X**2) etc...
Hay que formar para todas las variables, todas las posibilidades introduciendo L_X y sus respectivos valores.
o sea, que hay que formar ST_A,= SQRT(AS*BS-L_A), ST_B,...,ST_G=SQRT(AS*BS-L_G)
y ANL_A=(KNM**2-ST_A**2) ,......,ANL_G =(KNM**2-ST_G**2)
etc...
Y para no escribirlo todo mil veces lo quiero hacer por arrays.Quisiera crear una variable que la pueda escribir en el código que automaticamente interprete que tiene que calcular los 7 puntos.
Tengo esto de momento:
SUBROUTINE PESL (MA,TEM,RES)
Real ST_X,ANL,X
Real(8) L_(7) !aquí defino la variable L_ con 7 valores
Integer I
L_(1)=0 !Donde L_(1) sería igual a L_A y sucesivamente, o sea defino cada componente
L_(2)=MA-TEM ! del vector
L_(3)=TEM+1 ! Los valores del vector MA,TEM y RES son variables de otra subrutina que llamo
L_(4)=MA-RES !al principio
L_(5)=TEM
L_(6)=TEM+2
L_(7)=MA
! a partir de aquí me pierdo
DO I=1,7
L_(I)=L_X ! se puede hacer esto? o como lo haría?
END DO
ST_X= SQRT(AS*BS-L_X !está esto bien?
DO I=1,7
ST_X= SQRT(AS*BS-L_(I)) ! o de esta forma?
END DO !
END
el compilador me da un error y me dice array bounds exceeded.
Todo esto ocurre dentro de una subrutina.
Si tenéis tiempo y me podéis ayudar os lo agradecería mucho mucho.
Valora esta pregunta


0