[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[TRNSYS-users] Storage Vars problem



Hello TRNSYS-Users,
i want to create a Type to describe an adsorbent packed bed, but i
think have a problem with the storage vars. I used it to update two
values of the output (obtained by solving the system of equation for a
time step)  to two initial values of the equation's system, to solve
it for the next time step. But really this operation to save a value
of the output and update to an initial value, functions only for one
of these values (t_letto), and only for three time step. After this
time TRNSYS gives me a flat characteristics. Instead for the other
value (wst) TRNSYS calculates it only for the first time step, and
keeps it costant for the rest of simualtion.
I attached the source code for the case anybody would like to look through.
I appreciate every advice to solve this problem.
Thanks in advance.
Vincenzo

PS: t0_letto and w0_letto are the initial values of these two otuput
(t_letto, wst) for the initial timestep, they are inserted like
parameters in the proforma.

			SUBROUTINE TYPE161 (TIME,XIN,OUT,T,DTDT,PAR,INFO,ICNTRL,*)
C************************************************************************
C Object: letto_adsorbente
C Simulation Studio Model: 161
C
C Author:
C Editor:
C Date:	 marzo 26, 2012 last modified: marzo 26, 2012
C
C
C ***
C *** Model Parameters
C ***
C			l	- [-Inf;+Inf]
C			grad_vuoto	- [-Inf;+Inf]
C			Sezione	- [-Inf;+Inf]
C			d_silicagel	- [-Inf;+Inf]
C			rho_silicagel	- [-Inf;+Inf]
C			t0_letto	- [-Inf;+Inf]
C			w0_letto	- [-Inf;+Inf]

C ***
C *** Model Inputs
C ***
C			t_amb	- [-Inf;+Inf]
C			equi	- [-Inf;+Inf]
C			ads	- [-Inf;+Inf]
C			portata	- [-Inf;+Inf]
C			x_amb	- [-Inf;+Inf]

C ***
C *** Model Outputs
C ***
C			intervallo	- [-Inf;+Inf]
C			velocit	- [-Inf;+Inf]
C			area_sup	- [-Inf;+Inf]
C			massa	- [-Inf;+Inf]
C			t_aria_in	- [-Inf;+Inf]
C			num_part	- [-Inf;+Inf]
C			miu	- [-Inf;+Inf]
C			k1	- [-Inf;+Inf]
C			k2	- [-Inf;+Inf]
C			w_eq	- [-Inf;+Inf]
C			x_aria_out	- [-Inf;+Inf]
C			wst_prec	- [-Inf;+Inf]
C			wst	- [-Inf;+Inf]
C			H_ads	- [-Inf;+Inf]
C			i	- [-Inf;+Inf]
C			g	- [-Inf;+Inf]
C			t0_letto_K	- [-Inf;+Inf]
C			t_letto_prec_k	- [-Inf;+Inf]
C			t_letto	- [-Inf;+Inf]
C			t_aria	- [-Inf;+Inf]
C			dx	- [-Inf;+Inf]
C			t_equilibrata	- [-Inf;+Inf]
C			c	- [-Inf;+Inf]
C			d	- [-Inf;+Inf]
C			e	- [-Inf;+Inf]
C			perdita_carico	- [-Inf;+Inf]

C ***
C *** Model Derivatives
C ***

C (Comments and routine interface generated by TRNSYS Studio)
C************************************************************************

C    TRNSYS acess functions (allow to acess TIME etc.)
      USE TrnsysConstants
      USE TrnsysFunctions

C-----------------------------------------------------------------------------------------------------------------------
C    REQUIRED BY THE MULTI-DLL VERSION OF TRNSYS
      !DEC$ATTRIBUTES DLLEXPORT :: TYPE161				!SET THE CORRECT TYPE NUMBER HERE
C-----------------------------------------------------------------------------------------------------------------------
C-----------------------------------------------------------------------------------------------------------------------
C    TRNSYS DECLARATIONS
      IMPLICIT NONE			!REQUIRES THE USER TO DEFINE ALL VARIABLES
BEFORE USING THEM

	DOUBLE PRECISION XIN	!THE ARRAY FROM WHICH THE INPUTS TO THIS TYPE
WILL BE RETRIEVED
	DOUBLE PRECISION OUT	!THE ARRAY WHICH WILL BE USED TO STORE THE
OUTPUTS FROM THIS TYPE
	DOUBLE PRECISION TIME	!THE CURRENT SIMULATION TIME - YOU MAY USE THIS
VARIABLE BUT DO NOT SET IT!
	DOUBLE PRECISION PSYDAT(1)
	DOUBLE PRECISION PAR	!THE ARRAY FROM WHICH THE PARAMETERS FOR THIS
TYPE WILL BE RETRIEVED
	DOUBLE PRECISION STORED !THE STORAGE ARRAY FOR HOLDING VARIABLES FROM
TIMESTEP TO TIMESTEP
	DOUBLE PRECISION T		!AN ARRAY CONTAINING THE RESULTS FROM THE
DIFFERENTIAL EQUATION SOLVER
	DOUBLE PRECISION DTDT	!AN ARRAY CONTAINING THE DERIVATIVES TO BE
PASSED TO THE DIFF.EQ. SOLVER
	DOUBLE PRECISION StorageArray(1)
	INTEGER StorageSize
	INTEGER*4 INFO(15),IUNITS,MODE,WBMODE,EMODE,STATUS	!THE IFO ARRAY
STORES AND PASSES VALUABLE INFORMATION TO AND FROM THIS TYPE
	INTEGER*4 NP,NI,NOUT,ND	!VARIABLES FOR THE MAXIMUM NUMBER OF
PARAMETERS,INPUTS,OUTPUTS AND DERIVATIVES
	INTEGER*4 NPAR,NIN,NDER	!VARIABLES FOR THE CORRECT NUMBER OF
PARAMETERS,INPUTS,OUTPUTS AND DERIVATIVES
	INTEGER*4 IUNIT,ITYPE	!THE UNIT NUMBER AND TYPE NUMBER FOR THIS COMPONENT
	INTEGER*4 ICNTRL		!AN ARRAY FOR HOLDING VALUES OF CONTROL FUNCTIONS
WITH THE NEW SOLVER
	INTEGER*4 NSTORED		!THE NUMBER OF VARIABLES THAT WILL BE PASSED INTO
AND OUT OF STORAGE
	CHARACTER*3 OCHECK		!AN ARRAY TO BE FILLED WITH THE CORRECT VARIABLE
TYPES FOR THE OUTPUTS
	CHARACTER*3 YCHECK		!AN ARRAY TO BE FILLED WITH THE CORRECT VARIABLE
TYPES FOR THE INPUTS
	CHARACTER*50	valore non valido
C-----------------------------------------------------------------------------------------------------------------------

C-----------------------------------------------------------------------------------------------------------------------
C    USER DECLARATIONS - SET THE MAXIMUM NUMBER OF PARAMETERS (NP), INPUTS (NI),
C    OUTPUTS (NOUT), AND DERIVATIVES (ND) THAT MAY BE SUPPLIED FOR THIS TYPE
      PARAMETER (NP=7,NI=5,NOUT=26,ND=0,NSTORED=4)
C-----------------------------------------------------------------------------------------------------------------------

C-----------------------------------------------------------------------------------------------------------------------
C    REQUIRED TRNSYS DIMENSIONS
      DIMENSION XIN(NI),OUT(NOUT),PAR(NP),YCHECK(NI),OCHECK(NOUT),
	1   STORED(NSTORED),T(ND),DTDT(ND)
      INTEGER NITEMS
C-----------------------------------------------------------------------------------------------------------------------
C-----------------------------------------------------------------------------------------------------------------------
C    ADD DECLARATIONS AND DEFINITIONS FOR THE USER-VARIABLES HERE


C    PARAMETERS
      DOUBLE PRECISION l
      DOUBLE PRECISION grad_vuoto
      DOUBLE PRECISION Sezione
      DOUBLE PRECISION d_silicagel
      DOUBLE PRECISION rho_silicagel
      DOUBLE PRECISION t0_letto
      DOUBLE PRECISION w0_letto
	DOUBLE PRECISION PATM

C    INPUTS
      DOUBLE PRECISION t_amb
      DOUBLE PRECISION equi
      DOUBLE PRECISION ads
      DOUBLE PRECISION portata
      DOUBLE PRECISION x_amb

c	OUTPUTS
	DOUBLE PRECISION intervallo,
     &velocit,
     &area_sup,
     &massa,
     &t_aria_in,
     &num_particelle,
     &miu,
     &k1,
     &k2,
     &w_eq,
     &x_out,
     &wst_prec,
     &w0_letto_ads,
     &wst,
     &H_ads,
     &i,
     &g,
     &t0_letto_K,
     &t_letto_prec_k,
     &t_letto,
     &t_aria,
     &dx,
     &t_equilibrata,
     &c,
     &d,
     &e,
     &perdita_carico,
     &TWET,
     &RELHUM,
     &TDEW,
     &ENTHAL,
     &DELT

	DATA PATM/1.0/
C	GET GLOBAL TRNSYS SIMULATION VARIABLES
	DELT = getSimulationTimeStep()
C-----------------------------------------------------------------------------------------------------------------------
C       READ IN THE VALUES OF THE PARAMETERS IN SEQUENTIAL ORDER
      l=PAR(1)
      grad_vuoto=PAR(2)
      Sezione=PAR(3)
      d_silicagel=PAR(4)
      rho_silicagel=PAR(5)
      t0_letto=PAR(6)
      w0_letto=PAR(7)
	

C-----------------------------------------------------------------------------------------------------------------------
C    RETRIEVE THE CURRENT VALUES OF THE INPUTS TO THIS MODEL FROM THE
XIN ARRAY IN SEQUENTIAL ORDER

      t_amb=XIN(1)
      equi=XIN(2)
      ads=XIN(3)
      portata=XIN(4)
      x_amb=XIN(5)
	   IUNIT=INFO(1)
	   ITYPE=INFO(2)

C-----------------------------------------------------------------------------------------------------------------------
C    SET THE VERSION INFORMATION FOR TRNSYS
      IF(INFO(7).EQ.-2) THEN
	   INFO(12)=16
	   RETURN 1
	ENDIF
C-----------------------------------------------------------------------------------------------------------------------

C-----------------------------------------------------------------------------------------------------------------------
C    DO ALL THE VERY LAST CALL OF THE SIMULATION MANIPULATIONS HERE
      IF (INFO(8).EQ.-1) THEN
	   RETURN 1
	ENDIF
C-----------------------------------------------------------------------------------------------------------------------

C-----------------------------------------------------------------------------------------------------------------------
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)=t_letto
	Stored(3)=wst
	call getStorageVars(Stored,StorageSize,INFO)
