From 74ba43035f4557a6dac562ced3c84799649a831c Mon Sep 17 00:00:00 2001 From: Zaher Salman Date: Thu, 7 Mar 2013 15:07:12 +0000 Subject: [PATCH] Created TimeStamp subroutine to remove code from main. --- trimsp/src/trimsp7l.F | 220 +++++++++++++++--------------------------- 1 file changed, 79 insertions(+), 141 deletions(-) diff --git a/trimsp/src/trimsp7l.F b/trimsp/src/trimsp7l.F index 06ab81d..946f4f9 100644 --- a/trimsp/src/trimsp7l.F +++ b/trimsp/src/trimsp7l.F @@ -183,6 +183,13 @@ c input files without the hassle of formatting. c Included the source of ranlux for random numbers generation c into trimsp7l source. No need for cern libraries to be installed. c +c Feb 2013: Zaher Salman PSI +c Started cleaning up the code. +c When possible remove loop numbres and use do-enddo instead. +c Using proper fortran line indentation (emacs style). +c Created TimeStamp subroutine to generate time stamp and removed +c original code from main (two places) +c c------------------------------------------- c check OS c @@ -200,10 +207,7 @@ c INTEGER I,J,IV INTEGER tryE,negE INTEGER COLCOUNT - INTEGER Date_time(8) - INTEGER days_total_stop !! TR INTEGER depth_interval_flag - INTEGER*4 days_start_total,days_stop_total INTEGER*4 seconds_start_total,seconds_stop_total INTEGER*4 NREC1,NREC2,NE1,K,NGIK,ICW INTEGER*4 ISEED,ISEED2,ISEED3 @@ -389,7 +393,6 @@ C CHARACTER Variables CHARACTER rgenam*12,rgeext*4,errnam*12,errext*4 CHARACTER errcom*72 CHARACTER COLUMN(100)*246 - CHARACTER Real_Clock(3)*12 CHARACTER month_start*4,month_stop*4,day_start*2,day_stop*2 CHARACTER year_start*4,year_stop*4,hour_start*2,hour_stop*2 CHARACTER min_start*2,min_stop*2,sec_start*2,sec_stop*2 @@ -508,25 +511,6 @@ C part. refl. coeff. from Thomas et al. 13591 CLOSE(UNIT=21) - WRITE(*,*) Z1,M1,E0,Esig,ALPHA,ALPHASIG,EF,ESB,SHEATH,ERC - WRITE(*,*) NH,RI,RI2,RI3,X0,RD,CW,CA,KK0,KK0R,KDEE1,KDEE2 ,IPOT - & ,IPOTR,IRL - WRITE(*,*) DX(1),DX(2),DX(3),DX(4),DX(5),DX(6),DX(7),RHO(1),RHO(2) - & ,RHO(3),RHO(4),RHO(5),RHO(6),RHO(7), CK(1),CK(2),CK(3),CK(4) - & ,CK(5),CK(6),CK(7) - DO I=1,7 - WRITE(*,'(1x,I2,A7)')i,'. Layer' - WRITE(*,*) ZT(I,1),ZT(I,2),ZT(I,3),ZT(I,4),ZT(I,5) - WRITE(*,*) MT(I,1),MT(I,2),MT(I,3),MT(I,4),MT(I,5) - WRITE(*,*) CO(I,1),CO(I,2),CO(I,3),CO(I,4),CO(I,5) - ENDDO - - 100 FORMAT(2F7.2,1F12.2,7F9.2) - 101 FORMAT(I9,3F8.0,1F7.2,1F7.0,2F7.2,6I4,I3) - 102 FORMAT(7F9.2,14F7.2) - 103 FORMAT(5F9.4) - 107 FORMAT(5F12.6) - C open statement for output files, removed from line 2449 ff to here OPEN(UNIT=21,FILE=outnam,STATUS='new',ERR=6000) GOTO 6001 @@ -539,60 +523,13 @@ C open statement for output files, removed from line 2449 ff to here WRITE(21,1000) 1000 FORMAT(1H1/,6X,'* PROGRAM TRVMC95 - V TrimSP7L 17.Oct.02 TP *') -C 1st CALL DATE_AND_TIME - CALL DATE_AND_TIME(Real_Clock(1),Real_Clock(2),Real_Clock(3), - & Date_Time) - - IF(Date_Time(2).EQ.1) THEN - month_start='Jan.' - days_start_total=Date_Time(3) - ELSEIF(Date_Time(2).EQ.2) THEN - month_start='Feb.' - days_start_total=31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.3) THEN - month_start='Mar.' - days_start_total=31+28+Date_Time(3) - ELSEIF(Date_Time(2).EQ.4) THEN - month_start='Apr.' - days_start_total=31+28+31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.5) THEN - month_start='May ' - days_start_total=31+28+31+30+Date_Time(3) - ELSEIF(Date_Time(2).EQ.6) THEN - month_start='Jun.' - days_start_total=31+28+31+30+31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.7) THEN - month_start='Jul.' - days_start_total=31+28+31+30+31+30+Date_Time(3) - ELSEIF(Date_Time(2).EQ.8) THEN - month_start='Aug.' - days_start_total=31+28+31+30+31+30+31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.9) THEN - month_start='Sep.' - days_start_total=31+28+31+30+31+30+31+31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.10) THEN - month_start='Oct.' - days_start_total=31+28+31+30+31+30+31+31+30+Date_Time(3) - ELSEIF(Date_Time(2).EQ.11) THEN - month_start='Nov.' - days_start_total=31+28+31+30+31+30+31+31+30+31+Date_Time(3) - ELSE - month_start='Dec.' - days_start_total=31+28+31+30+31+30+31+31+30+31+30+Date_Time(3) - ENDIF -C in seconds from beginning of year - seconds_start_total=Date_Time(7)+(Date_Time(6)*60)+(Date_Time(5) - & *3600)+(days_start_total-1)*86400 - - READ(Real_Clock(1)(1:4),'(A4)')year_start - READ(Real_Clock(1)(7:8),'(A2)')day_start - READ(Real_Clock(2)(1:2),'(A2)')hour_start - READ(Real_Clock(2)(3:4),'(A2)')min_start - READ(Real_Clock(2)(5:6),'(A2)')sec_start - + CALL TimeStamp(day_start,month_start,year_start,hour_start + & ,min_start,sec_start,seconds_start_total) WRITE(21,*) WRITE(21,10050)day_start,month_start,year_start,hour_start & ,min_start,sec_start + WRITE(*,10050)day_start,month_start,year_start,hour_start + & ,min_start,sec_start 10050 FORMAT(1x,' TrimSp simulation started at: ',A2,'.',A4,1x,A4,1x,A2 & ,':',A2,':',A2) @@ -888,16 +825,13 @@ C GAUSSIAN ENERGY DISTRIBUTION E(IV)=Epar ENDDO ENDIF -C -C die nachfolgende Zeile wurden von Linie 633 hier hin verschoben -C + SFE = DMIN1(SB(1),SB(L)) IF ( ALPHA.GE.0.D0 ) THEN IF(EQUAL(ALPHASIG,0.D0))THEN C C FIXED PROJECTILE ANGLE C -C nachfolgende drei Zeilen waren vorher bei LINIE 633 ALFA = ALPHA /BW CALFA = DCOS(ALFA) SALFA = DSIN(ALFA) @@ -2452,60 +2386,16 @@ C ENDIF C 2nd CALL DATE_AND_TIME - CALL DATE_AND_TIME(Real_Clock(1),Real_Clock(2),Real_Clock(3), - & Date_Time) - IF(Date_Time(2).EQ.1) THEN - month_stop='Jan.' - days_total_stop=Date_Time(3) - ELSEIF(Date_Time(2).EQ.2) THEN - month_stop='Feb.' - days_stop_total=31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.3) THEN - month_stop='Mar.' - days_stop_total=31+28+Date_Time(3) - ELSEIF(Date_Time(2).EQ.4) THEN - month_stop='Apr.' - days_stop_total=31+28+31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.5) THEN - month_stop='May ' - days_stop_total=31+28+31+30+Date_Time(3) - ELSEIF(Date_Time(2).EQ.6) THEN - month_stop='Jun.' - days_stop_total=31+28+31+30+31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.7) THEN - month_stop='Jul.' - days_stop_total=31+28+31+30+31+30+Date_Time(3) - ELSEIF(Date_Time(2).EQ.8) THEN - month_stop='Aug.' - days_stop_total=31+28+31+30+31+30+31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.9) THEN - month_stop='Sep.' - days_stop_total=31+28+31+30+31+30+31+31+Date_Time(3) - ELSEIF(Date_Time(2).EQ.10) THEN - month_stop='Oct.' - days_stop_total=31+28+31+30+31+30+31+31+30+Date_Time(3) - ELSEIF(Date_Time(2).EQ.11) THEN - month_stop='Nov.' - days_stop_total=31+28+31+30+31+30+31+31+30+31+Date_Time(3) - ELSE - month_stop='Dec.' - days_stop_total=31+28+31+30+31+30+31+31+30+31+30+Date_Time(3) - ENDIF - - READ(Real_Clock(1)(1:4),'(A4)')year_stop - READ(Real_Clock(1)(7:8),'(A2)')day_stop - READ(Real_Clock(2)(1:2),'(A2)')hour_stop - READ(Real_Clock(2)(3:4),'(A2)')min_stop - READ(Real_Clock(2)(5:6),'(A2)')sec_stop C C how many seconds are needed for the simulation ?? C - seconds_stop_total=Date_Time(7)+(Date_Time(6)*60)+ (Date_Time(5) - & *3600)+(days_stop_total-1)*86400 - + CALL TimeStamp(day_stop,month_stop,year_stop, hour_stop,min_stop + & ,sec_stop,seconds_stop_total) WRITE(21,*) WRITE(21,10051)day_stop,month_stop,year_stop, hour_stop,min_stop & ,sec_stop + WRITE(*,10051)day_stop,month_stop,year_stop, hour_stop,min_stop + & ,sec_stop 10051 FORMAT(1x,' TrimSp simulation ended at: ',A2,'.',A4,1x,A4, 1x,A2 & ,':',A2,':',A2) WRITE(21,*) @@ -4510,18 +4400,69 @@ C RETURN END -* -* $Id: ranlux.F,v 1.2 1997/09/22 13:45:47 mclareni Exp $ -* -* $Log: ranlux.F,v $ -* Revision 1.2 1997/09/22 13:45:47 mclareni -* Correct error in initializing RANLUX by using RLUXIN with the output of -* RLUXUT from a previous run. -* -* Revision 1.1.1.1 1996/04/01 15:02:55 mclareni -* Mathlib gen -* -* + SUBROUTINE TimeStamp(day,month,year,hour,min,sec,seconds_total) + IMPLICIT NONE + INTEGER Date_Time(8) + INTEGER*4 days_total + INTEGER*4 seconds_total + CHARACTER Real_Clock(3)*12 + CHARACTER month*4,day*2 + CHARACTER year*4,hour*2 + CHARACTER min*2,sec*2 + + CALL DATE_AND_TIME(Real_Clock(1),Real_Clock(2),Real_Clock(3), + & Date_Time) + + IF(Date_Time(2).EQ.1) THEN + month='Jan.' + days_total=Date_Time(3) + ELSEIF(Date_Time(2).EQ.2) THEN + month='Feb.' + days_total=31+Date_Time(3) + ELSEIF(Date_Time(2).EQ.3) THEN + month='Mar.' + days_total=31+28+Date_Time(3) + ELSEIF(Date_Time(2).EQ.4) THEN + month='Apr.' + days_total=31+28+31+Date_Time(3) + ELSEIF(Date_Time(2).EQ.5) THEN + month='May ' + days_total=31+28+31+30+Date_Time(3) + ELSEIF(Date_Time(2).EQ.6) THEN + month='Jun.' + days_total=31+28+31+30+31+Date_Time(3) + ELSEIF(Date_Time(2).EQ.7) THEN + month='Jul.' + days_total=31+28+31+30+31+30+Date_Time(3) + ELSEIF(Date_Time(2).EQ.8) THEN + month='Aug.' + days_total=31+28+31+30+31+30+31+Date_Time(3) + ELSEIF(Date_Time(2).EQ.9) THEN + month='Sep.' + days_total=31+28+31+30+31+30+31+31+Date_Time(3) + ELSEIF(Date_Time(2).EQ.10) THEN + month='Oct.' + days_total=31+28+31+30+31+30+31+31+30+Date_Time(3) + ELSEIF(Date_Time(2).EQ.11) THEN + month='Nov.' + days_total=31+28+31+30+31+30+31+31+30+31+Date_Time(3) + ELSE + month='Dec.' + days_total=31+28+31+30+31+30+31+31+30+31+30+Date_Time(3) + ENDIF +C in seconds from beginning of year + seconds_total=Date_Time(7)+(Date_Time(6)*60)+(Date_Time(5) *3600) + & +(days_total-1)*86400 + + READ(Real_Clock(1)(1:4),'(A4)')year + READ(Real_Clock(1)(7:8),'(A2)')day + READ(Real_Clock(2)(1:2),'(A2)')hour + READ(Real_Clock(2)(3:4),'(A2)')min + READ(Real_Clock(2)(5:6),'(A2)')sec + RETURN + END + + SUBROUTINE RANLUX(RVEC,LENV) C Subtract-and-borrow random number generator proposed by C Marsaglia and Zaman, implemented by F. James with the name @@ -4592,15 +4533,12 @@ C Default Initialization by Multiplicative Congruential NOTYET = .FALSE. JSEED = JSDFLT INSEED = JSEED - WRITE(6,'(A,I12)') ' RANLUX DEFAULT INITIALIZATION: ',JSEED LUXLEV = LXDFLT NSKIP = NDSKIP(LUXLEV) LP = NSKIP + 24 IN24 = 0 KOUNT = 0 MKOUNT = 0 - WRITE(6,'(A,I2,A,I4)') ' RANLUX DEFAULT LUXURY LEVEL = ', - + LUXLEV,' p =',LP TWOM24 = 1. DO 25 I= 1, 24 TWOM24 = TWOM24 * 0.5