Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   convert fortran to C++ (http://www.go4expert.com/forums/convert-fortran-cpp-t11975/)

norainon 9Jul2008 14:02

convert fortran to C++
 
i have a question regarding to convert from fortran language to C++ programming especially in diognal array

for example;

DO 10 I=1,3*(X+2)
10 ID(I)=(I-1)*m+1

how do i convert into C++ programming

please someone help me

xpi0t0s 15Jul2008 13:27

Re: convert fortran to C++
 
I'm not clear what the above code has to do with diagonal arrays; ID looks like a simple array to me.
How about something like:
int ID[SUITABLE_LIMIT];
for (int i=1; i<=3*(x+2); i++) ID[i]=(i-1)*m+1;
Don't forget C++ arrays are zero based so SUITABLE_LIMIT must be at least the maximum value of 3*(x+2) PLUS ONE. Also the above loop doesn't initialise ID[0]; watch out for that one, maybe use an array name that indicates it's 1-based rather than zero based, something along the lines of Hungarian Notation but simpler, e.g int ID_nz[..], nz meaning "no zero element". I always end up confusing myself if I use some arrays that are zero based and some that are not, in the same program.

abdunabi 7Mar2012 18:56

Re: convert fortran to C++
 
I have a question regarding to convert from fortran language to C++ programming. How I convert into C++ programming , Please someone help me!!!
Code:

  DIMENSION TK(15), PK(15), TC(15),DT(15),DP(15),H(15),PAR(15),Q(15), M(15), PO(15), PO1(15), PO2(15), PI(15),
    1 FORMAT (213)
    5 FORMAT (2F8.4,I3)
    3 FORMAT (3F10.4,I3)
  15 FORMAT (///,8F10.5,/)
      READ (5,1) NG, M1
      READ (5,3) A,B,P,M2
      READ (5,5) DTF,DPF,Z
  25 FORMAT (F10.3)
  98 READ (5,25) T
      IF(T.EQ.0) GO TO 99
      DO 100 I=1, NG
      M(I)=M1+I-1
      TK(I)=A*(8*M(I)+M2)**P+8
      DT(I)=(M(I)-1)*0.02+DTF
      TC(I)=TK(I)/(0.567+DT(I)-DT(I)**2)
      DP(I)=(M(I)-1)*0.227+DPF
      PK(I)=(14*M(I)+Z)/(DP(I)+0.34)**2
      H(I)=(TK(I)/TC(I))*(ALOG10(PK(I))/(1-TK(I)/TC(I)))
      PAR(I)=ALOG10(PK(I))+H(I)*(1-TC(I)/T)
      PO2(I)=(14*M(I)+Z)/(82.06*TK(I))
      PI(I)=5*(T/TC(I)-1)
      PO1(I)=PO2(I)*10**PI(I)
      PO3=1
      PO(I)=PO1(I)+PO3*(1-T/TC(I))**0.3
  100 Q(I)=10**PAR(I)
  20 FORMAT (//,10F10.5,/) 
      WRITE(6,20) T
      WRITE(6,15) (Q(I),I=1,NG)
      WRITE(6,6) (PO(I),I=1,NG)
    6 FORMAT (///,8F10.6,/)
      GO TO 98
  99 CONTINUE
      STOP
      END



All times are GMT +5.5. The time now is 11:38.