C*********************************************************************** ! This component has been assigned Type Number 209. If that number conflicts with ! another user Type number, you will need to change it and recompile the appropriate ! dll. SUBROUTINE TYPE209(TIME,XIN,OUT,T,DTDT,PAR,INFO,ICNTRL,*) !DEC$ATTRIBUTES DLLEXPORT :: TYPE209 C ---------------------------------------------------------------------- C C TYPE 209 : FLOW SPLIT MODEL C C*********************************************************************** DOUBLE PRECISION XIN,OUT REAL PAR,K C INTEGER IOSTAT DIMENSION XIN(3),OUT(3),PAR(1) C DIMENSION IOSTAT(3) ! Set the version information for TRNSYS IF (INFO(7).EQ.-2) THEN INFO(12) = 15 RETURN 1 ENDIF W1= XIN(1) P2= XIN(2) P3= XIN(3) K= PAR(1) DP=P3-P2 DW=2.*DP/(K*ABS(W1)) DISCR=4.*ABS(DP)/K-W1**2 W2=0.5*(W1+DW) SP=1.0 IF (DP.NE.0.) SP=SIGN(1.,DP) IF (DISCR.GT.W1**2) W2=0.5*(W1+SP*SQRT(DISCR)) W3=W1-W2 P1=P2+0.5*K*(W1*ABS(W1)+W2*ABS(W2)) OUT(1)= W2 OUT(2)= W3 OUT(3)= P1 C DO 10 I=1,3 C IOSTAT(I)=1 C 10 CONTINUE RETURN 1 END