C	   STORED(1)=... (if NITEMS > 0)
C        CALL setStorageVars(STORED,NITEMS,INFO)
	ENDIF
C
C-----------------------------------------------------------------------------------------------------------------------

C-----------------------------------------------------------------------------------------------------------------------
C    DO ALL THE VERY FIRST CALL OF THE SIMULATION MANIPULATIONS HERE
      IF (INFO(7).EQ.-1) THEN

C       SET SOME INFO ARRAY VARIABLES TO TELL THE TRNSYS ENGINE HOW
THIS TYPE IS TO WORK
         INFO(6)=NOUT				
         INFO(9)=1				
	   INFO(10)=0	!STORAGE FOR VERSION 16 HAS BEEN CHANGED				

C       SET THE REQUIRED NUMBER OF INPUTS, PARAMETERS AND DERIVATIVES
THAT THE USER SHOULD SUPPLY IN THE INPUT FILE
C       IN SOME CASES, THE NUMBER OF VARIABLES MAY DEPEND ON THE VALUE
OF PARAMETERS TO THIS MODEL....
         NIN=NI
	   NPAR=NP
	   NDER=ND
	
C       CALL THE TYPE CHECK SUBROUTINE TO COMPARE WHAT THIS COMPONENT
REQUIRES TO WHAT IS SUPPLIED IN
C       THE TRNSYS INPUT FILE
	   CALL TYPECK(1,INFO,NIN,NPAR,NDER)

