Fortran code conversion into Excel VBA

  • Context: Fortran 
  • Thread starter Thread starter kay90
  • Start date Start date
  • Tags Tags
    Code Excel Fortran
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
4 replies · 7K views
kay90
Messages
3
Reaction score
0
Hi,

I'm currently working on a project that requires me to convert a Fortran code into excel vba.
There are some problems that I've stumbled into, so itll be great if someone could help out.

one of it would be on how to convert a COMMON statement in Fortran to Excel VBA ( as in how would the coding be??) the coding is below:


IMPLICIT REAL*8 (A-H,O-Z)
REAL*8 C2X,C3X
REAL*8 KR1E,KR2E,M,N
COMMON /INFSVE/ PRES,TRES,SALN,FOINIT,DENC,ZC,YKSVE,SCSVE
COMMON /FLSH/ S(2),C(3,2),XK(3)
COMMON /PROP/
+ SWC(6), VWC(6), CWC(6), SLW(4), SFC(4),
+ TVC(5), PVC(6), VCO2(5,6),
+ TDC(5), PDC(7), DCO2(5,7),
+ TSC(5), PSC(6), SCO2(5,6),
+ TZC(7),PZC(19), ZCO2(7,19),
+ TBW(9),BWC(15), RHO(9,15)

Is the SWC and the others after it arrays??

hope there's someone to help me out here. thanks
 
Physics news on Phys.org
I'd just define them as global variables. Global variables should be described in whatever reference material you are using to learn VBA.
 
Yes, SWC and the other variables listed after it are arrays, as areS, C, and XK. C is a two-dimensional array, with 3 rows and 2 columns.
 
thanks.

so if that's the case before the subroutine in vba should i declare it as a GLOBAL file?? where then the arrays will be available to all subroutines in the module.
 
Another doubt that I'm having would be the WRITE statements

for example:

IF(POROS.LE.0.0)WRITE (NOT1,9600)ICHK
IF (PERM.LE.0.0)ICHK=3

Looking at the fortran code, is the WRITE statement equivalent to writing on file NOT1 and then skipping to line 9600.

if so can i define line 9600 in VBA as follows:

9600:

(and then put in the required coding into the line)hope u guys can help me out.thanks