[TRNSYS-users] Run time error - Unit-1 file CONOUT$

Michaël Kummert kummert at engr.wisc.edu
Mon Aug 23 13:24:59 PDT 2004


Edward,

> Yes, it was due to the WRITE statement present in my DLL. I included this WRITE
> instruction previously for checking my program outside the TRNSYS. Before I
> made modification, my program had always run succesfully. I suspect therefore
> there is something wrong with my modification which the program reports as
> error by attempting to display a message in the screen and causes the run time
> error. I'm now rechecking my modification.
> 
> While I'm checking this bug, it would be worthwhile if you could tell me how to
> transfer the ERROR CHECKING to TRNSYS, so that I can avoid the WRITE statement
> in my DLL. In DLL "template" provided, no mention of such ERROR CHECKING. The
> main reason why I decided to write my subroutine as DLL (as opposed to ordinary
> TYPE in TRNSYS) is because the DLL "template" provided is easier for me to
> follow than the ordinary TYPE "template". [FYI: Previously I wrote my program
> in VB, then transferred it to Visual C/C++, and finally to FORTRAN, due to the
> fact that my previous attempts to create my DLL in VB & C/C++ and made it a
> TNRSYS component, failed].

Writing a "normal" Fortran Type looks much easier to me than having it 
in an external DLL. I suggest that you start from an existing Type or 
from the skeleton generated by IIsiBat, and then use the instruction on 
the website on how to recompile trnlib.dll 
(http://sel.me.wisc.edu/trnsys/ , then "Fortran Info")

> I'm also trying to convert my DLL to ordinary TYPE subroutine, but I always get
> the message something like: YOU ATTEMPT TO CALL A SUBROUTINE WHICH HAS NOT BEEN
> LINKED ...

If this is a TRNSYS error message (and not a compiler / linker error), 
you may just be missing a "RETURN 1" in your component. "RETURN 1" (and 
not just "RETURN") tells TRNSYS to jump to the correct line when it 
returns from your Type and failure to do so generates an error message 
saying that a file was not linked. Now if it is some sort of "unresolved 
external" error in the compiler, you are probably calling some routines 
that you did not link to the project (but if you were able to link them 
to your external DLL, you should be able to link them to trnlib.dll as 
well).

Good luck,

Michaël Kummert

-- 
_________________________________________________________

Michaël Kummert

Solar Energy Laboratory - University of Wisconsin-Madison
1303 Engr Res Bldg, 1500 Engineering Drive
Madison, WI 53706

Tel: +1 (608) 263-1589
Fax: +1 (608) 262-8464
E-mail: kummert at engr.wisc.edu

SEL Web Site: http://sel.me.wisc.edu
TRNSYS Web Site: http://sel.me.wisc.edu/trnsys



More information about the TRNSYS-users mailing list