C       SET THE NUMBER OF STORAGE SPOTS NEEDED FOR THIS COMPONENT
         StorageSize=4
	CALL setStorageSize(StorageSize,INFO)
C	   CALL setStorageSize(NITEMS,INFO)

C       RETURN TO THE CALLING PROGRAM
         RETURN 1

      ENDIF
C-----------------------------------------------------------------------------------------------------------------------

C-----------------------------------------------------------------------------------------------------------------------
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       SET THE UNIT NUMBER FOR FUTURE CALLS
         IUNIT=INFO(1)
         ITYPE=INFO(2)

C       CHECK THE PARAMETERS FOR PROBLEMS AND RETURN FROM THE
SUBROUTINE IF AN ERROR IS FOUND
C         IF(...) CALL TYPECK(-4,INFO,0,"BAD PARAMETER #",0)

C       PERFORM ANY REQUIRED CALCULATIONS TO SET THE INITIAL VALUES OF
THE OUTPUTS HERE
C		 intervallo
			OUT(1)= delt*3600
C		 velocit
			OUT(2)=portata/(sezione*3600)
C		 area_sup
	        OUT(3)=6*(((3.14*(D_silicagel)**2)/4)*(L*sezione*
     &(1-grad_vuoto))/(3.14*d_silicagel**3))/(L*Sezione)
