Topic: Noob: duplicated module error

Hello all!

I am an infant when it comes to Fortran, but I've spent a considerable amount of time attempting to fix a problem I have been having with this code I didn't write.

From what I understand, RJPA calls many of these subroutines which call others etc etc. This code was written in the late 50s and converted to Fortran in '86, so I installed a Windows XP.32 emulator on my machine to run the program and it works great. This is why I don't understand why I am getting so many duplicated module errors trying to convert it to a more modern version. I've posted the error message below.

Please let me know if you have any idea how I can fix this, or if there is any more information I can provide!!! I really appreciate it.

All the best,

Trey

==============================================================================
Generating Makefile... Okay
==============================================================================
Compiling .\ACROC.FOR Compiling .\AREA.FORCompiling .\ATM.FORCompiling .\AUXIN.FORCompiling .\AUXOUT.FORCompiling .\AUXTST.FORCompiling .\BLOCK.FORCompiling .\BREAKWIN.FORCompiling .\CROC.FORCompiling .\DEFIOJ.FORCompiling .\DIF.FORCompiling .\DTLNEQ.FORCompiling .\EQSOS.FORCompiling .\EQUIL.FORCompiling .\EXPAN.FORCompiling .\GETDAT.FORCompiling .\GIBBS.FORCompiling .\GUESS.FORCompiling .\IDEAL.FORCompiling .\INOUT.FORCompiling .\INPUT.FORCompiling .\INPUTX.FORCompiling .\INT4.FORCompiling .\INVERT.FORCompiling .\ITER.FORCompiling .\LINDEP.FORCompiling .\LLEN.FORCompiling .\MAININ.FORCompiling .\MASBAL.FORCompiling .\MLIM.FORCompiling .\NOTS.FORCompiling .\NOTSA.FOR
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.\NOTSA.FOR:143:72:

       CALL EQUIL(TE,PR,E(1),E(2),K-1)
                                                                        1
Warning: Type mismatch in argument 'ix' at (1); passed INTEGER(4) to INTEGER(2) [-Wargument-mismatch]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.\NOTSA.FOR:158:72:

       CALL EQUIL(TE,PR,E(1) ,E(2)  ,K-1)
                                                                        1
