[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[TRNSYS-users] Storage variables problem
Hello TRNSYS users,
I've written a project for TRNSYS 16.1 in which I use many storage
variables, precisly 36. The project works well, but now I've this
prboblem:
I wont to add more equations and also more storage variables to the
project for many reasons, but if I do one of these operations, or
both, TRNSYS sends me an error message in which says that there is an
inconsistency between the number that I've declared in the
setstoragevariable() and the getstoragevariable() function. But I've
checked many times it and the numbers declared are exactly the same.
The strange thing is that if I don't add or remove the storage
variables, but simply I add equations, TRNSYS gives me the same error
message.
Thanks you in advance for any advice.
Vincenzo Gentile
P.S.
The scheme of the project is this:
...
--------
C TRNSYS DECLARATIONS
......
DOUBLE PRECISION DTDT,StorageArray(1),PSYDAT(1) !AN ARRAY CONTAINING
THE DERIVATIVES TO BE PASSED TO THE DIFF.EQ. SOLVER
INTEGER StorageSize
......
-------
C PERFORM ANY 'AFTER-ITERATION' MANIPULATIONS THAT ARE REQUIRED HERE
C e.g. save variables to storage array for the next timestep
IF (INFO(13).GT.0) THEN
CALL getStorageVars(Stored,StorageSize,INFO)
Stored(1)=Stored(2)
.....
Stored(35)=Stored(36)
CALL setStorageVars(Stored,StorageSize,INFO)
RETURN 1
ENDIF
-------
C DO ALL THE VERY FIRST CALL OF THE SIMULATION MANIPULATIONS HERE
IF (INFO(7).EQ.-1) THEN
......
C SET THE NUMBER OF STORAGE SPOTS NEEDED FOR THIS COMPONENT
StorageSize=36
CALL setStorageSize(StorageSize,INFO)
ENDIF
------
C DO ALL OF THE INITIAL TIMESTEP MANIPULATIONS HERE - THERE ARE NO
ITERATIONS AT THE INTIAL TIME
IF (TIME .LT. (getSimulationStartTime() +
. getSimulationTimeStep()/2.D0)) THEN
C PERFORM ANY REQUIRED CALCULATIONS TO SET THE INITIAL VALUES OF
THE OUTPUTS HERE
Stored(1)=PAR(7)
.....
Stored(36)=wst_9
StorageSize=36
CALL setStorageVars(STORED,StorageSize,INFO)
.....
RETURN 1
ENDIF
-------
C ADD YOUR COMPONENT EQUATIONS HERE; BASICALLY THE EQUATIONS THAT WILL
C CALCULATE THE OUTPUTS BASED ON THE PARAMETERS AND THE INPUTS. REFER TO
C CHAPTER 3 OF THE TRNSYS VOLUME 1 MANUAL FOR DETAILED INFORMATION ON
C WRITING TRNSYS COMPONENTS.
CALL getStorageVars(STORED,StorageSize,INFO)
t_letto_in_1=Stored(1)
.....
w_letto_in_9=Stored(35)
CALL setStorageVars(STORED,StorageSize,INFO)
C EQUATIONS
.....
-------
C SET THE STORAGE ARRAY AT THE END OF THIS ITERATION IF NECESSARY
2000 Stored(2)=t_letto_1
.....
Stored(36)=wst_9
CALL setStorageVars(STORED,StorageSize,INFO)
-------
C SET THE OUTPUTS FROM THIS MODEL IN SEQUENTIAL ORDER AND GET OUT
C w_eq
OUT(1)=wst_2
.....
RETURN 1
END