C		 massa
			OUT(4)=sezione*l*(1-grad_vuoto)*rho_silicagel
C		 t_aria_in
			OUT(5)=t_amb
C		 num_part
			OUT(6)=(L*sezione*(1-grad_vuoto))/(3.14*d_silicagel**3)
C		 miu
			OUT(7)=((((0.622/(0.622+x_amb))*(7.801*(
     &(t_amb+273)/100)-0.626*((
     &(t_amb+273)/100)**2)+0.02942*(((t_amb+273)/100)**3)+0.0076
     &9*(1.293*(273/(t_amb+273))))+(x_amb/(0.622+x_amb))*(40.407/(
     &((t_amb+273)/100)**2)-18.473/((t_amb+273)/100)+3.853*((
     &t_amb+273)/100)+(0.006*exp(0.05*t_amb))*(RELHUM/100)*
     &(0.0407-(1.988/((t_amb+273)/100))))))*((((x_amb/(0.622+x_amb))
     &-((x_amb/(0.622+x_amb))**2))/2.75)+1))/1000000
C		 k1
	OUT(8)=0.000000011*(t_amb)**4-0.000001901*(t_amb)**3
     &+0.000119197*(t_amb)**2-0.003107449*(t_amb)+
     &0.027364286
C		 k2
	OUT(9)=-0.00000017*(t_amb)**4+0.000033428*(t_amb)**3-
     &0.002105473*(t_amb)**2+0.05610934*(t_amb)-
     &0.496785714
C		 w_eq
	OUT(10)=(x_amb-(0.000000011*(t_amb)**4-0.000001901*
     &(t_amb)**3+0.000119197*(t_amb)**2-0.003107449
     &*t_amb+0.027364286))/(-0.00000017*(t_amb)**4+0.000033428
     &*(t_amb)**3-0.002105473*(t_amb)**2+0.05610934*t_amb-
     &0.496785714)
C		 x_aria_out
	OUT(11)=x_amb
C		 wst_prec
			OUT(12)=w0_letto
C		 wst
			OUT(13)=w0_letto
C		 H_ads
	OUT(14)=0
C		 i
	OUT(15)=0.1263
C		 g
	OUT(16)=7.833

C		 t0_letto_K
			OUT(17)=t0_letto_K
C		 t_letto_prec_k
			OUT(18)=t0_letto
C		 t_letto
			OUT(19)=t0_letto
C		 t_aria
			OUT(20)=t0_letto+(t_amb-t0_letto)*exp(-0.1263)
C		 dx
			OUT(21)=0
C		 t_equilibrata
	OUT(22)=(t0_letto)+(t_amb-t0_letto)*exp(-0.1263)
C		 c
			OUT(23)=c
C		 d
			OUT(24)=d
C		 e
			OUT(25)=e
C		 perdita_carico
			OUT(26)=perdita_carico

C       PERFORM ANY REQUIRED CALCULATIONS TO SET THE INITIAL STORAGE
VARIABLES HERE

	STORED(1)=t0_letto
	STORED(2)=t_letto
	STORED(3)=w0_letto
	STORED(4)=wst
C	   STORED(1)=...

C       PUT THE STORED ARRAY IN THE GLOBAL STORED ARRAY
         CALL setStorageVars(STORED,StorageSize,INFO)
c	  CALL PSYCHROMETRICS SUBROUTINE
	PSYDAT(1) = PATM
	PSYDAT(2) = t_amb
	PSYDAT(3) = TWET
	PSYDAT(4) = RELHUM
	PSYDAT(5) = TDEW
	PSYDAT(6) = x_amb
	PSYDAT(7) = ENTHAL
C     DO NOT PRINT ERROR WARNINGS ON THE FIRST CALL

	CALL PSYCHROMETRICS(TIME,INFO,1,MODE,WBMODE,PSYDAT,0,STATUS,
     1	*10)
	CALL LINKCK('TYPE 33','PSYCHROMETRICS',1,99)
