<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=FR-CH link="#0563C1" vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>In trnsys 13.1, i had (long time ago ..) modified the kernel of TRNSYS (see below).<o:p></o:p></p><p class=MsoNormal>The reason was to be able to check if the control routine developed was converging to the correct physical case (e.g. solar, then auxiliary etc …). If not then i was getting TRNSYS to restart the iteration on the same time step until the correct control case was obtained.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Has anybody done something similar for TRNSYS 17.2 ?<o:p></o:p></p><p class=MsoNormal>I have started looking for this, it seems to be located between, exec.for, trnsys.for, etc …<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks in advance,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span lang=EN-IN style='mso-fareast-language:FR-CH'>Pierre Jaboyedoff<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Head of BEEP PMTU Switzerland (<a href="http://www.beepindia.org">www.beepindia.org</a>)<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Effin’Art</span><span lang=EN-IN style='mso-fareast-language:FR-CH'><o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Associate<o:p></o:p></span></p><p class=MsoNormal><b><span style='mso-fareast-language:FR-CH'>Chemin de Pré-Fleuri 6<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='mso-fareast-language:FR-CH'>Entrance at the back, 3rd floor on the left<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='mso-fareast-language:FR-CH'>CH-1006 Lausanne<o:p></o:p></span></b></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Tel : 00 41 21 616 11 00</span><span lang=EN-IN style='mso-fareast-language:FR-CH'><o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Mobile : 00 41 79 668 50 88</span><span lang=EN-IN style='mso-fareast-language:FR-CH'><o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'><a href="mailto:pierre.jaboyedoff@effinart.ch" target="_blank"><span style='color:#0563C1'>pierre.jaboyedoff@effinart.ch</span></a></span><span lang=EN-IN style='mso-fareast-language:FR-CH'><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>in blockdat<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>C MODIF PJ BEGIN<o:p></o:p></p><p class=MsoNormal> COMMON /CHKSTEP/ ireiter, icas, icaschk<o:p></o:p></p><p class=MsoNormal> COMMON /sunsp/ tsunsp, tset, tmax, tload, tsto, text <o:p></o:p></p><p class=MsoNormal>C MODIF PJ END<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>in main<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>c modif pj begin<o:p></o:p></p><p class=MsoNormal> COMMON /CHKSTEP/ IREITER , icas, icaschk<o:p></o:p></p><p class=MsoNormal> COMMON /sunsp/ tsunsp, tset, tmax, tload, tsto, text<o:p></o:p></p><p class=MsoNormal>c modif pj end<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>C ********************** MAIN SIMULATION LOOP **************************<o:p></o:p></p><p class=MsoNormal>100 IF (DONE) GO TO 999<o:p></o:p></p><p class=MsoNormal> CALL CLOCK(TIME,DONE,2)<o:p></o:p></p><p class=MsoNormal>C modif pj begin<o:p></o:p></p><p class=MsoNormal>c added label 10001 used for reiter of the time step<o:p></o:p></p><p class=MsoNormal>10001 IF (NDERIV.EQ.0) THEN<o:p></o:p></p><p class=MsoNormal>c modif pj end<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>370 CONTINUE<o:p></o:p></p><p class=MsoNormal> ENDIF<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>C SWITCH PREDICTED AND CORRECTED VALUES<o:p></o:p></p><p class=MsoNormal> I = PRED<o:p></o:p></p><p class=MsoNormal> PRED = CORR<o:p></o:p></p><p class=MsoNormal> CORR = I<o:p></o:p></p><p class=MsoNormal> INTG = 2<o:p></o:p></p><p class=MsoNormal> IF (IRECUR.GT.0) INTG = 3<o:p></o:p></p><p class=MsoNormal> IF ((IRECUR.GT.0.OR.NCALLS.GT.0).AND.(ICT.EQ.0)) GO TO 200<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>C ************************************************************<o:p></o:p></p><p class=MsoNormal>C MODIF PJ BEGIN (LABELED COMMON ADDED IN BLOCKDAT_M.FOR, )<o:p></o:p></p><p class=MsoNormal>c control_iter retuen a variable reiter (in common labelled CHKSTEP) <o:p></o:p></p><p class=MsoNormal>C REITER =0 GO ON TO NEXT TIME STEP<o:p></o:p></p><p class=MsoNormal>C =1 REITER ON THE SAME TIME STEP<o:p></o:p></p><p class=MsoNormal> call control_iter(time)<o:p></o:p></p><p class=MsoNormal> if (ireiter .gt. 0) then<o:p></o:p></p><p class=MsoNormal> ireiter=ireiter+1<o:p></o:p></p><p class=MsoNormal> icasmain=icas<o:p></o:p></p><p class=MsoNormal> icaschkm=icaschk<o:p></o:p></p><p class=MsoNormal> timereit=max(0.,time)<o:p></o:p></p><p class=MsoNormal>c WRITE(*,*) "reiter ", timereit, icasmain, icaschkm<o:p></o:p></p><p class=MsoNormal> tsunspm=tsunsp<o:p></o:p></p><p class=MsoNormal> tsetm=tset<o:p></o:p></p><p class=MsoNormal> tloadm=tload<o:p></o:p></p><p class=MsoNormal> tmaxm=tmax<o:p></o:p></p><p class=MsoNormal> stom=tsto<o:p></o:p></p><p class=MsoNormal> textm=text<o:p></o:p></p><p class=MsoNormal>c write (*,*) " tsunsp=", tsunspm, " tset=",tsetm," text=",textm<o:p></o:p></p><p class=MsoNormal>c write (*,*) " tload=", tloadm, " tmax=",tmaxm," tsto=",tsto <o:p></o:p></p><p class=MsoNormal>c write (*,*) icasmain<o:p></o:p></p><p class=MsoNormal>c write (*,*) icaschkm<o:p></o:p></p><p class=MsoNormal>c CALL PRINT(TIME,DONE)<o:p></o:p></p><p class=MsoNormal> goto 10001<o:p></o:p></p><p class=MsoNormal> endif<o:p></o:p></p><p class=MsoNormal>C MODIF PJ END<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>in exec<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>c modif pj begin<o:p></o:p></p><p class=MsoNormal> COMMON /CHKSTEP/ IREITER, icas, icaschk <o:p></o:p></p><p class=MsoNormal>c modif pj end<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>110 INFO(7,J) = -1<o:p></o:p></p><p class=MsoNormal> ELSE<o:p></o:p></p><p class=MsoNormal> DO 111 J = 1, NUNITS<o:p></o:p></p><p class=MsoNormal> CALL(J) = CALL1(J)<o:p></o:p></p><p class=MsoNormal>c modif pj begin<o:p></o:p></p><p class=MsoNormal>c added info(7,j) =0 for the case where one wants to reiter on the same<o:p></o:p></p><p class=MsoNormal>c time step<o:p></o:p></p><p class=MsoNormal> if (ireiter .le. 0) then<o:p></o:p></p><p class=MsoNormal> INFO(7,J) = -1<o:p></o:p></p><p class=MsoNormal> else<o:p></o:p></p><p class=MsoNormal> CALL(J) = .TRUE.<o:p></o:p></p><p class=MsoNormal> INFO(7,J) = 0<o:p></o:p></p><p class=MsoNormal> endif <o:p></o:p></p><p class=MsoNormal>111 continue <o:p></o:p></p><p class=MsoNormal>c modif pj end<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>-------------------------------------------------------------------------<o:p></o:p></p><p class=MsoNormal>In my own control routine<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>c modif pj begin<o:p></o:p></p><p class=MsoNormal> COMMON /CHKSTEP/ IREITER, icas, icaschk<o:p></o:p></p><p class=MsoNormal> COMMON /sunsp/ tsunsp, tset, tmax, tload, tsto, text<o:p></o:p></p><p class=MsoNormal> SAVE /sunsp/ <o:p></o:p></p><p class=MsoNormal>c modif pj end<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span lang=EN-IN style='mso-fareast-language:FR-CH'>Pierre Jaboyedoff<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Head of BEEP PMTU Switzerland (www.beepindia.org)<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Effin’Art</span><span lang=EN-IN style='mso-fareast-language:FR-CH'><o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Associate<o:p></o:p></span></p><p class=MsoNormal><b><span style='mso-fareast-language:FR-CH'>Chemin de Pré-Fleuri 6<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='mso-fareast-language:FR-CH'>Entrance at the back, 3rd floor on the left<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='mso-fareast-language:FR-CH'>CH-1006 Lausanne<o:p></o:p></span></b></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Tel : 00 41 21 616 11 00</span><span lang=EN-IN style='mso-fareast-language:FR-CH'><o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'>Mobile : 00 41 79 668 50 88</span><span lang=EN-IN style='mso-fareast-language:FR-CH'><o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:FR-CH'><a href="mailto:pierre.jaboyedoff@effinart.ch" target="_blank"><span style='color:#0563C1'>pierre.jaboyedoff@effinart.ch</span></a></span><span lang=EN-IN style='mso-fareast-language:FR-CH'><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>