Fortran code conversion into Excel VBA

  • Context: Fortran 
  • Thread starter Thread starter kay90
  • Start date Start date
  • Tags Tags
    Code Excel Fortran
Click For Summary

Discussion Overview

The discussion revolves around converting Fortran code into Excel VBA, focusing on specific coding challenges encountered during the conversion process. Participants explore the translation of Fortran constructs, such as COMMON statements and WRITE statements, into their VBA equivalents.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Homework-related

Main Points Raised

  • One participant seeks assistance in converting a COMMON statement from Fortran to Excel VBA, questioning how to represent the variables defined within it.
  • Another participant suggests defining the variables as global variables in VBA, indicating that reference materials should provide guidance on this approach.
  • Some participants confirm that SWC and other variables listed are indeed arrays, with one noting that C is a two-dimensional array with specific dimensions.
  • A participant inquires whether the arrays should be declared as global to ensure their availability across all subroutines in the module.
  • There is a question regarding the interpretation of WRITE statements in Fortran, with a participant attempting to understand if they correspond to writing to a file and how to represent line numbers in VBA.

Areas of Agreement / Disagreement

Participants generally agree on the nature of the variables as arrays, but there is no consensus on the best approach to translating the WRITE statements or the necessity of declaring variables as global.

Contextual Notes

Participants express uncertainty about the exact translation of Fortran constructs to VBA, particularly regarding the handling of WRITE statements and the implications of variable scope in VBA.

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
 
Technology 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