10      CONTINUE

C       GET INFO FROM PSYCH
	   MODE=4
         PATM = PSYDAT(1)
         t_amb = PSYDAT(2)
         TWET = PSYDAT(3)
         RELHUM = PSYDAT(4)
         TDEW = PSYDAT(5)
         x_amb = PSYDAT(6)
         ENTHAL = PSYDAT(7)


C       RETURN TO THE CALLING PROGRAM
         RETURN 1

      ENDIF
C-----------------------------------------------------------------------------------------------------------------------

C-----------------------------------------------------------------------------------------------------------------------
C    *** ITS AN ITERATIVE CALL TO THIS COMPONENT ***
C-----------------------------------------------------------------------------------------------------------------------

	
C-----------------------------------------------------------------------------------------------------------------------

C-----------------------------------------------------------------------------------------------------------------------
C-----------------------------------------------------------------------------------------------------------------------
C    C    CHECK DEI PARAMETRI
	if(l.gt.1) then
	write (valore non valido,'("Par(1)=",G",which is ok")')PAR(1)
	call Messages(-1,trim(valore non valido),'Fatal',info(1),info(2))
	return 1
	endif
		
C    CHECK THE INPUTS FOR VALIDITY AND RETURN IF PROBLEMS ARE FOUND
      IF(portata.lt.0) CALL TYPECK(-3,INFO,4,0,0)
	if(equi.lt.0) call typeck(-3,info,2,0,0)
	if(equi.gt.1) call typeck(-3,info,2,0,0)
	if(ads.lt.0) call typeck(-3,info,3,0,0)
	if(ads.gt.1) call typeck(-3,info,3,0,0)
      IF(ErrorFound() ) RETURN 1
C-----------------------------------------------------------------------------------------------------------------------
C-----------------------------------------------------------------------------------------------------------------------
C    *** PERFORM ALL THE CALCULATION HERE FOR THIS MODEL. ***
C-----------------------------------------------------------------------------------------------------------------------

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.

C	ACTIVE CONDITION
C    RETRIEVE THE VALUES IN THE STORAGE ARRAY FOR THIS ITERATION
C
	CALL getStorageVars(STORED,StorageSize,INFO)
	StorageSize=4
      STORED(1)=t0_letto
	STORED(3)=w0_letto
	

	intervallo = DELT*3600

      velocit=portata/(sezione*3600)

      num_particelle=(L*sezione*(1-grad_vuoto))/(3.14*d_silicagel**3)

	area_sup=6*(((3.14*(D_silicagel)**2)/4)*num_particelle)/(l*Sezione)

      massa=sezione*l*(1-grad_vuoto)*rho_silicagel

	t_aria_in=t_amb

      w0_letto_ads=w0_letto

	miu=((((0.622/(0.622+x_amb))*(7.801*((t_aria_in+273)/100)-0.626*((
     &(t_aria_in+273)/100)**2)+0.02942*(((t_aria_in+273)/100)**3)+0.0076
     &9*(1.293*(273/(t_aria_in+273))))+(x_amb/(0.622+x_amb))*(40.407/(
     &((t_aria_in+273)/100)**2)-18.473/((t_aria+273)/100)+3.853*((
     &t_aria_in+273)/100)+(0.006*exp(0.05*t_aria_in))*(RELHUM/100)*
     &(0.0407-(1.988/((t_aria_in+273)/100))))))*((((x_amb/(0.622+x_amb))
     &-((x_amb/(0.622+x_amb))**2))/2.75)+1))/1000000

	k1=0.000000011*(t_amb)**4-0.000001901*(t_amb)**3
     &+0.000119197*(t_amb)**2-0.003107449*(t_amb)+
     &0.027364286

      k2=-0.00000017*(t_amb)**4+0.000033428*(t_amb)**3
     &-0.002105473*(t_amb)**2+0.05610934*(t_amb)-
     &0.496785714

      w_eq=(x_amb-k1)/k2

      x_out=x_amb-(k2*(w_eq-w0_letto)*exp(-(portata*(1.293*(273/(t_aria
     &+273)))/(3600*massa))*k2*(intervallo)))

      wst = w_eq -(w_eq-w0_letto)*exp(-(portata*(1.293*(273/(t_aria_in+
     &273)))/(3600*massa))*k2*intervallo)

      wst_prec=wst

	H_ads=(2950-1400*wst)*(0.704*(velocit*(1.293*(273/(t_aria_in+
     &273))))*(d_silicagel*portata*(1.293*(273/(t_aria_in+273)))/(miu*
     &sezione*3600))**(-0.51))*area_sup*dx/1000

      i=0.1263

	

      g=(0.683*(velocit*(1.293*(273/(t_aria_in+273))))*(1.884*(x_amb/(1
     &+x_amb))+1.005*(1-(x_amb/(1+x_amb))))*(d_silicagel*portata*(1.293*
     &(273/(t_aria_in+273)))/(miu*sezione*3600))**(-0.51))*area_sup*(1+
     &exp(-i))

      t0_letto_k=t0_letto+273

      t_letto=(((t_amb)*g+2*H_ads+(g*(t0_letto-
     &(t_amb))-2*H_ads)*exp(-g*(intervallo)/(2*(4.178*wst+
     &0.921)*(1-grad_vuoto)*rho_silicagel)))/g)

	t_aria=t_letto+(t_amb-t_letto)*exp(-i)

	t_letto_prec_K=t_letto+273

      dx=(x_amb-x_out)*1000

      t_equilibrata=t_amb

	c=150/((d_silicagel*portata*(1.293*(273/(t_aria_in+273)))/(miu*
     &sezione*3600))/(1-grad_vuoto))+1.75

	d=((1.293*(273/(t_aria_in+273)))*velocit)**2

	e=l*(1-grad_vuoto)/((1.293*(273/(t_aria_in+273)))*d_silicagel*
     &grad_vuoto**3)

	perdita_carico=c*d*e
