delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/08/11/06:32:15

From: gina AT se-38 DOT wpa DOT wtb DOT tue DOT nl (Gina Fabian)
Newsgroups: sci.math.num-analysis,comp.lang.fortran,gnu.gcc.help,comp.os.msdos.djgpp
Subject: FORTRAN code with DJGPP
Date: 11 Aug 1997 09:37:31 GMT
Organization: Eindhoven University of Technology, The Netherlands
Lines: 104
Distribution: inet
Message-ID: <5smmgr$fcj@tuegate.tue.nl>
NNTP-Posting-Host: se-38.wpa.wtb.tue.nl
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

 Hi everybody,


 I am asking your help to solve the following problem:

 I develop a software in C++ for DOS and Linux. I use a well known
and fairly well debugged FORTAN code: DDASRT. The problem started
when I added an other FORTRAN routine: NLEQ.

 After renaming some routines in the two FORTRAN codes, so they do not
shadow each other, I could compile the code under Linux with gcc
2.7.2.1 I could compile it as well under DOS, using the EMX port of
gcc.  What I did, is that I compiled the FORTRAN routines using g77,
and I used the headers generated by f2c to declare the routines for
the rest of the code.

 Now, it is important for me to be able to compile the code with
DJGPP, the other DOS port of gnu gcc.

 I could not succeed. The executable breaks with Arithmetic Error.

 Since I am not the author of these codes, I would not like to debug
them.  So my question: Are there any general guidelines to treat
FORTRAN codes in DJGPP?  Has anyone seen the same problem, and got a
solution?

 Thanks for any reply,

  Georgina Fabian

(Detailed description of my setup comes below)

===============================================================================
Georgina Fabian

Eindhoven University of Technology 
Department Mechanical Engineering
Section Systems Engineering 
P.O.Box 513, 
5600 MB Eindhoven

Tel: +31 40 2474155
Fax: +31 40 2452505
E-mail:gina AT se-43 DOT wpa DOT wtb DOT tue DOT nl
===============================================================================


I have checked the machine dependent codes in : d1mach, i1mach,
r1mach.  They are set to the IEEE standards, what I do use.

I have renamed all routines. 
Now DDASRT routines are:
ddasrt_, drcheck_, droots_, xerrwv_
ddassl_, ddawts_, ddaini_, ddatrp_, ddastp_, ddajac_, ddaslv_,
xermsg_, xeerhlt_, xerprn_, xgetua_, xsetua_

NLEQ1 (NLEQ version1) routines:
nleq1_ n1pchk_ n1int_ n1scal_ n1scrf_ n1scrb_ n1fact_ n1solv_ n1lvls_ n1jac_ n1
jacb_ n1jcf_ n1jcfb_ n1prv1_ n1prv2_ n1sout_ wnorm1_ dgefanl_ dgeslnl_ dgbfanl_
dgbslnl_ daxpy_ dscalnl_ idamaxnl_ ddot_ __g77_masterfun_montor montor_ monini_
mondef_ monsrt_ monon_ monoff_ monend_ secondnl_ d1machnl_

NLEQ2 (NLEQ version2) routines:
nleq2_ n2pchk_ n2int_ n2scal_ n2scrf_ n2fact_ n2solv_ n2lvls_ n2jac_ n2jcf_ n2p
rjn_ n2prv1_ n2prv2_ n2sout_ wnorm_ deccon_ solcon_ __g77_masterfun_montor2 mont
or2_ monini2_ mondef2_ monsrt2_ monon2_ monoff2_ monend2_ secondnl2_ d1machnl2_


About DJGPP: 
  all devices are loaded in high memory, virtual memory: 20Mb, 
  smartdrive: 2Mb ramdrive: 8Mb   
  I guess this is O.K. since I can compile well.
  I enlarged the stacksize with stubedit to 1Mb.
  The version I am using is: 
     gcc 2.7.2.1.f.1
    
  
  Compiling my library: g77 -c  $(SOURCE)
                       (Source files are of type .f .c .cc)
  Creating my library: ar -r mylib.a $(OBJS)

  Creating an executable: gcc -c -Ipath_to_mylib file.cc
                          g77 file.o -Lpath_to_mylib -lmylib -lstdcx -lgpp -lf2c -lm -s -o file.exe                      
  


Output:
Exiting due to signal SIGFPE
Floating Point exception at eip=0003471b
eax=000f45a3 ebx=00000004 ecx=00000001 edx=000f0540 esi=000f0548 edi=00000004
ebp=000ee6bc esp=000ee64c cs=00af ds=00b7 es=00b7 fs=008f gs=00c7 ss=00b7
Call frame traceback EIPs:
  0x0003471b
  0x000326b4
  0x000246ab
  0x0000d614
  0x0000294f
  0x00094867

I am sorry I can not supply gdb output, because it can't find symbols, although 
I have compiled everything with -g. In any case it says, that my code breaks with 
arithmetic error.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019