SUBROUTINE LINK_CLEAR(link) #include "dyna.inc" #include "link.inc" RECORD /Link_Data/ link INTEGER i link.number = 0 link.nlanes = 0 link.conc = 0.D0 link.speed = 0.D0 link.cmax = 0.D0 link.vmax = 0.D0 link.p = 0.D0 link.xl = 0.D0 link.vlg = 0.D0 link.length = 0.D0 link.nin = 0 link.nmov = 0 link.npar = 0 link.nout = 0 DO i = 1,MAX_LANE_TYPE link.laneutil(i) = 0 link.capacity(i) = 0 ENDDO link.seccap = 0 link.backindex = 0 DO i = 1,NU_ZN link.linkdest(i) = 0 link.cmslink(i) = 0 link.gentot(i) = 0 ENDDO link.link_det_num = 0 DO i = 1,MAX_LINK_STATIONS link.link_det_list(i) = 0 ENDDO link.on_link.first = NULLP link.on_link.last = NULLP link.on_endq.first = NULLP link.on_endq.last = NULLP link.on_genq.first = NULLP link.on_genq.last = NULLP link.into.first = NULLP link.into.last = NULLP link.gen = 0.D0 link.iflag = 0 link.ndque = 0 link.totalql = 0 link.nqactiv = 0 link.ntryq = 0 link.nenac1 = 0 link.nenaflg = 0 link.nqac1 = 0 DO i = 1,MAX_MOVE_TYPE link.indelay(i) = 0 ENDDO link.statmpt = 0.D0 link.intoo = 0.D0 link.iunod = 0 link.idnod = 0 link.ildem = 0 link.type = 0 link.numdslinks = 0 DO i = 1,MAX_OUT link.dsmoveptr(i) = 0 ENDDO link.numuslinks = 0 DO i = 1,MAX_IN link.usmoveptr(i) = 0 ENDDO link.sat = 0.D0 link.volume = 0 link.vehicle_queue = 0 link.entry_queue = 0 link.holdc = 0 link.incident_code = 0 RETURN END INTEGER FUNCTION LINK_READ(unit,link) #include "dyna.inc" #include "link.inc" INTEGER unit RECORD /Link_Data/ link INTEGER ilength CALL LINK_CLEAR(link) CALL FND(unit) READ(unit,11,END=99662) + link.iunod + ,link.idnod + ,ilength + ,link.ildem + ,link.nlanes + ,link.sat + ,link.vmax + ,link.type 11 FORMAT(3I5,2I2,F6.3,F6.2,I2) link.length = FLOAT(ilength) LINK_READ = 0 RETURN C - Link not read 99662 LINK_READ = 1 RETURN END SUBROUTINE LINK_INIT(sim,net) #include "dyna.inc" #include "sim.inc" #include "network.inc" RECORD /Sim_Data/ sim RECORD /Road_Network/ net RECORD /Link_Data/ tlink INTEGER LINK_READ ! function C --- READ LINK DATA CALL READSTAT('links',LINK_FILE) C - LOOP AND READ INFO FOR ALL LINKS DO WHILE ( LINK_READ(LINK_FILE, tlink).EQ.0 ) CALL ADD_LINK(sim,net,tlink) ENDDO 99662 CONTINUE RETURN END