Warning: Type mismatch in argument 'ix' at (1); passed INTEGER(4) to INTEGER(2) [-Wargument-mismatch]
Compiling .\NOTSH.FORCompiling .\NUMREAL.FORCompiling .\PDASHK.FORCompiling .\PIF1.FORCompiling .\PITOT.FORCompiling .\PPSTR.FORCompiling .\QATR.FORCompiling .\RAIL.FORCompiling .\RANK.FORCompiling .\RDPT.FORCompiling .\REACT.FORCompiling .\RJPA.FORCompiling .\RJPAST.FORCompiling .\SECANT.FORCompiling .\SENSE.FORCompiling .\SETUP.FORCompiling .\SHOCK.FORCompiling .\SHUNTS.FORCompiling .\THERMFIX.FORCompiling .\THERMO.FORCompiling .\THROAT.FORCompiling .\TOTAL.FORCompiling .\TPL1.FORCompiling .\TPL2.FORCompiling .\TPL3.FORCompiling .\TWID.FORCompiling .\TWITCH.FORCompiling .\VSET.FORCompiling .\WOFLIM.FORCompiling .\XMH.FORCompiling .\XMX.FORCompiling .\ZETA1.FORCompiling .\ZETA2.FORCompiling .\ZETA3.FOR
Generating target.exe
build\NOTSA.o: In function `equil_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:339: multiple definition of `equil_'
build\EQUIL.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./EQUIL.FOR:1: first defined here
build\NOTSA.o: In function `defioj_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:215: multiple definition of `defioj_'
build\DEFIOJ.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./DEFIOJ.FOR:1: first defined here
build\NOTSA.o: In function `gibbs_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:388: multiple definition of `gibbs_'
build\GIBBS.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./GIBBS.FOR:1: first defined here
build\NOTSA.o: In function `guess_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:435: multiple definition of `guess_'
build\GUESS.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./GUESS.FOR:1: first defined here
build\NOTSA.o: In function `invert_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:480: multiple definition of `invert_'
build\INVERT.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./INVERT.FOR:1: first defined here
build\NOTSA.o: In function `masbal_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:569: multiple definition of `masbal_'
build\MASBAL.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./MASBAL.FOR:1: first defined here
build\NOTSA.o: In function `dtlneq_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:263: multiple definition of `dtlneq_'
build\DTLNEQ.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./DTLNEQ.FOR:1: first defined here
build\NOTSA.o: In function `lindep_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:533: multiple definition of `lindep_'
build\LINDEP.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./LINDEP.FOR:1: first defined here
build\NOTSA.o: In function `nots_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:1: multiple definition of `nots_'
build\NOTS.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTS.FOR:1: first defined here
build\RANK.o: In function `rank_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./RANK.FOR:1: multiple definition of `rank_'
build\NOTSA.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:592: first defined here
build\REACT.o: In function `react_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./REACT.FOR:1: multiple definition of `react_'
build\NOTSA.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:615: first defined here
build\RJPA.o: In function `main':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./RJPA.FOR:959: multiple definition of `main'
build\AUXTST.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./AUXTST.FOR:304: first defined here
build\RJPAST.o: In function `main':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./RJPAST.FOR:344: multiple definition of `main'
build\AUXTST.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./AUXTST.FOR:304: first defined here
build\SETUP.o: In function `setup_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./SETUP.FOR:1: multiple definition of `setup_'
build\NOTSA.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:673: first defined here
build\THERMFIX.o: In function `main':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./THERMFIX.FOR:42: multiple definition of `main'
build\AUXTST.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./AUXTST.FOR:304: first defined here
build\THERMO.o: In function `thermo_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./THERMO.FOR:1: multiple definition of `thermo_'
build\NOTSA.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:704: first defined here
build\TWID.o: In function `twid_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./TWID.FOR:1: multiple definition of `twid_'
build\NOTSA.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:737: first defined here
build\TWITCH.o: In function `twitch_':
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./TWITCH.FOR:1: multiple definition of `twitch_'
build\NOTSA.o:\\IS2\Folder Redirection\TreyFrancis\Documents\TBCC Controls\RJPA\rjpa/./NOTSA.FOR:756: first defined here
build\ZETA1.o:ZETA1.FOR:(.bss+0x0): multiple definition of `zeta1_'
build\BLOCK.o:BLOCK.FOR:(.bss+0x0): first defined here
build\ZETA1.o:ZETA1.FOR:(.bss+0x10): multiple definition of `hidden_'
build\BLOCK.o:BLOCK.FOR:(.bss+0x10): first defined here
build\ZETA1.o:ZETA1.FOR:(.data+0x0): multiple definition of `ramjet2_'
build\BLOCK.o:BLOCK.FOR:(.data+0x0): first defined here
build\ZETA1.o:ZETA1.FOR:(.bss+0x20): multiple definition of `ramjet3_'
build\BLOCK.o:BLOCK.FOR:(.bss+0x20): first defined here
build\ZETA1.o:ZETA1.FOR:(.data+0x160): multiple definition of `ramjet4_'
build\BLOCK.o:BLOCK.FOR:(.data+0x160): first defined here
build\ZETA1.o:ZETA1.FOR:(.bss+0x160): multiple definition of `ramjet5_'
build\BLOCK.o:BLOCK.FOR:(.bss+0x160): first defined here
build\ZETA2.o:ZETA2.FOR:(.bss+0x0): multiple definition of `zeta2_'
build\BLOCK.o:BLOCK.FOR:(.bss+0x4): first defined here
build\ZETA2.o:ZETA2.FOR:(.data+0x0): multiple definition of `days_'
build\BLOCK.o:BLOCK.FOR:(.data+0x3a0): first defined here
build\ZETA2.o:ZETA2.FOR:(.data+0x40): multiple definition of `months_'
build\BLOCK.o:BLOCK.FOR:(.data+0x3e0): first defined here
build\ZETA2.o:ZETA2.FOR:(.data+0x80): multiple definition of `years_'
build\BLOCK.o:BLOCK.FOR:(.data+0x420): first defined here
build\ZETA3.o:ZETA3.FOR:(.bss+0x0): multiple definition of `zeta3_'
build\BLOCK.o:BLOCK.FOR:(.bss+0x8): first defined here
build\ZETA3.o:ZETA3.FOR:(.data+0x0): multiple definition of `alphan_'
build\BLOCK.o:BLOCK.FOR:(.data+0x500): first defined here
build\ZETA3.o:ZETA3.FOR:(.data+0x400): multiple definition of `blnk_'
build\BLOCK.o:BLOCK.FOR:(.data+0x900): first defined here
build\ZETA3.o:ZETA3.FOR:(.bss+0x20): multiple definition of `janaf_'
build\BLOCK.o:BLOCK.FOR:(.bss+0x2a0): first defined here
collect2.exe: error: ld returned 1 exit status
Error: Last command making (target.exe) returned a bad status
Error: Deleting (target.exe): Permission denied
Error: Make execution terminated

* Failed *

Re: Noob: duplicated module error

The compiler is complaining that numerous functions/subroutines are defined in multiple files.  Additionally, it appears that RJPA.FOR, AUXTST.FOR, RJPAST.FOR, and THERMFIX.FOR all contain separate main programs.  Simply Fortran only allows one "program" unit to be compiled at a time, hence the complaints from the compiler.

You'll need to look to see what files you actually need to compile rather than compiling all of them at once.  It appears this collection of Fortran source code contains multiple, separate Fortran programs and different versions of the support procedures in multiple files.

Jeff Armstrong
Approximatrix, LLC