C-----------------------------------------------------------------------------------------------------------------------
C    SET THE STORAGE ARRAY AT THE END OF THIS ITERATION IF NECESSARY
      STORED(2)=t_letto
	STORED(4)=wst
	CALL setStorageVars(STORED,StorageSize,INFO)
C-----------------------------------------------------------------------------------------------------------------------
C-----------------------------------------------------------------------------------------------------------------------
C    REPORT ANY PROBLEMS THAT HAVE BEEN FOUND USING CALLS LIKE THIS:
C      CALL MESSAGES(-1,'put your message here','MESSAGE',IUNIT,ITYPE)
C      CALL MESSAGES(-1,'put your message here','WARNING',IUNIT,ITYPE)
C      CALL MESSAGES(-1,'put your message here','SEVERE',IUNIT,ITYPE)
C      CALL MESSAGES(-1,'put your message here','FATAL',IUNIT,ITYPE)
C-----------------------------------------------------------------------------------------------------------------------
C-----------------------------------------------------------------------------------------------------------------------
C    SET THE OUTPUTS FROM THIS MODEL IN SEQUENTIAL ORDER AND GET OUT

C		 intervallo
			OUT(1)=intervallo
C		 velocit
			OUT(2)=velocit
C		 area_sup
			OUT(3)=area_sup
C		 massa
			OUT(4)=massa
C		 t_aria_in
			OUT(5)=t_aria_in
C		 num_part
			OUT(6)=num_particelle
C		 miu
			OUT(7)=miu
C		 k1
			OUT(8)=k1
C		 k2
			OUT(9)=k2
C		 w_eq
			OUT(10)=w_eq
C		 x_aria_out
			OUT(11)=x_out
C		 wst_prec
			OUT(12)=wst_prec
C		 wst
			OUT(13)=wst
C		 H_ads
			OUT(14)=H_ads
C		 i
			OUT(15)=i
C		 g
			OUT(16)=g
C		 t0_letto_K
			OUT(17)=t0_letto_K
C		 t_letto_prec_k
			OUT(18)=t_letto_prec_K
C		 t_letto
			OUT(19)=t_letto
C		 t_aria
			OUT(20)=t_aria
C		 dx
			OUT(21)=dx
C		 t_equilibrata
			OUT(22)=t_equilibrata
C		 c
			OUT(23)=c
C		 d
			OUT(24)=d
C		 e
			OUT(25)=e
C		 perdita_carico
			OUT(26)=perdita_carico

C-----------------------------------------------------------------------------------------------------------------------
C    EVERYTHING IS DONE - RETURN FROM THIS SUBROUTINE AND MOVE ON
      RETURN 1
      END
C-----------------------------------------------------------------------------------------------------------------------