SUBROUTINE TimeInfo(Location, Calling) USE Numeric_Kinds_Module !Use FileUnits_Module IMPLICIT NONE SAVE INTEGER, PARAMETER:: Out_Unit=6, Crit_Unit=8, Msg_Unit=13, Time_Unit=14, Num_Unit=15, DAF_Unit=16, Dbug_Unit=99 LOGICAL, PARAMETER:: DEBUG=.FALSE. CHARACTER(len=1), PARAMETER:: CTab =' ' CHARACTER(len=15), PARAMETER:: Blank=' ' CHARACTER(len=*) Location, Calling CHARACTER(len=8) Date CHARACTER(len=10) Time CHARACTER(len=12) Now CHARACTER(len=20) LastCall REAL(sp) InitialTime, TimeNow, DiffTime/0.0/, TimeLast/0.0/ INTEGER ElapsedHours,ElapsedMinutes CALL Date_And_Time(Date,Time) Now=Time(1:2)//':'//Time(3:4)//':'//Time(5:6)//Time(7:10) IF(DEBUG)THEN WRITE(Dbug_Unit,*)'Time: ',Now,' In ',Location,' Calling ',Calling WRITE(Out_Unit,*)'Time: ',Now,' In ',Location,' Calling ',Calling ENDIF IF(TimeLast.eq.0.0)THEN TimeLast=TimeNow LastCall=Blank ENDIF TimeNow=Secnds(TimeLast) DiffTime=TimeNow-DiffTime IF(Location.eq.'Main_Start')THEN TimeLast=TimeNow TimeNow=Secnds(TimeLast) InitialTime=TimeNow WRITE(Dbug_Unit,*) '-------------------------------' WRITE(Dbug_Unit,18)Date(5:6),Date(7:8),Date(1:4) WRITE(Dbug_Unit,*)'Initial Time =',Now WRITE(Dbug_Unit,*)'Initial Second=',InitialTime WRITE(Dbug_Unit,*) '-------------------------------' WRITE(Out_Unit,18)Date(5:6),Date(7:8),Date(1:4) WRITE(Out_Unit,*)'Initial Time =',Now WRITE(Out_Unit,*)'Initial Second=',InitialTime WRITE(Dbug_Unit,*) '-------------------------------' WRITE(Time_Unit,18)Date(5:6),Date(7:8),Date(1:4) WRITE(Time_Unit,*)'Initial Time =',Now WRITE(Time_Unit,*)'Initial Second=',InitialTime ENDIF IF(Calling(1:5).eq.' End')THEN WRITE(Time_Unit,'(es15.7,2x,es15.7,2x,a,a15,a,a20,a)')TimeNow, DiffTime, CTab, Location, CTab, Calling, CTab ENDIF IF(Location.eq.'Main_Stop')THEN ElapsedHours = (TimeNow-InitialTime)/3600 ElapsedMinutes = ((TimeNow-InitialTime)-ElapsedHours*3600)/60 WRITE(Dbug_Unit,*)'Final Second =',TimeNow WRITE(Dbug_Unit,*)'Final Time =',Now WRITE(Dbug_Unit,*)'Total Elapsed Time=',TimeNow-InitialTime WRITE(Dbug_Unit,'(1x,a19,i5,a4,i5,a7,i7,a3)')'Total Walltime =',ElapsedHours,' hs ',ElapsedMinutes,' min = ', & int(TimeNow-InitialTime),' s.' WRITE(Dbug_Unit,18)Date(5:6),Date(7:8),Date(1:4) WRITE(Dbug_Unit,19) WRITE(Out_Unit,*)'Final Second =',TimeNow WRITE(Out_Unit,*)'Final Time =',Now WRITE(Out_Unit,*)'Total Elapsed Time=',TimeNow-InitialTime WRITE(Out_Unit,'(1x,a19,i5,a4,i5,a7,i7,a3)')'Total Walltime =',ElapsedHours,' hs ',ElapsedMinutes,' min = ', & int(TimeNow-InitialTime),' s.' WRITE(Out_Unit,18)Date(5:6),Date(7:8),Date(1:4) WRITE(Out_Unit,19) WRITE(Time_Unit,*)'Final Second =',TimeNow WRITE(Time_Unit,*)'Final Time =',Now WRITE(Time_Unit,*)'Total Elapsed Time=',TimeNow-InitialTime WRITE(Time_Unit,'(1x,a19,i5,a4,i5,a7,i7,a3)')'Total Walltime =',ElapsedHours,' hs ',ElapsedMinutes,' min = ', & int(TimeNow-InitialTime),' s.' WRITE(Time_Unit,18)Date(5:6),Date(7:8),Date(1:4) WRITE(Time_Unit,19) ENDIF DiffTime=TimeNow LastCall=Blank LastCall=Calling CALL Flush(Time_Unit) RETURN 17 FORMAT(1x,'Starting') 18 FORMAT(1x,'Date: ',a2,'/',a2,'/',a4) 19 FORMAT(1x,'Finished') END SUBROUTINE TimeInfo