From f9ccf75386700f028bc74bd70c4ac2b2dec80260 Mon Sep 17 00:00:00 2001 From: Michiel de Bode Date: Tue, 26 May 2026 14:32:59 +0200 Subject: [PATCH 01/16] Update old style like .eq. to newer version like == --- src/lib/libcocktaildcc.f90 | 42 ++--- src/lib/libdcc.f90 | 36 ++-- src/lib/libendf.f90 | 362 ++++++++++++++++++------------------- src/lib/libinterval.f90 | 36 ++-- src/lib/libpinpoint.f90 | 106 +++++------ src/lib/libutil.f90 | 44 ++--- src/lib/libxmath.f90 | 12 +- src/mature_nuclides.f90 | 30 +-- src/nuclide_decay.f90 | 20 +- src/source_term_dose.f90 | 4 +- 10 files changed, 344 insertions(+), 348 deletions(-) diff --git a/src/lib/libcocktaildcc.f90 b/src/lib/libcocktaildcc.f90 index b43f0ad..e1b7bbd 100644 --- a/src/lib/libcocktaildcc.f90 +++ b/src/lib/libcocktaildcc.f90 @@ -195,58 +195,58 @@ SUBROUTINE InitLibCocktailDCC() WRITE(*,'(A)') 'Cannot find list of source term files "'//TRIM(FName)//'"' ENDIF - IF (DebugLevel.GT.0) WRITE(*,'(A)') 'Reading list of source terms from file '//TRIM(FName) + IF (DebugLevel > 0) WRITE(*,'(A)') 'Reading list of source terms from file '//TRIM(FName) OPEN(ScrotchFile,FILE=FName,FORM='FORMATTED',ACTION='READ') ! ! Skip header ! READ(ScrotchFile,'(A)') ALine - DO WHILE (ALine(1:1).EQ.'!') + DO WHILE (ALine(1:1) == '!') READ(ScrotchFile,'(A)') ALine ENDDO ! skip header ! ! Read source term names and check lookup tables. Add new lookup tables where necessary. ! NSourceTerms = 0 - DO WHILE (NSourceTerms.LT.MaxNSourceTerms) + DO WHILE (NSourceTerms < MaxNSourceTerms) ! ! Read source file name ! READ(Aline,'(A)',END=10) SourceFileName NSourceTerms = NSourceTerms + 1 - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,I0,A)') 'Source term ',NSourceTerms,' is '//TRIM(SourceFileName) - IF (NSourceTerms.EQ.MaxNSourceTerms) WRITE(*,'(A,I0,A)') 'I Reached the maximum number of sources: ',& + IF (NSourceTerms == MaxNSourceTerms) WRITE(*,'(A,I0,A)') 'I Reached the maximum number of sources: ',& & MaxNSourceTerms,'! Subsequent sources will not be read!' ENDIF ! ! Check if name suggests format .RIVMSource ! TheIndex = INDEX(SourceFileName,'.RIVMSource') - IF (TheIndex.EQ.0) THEN + IF (TheIndex == 0) THEN WRITE(*,'(A)') 'Source term "'//TRIM(SourceFileName)//'" is not of type .RIVMSource! Exiting!!' CALL EXIT() ELSE - IF (DebugLevel.GT.1) WRITE(*,'(A,I0)') 'Extension .RIVMSource starts at position ',TheIndex + IF (DebugLevel > 1) WRITE(*,'(A,I0)') 'Extension .RIVMSource starts at position ',TheIndex ENDIF SourceTermName(NSourceTerms) = SourceFileName(1:(TheIndex-1)) - IF (DebugLevel.GT.1) WRITE(*,'(A)') 'Name of source term is "'//TRIM(SourceTermName(NSourceTerms))//'"' - DO WHILE (INDEX(SourceTermName(NSourceTerms),'/').GT.0) + IF (DebugLevel > 1) WRITE(*,'(A)') 'Name of source term is "'//TRIM(SourceTermName(NSourceTerms))//'"' + DO WHILE (INDEX(SourceTermName(NSourceTerms),'/') > 0) SourceTermName(NSourceTerms) = SourceTermName(NSourceTerms) & & ((INDEX(SourceTermName(NSourceTerms),'/')+1):LEN_TRIM(SourceTermName(NSourceTerms))) - IF (DebugLevel.GT.1) WRITE(*,'(A)') 'Name of source term is "'//TRIM(SourceTermName(NSourceTerms))//'"' + IF (DebugLevel > 1) WRITE(*,'(A)') 'Name of source term is "'//TRIM(SourceTermName(NSourceTerms))//'"' ENDDO - IF (DebugLevel.GT.1) WRITE(*,'(A)') 'Name of source term is "'//TRIM(SourceTermName(NSourceTerms))//'"' + IF (DebugLevel > 1) WRITE(*,'(A)') 'Name of source term is "'//TRIM(SourceTermName(NSourceTerms))//'"' ! ! Check existence of lookup tables. If not available, add new lookup tables. ! CheckLookupFileName = SourceFileName(1:(TheIndex-1))//'_PinpointAirDoseRates_withprogeny.txt' IF (.NOT.FileExists(CheckLookupFileName)) THEN - IF (DebugLevel.GT.0) WRITE(*,'(A)') 'Cannot find associated lookup tables. Adding new tables...' + IF (DebugLevel > 0) WRITE(*,'(A)') 'Cannot find associated lookup tables. Adding new tables...' Commando = 'runlog??.txt' WRITE(Commando(7:8),'(I2.2)') NSourceTerms @@ -259,14 +259,14 @@ SUBROUTINE InitLibCocktailDCC() Commando = TRIM(UtilityName)//' '//TRIM(SourceFileName)//' yes 0 0 > ' & & // TransitionMatrixPath() // '/' // TRIM(Commando) Error = SYSTEM(Commando) - IF (Error.EQ.0) THEN + IF (Error == 0) THEN WRITE(*,'(A)') 'Execution of external call "'//TRIM(Commando)//'" went well!' ELSE WRITE(*,'(A)') 'Execution of external call "'//TRIM(Commando)//'" went wrong! Exiting' CALL EXIT() ENDIF ELSE - IF (DebugLevel.GT.0) WRITE(*,'(A)') 'Found associated lookup tables!' + IF (DebugLevel > 0) WRITE(*,'(A)') 'Found associated lookup tables!' ENDIF ! ! Read lookup tables for this source term @@ -389,7 +389,7 @@ SUBROUTINE InitializeCocktailDCC(SourceFileName,iSourceTerm) ! DO iPinpoint = 0,CocktailDCC(iSourceTerm,iPathway,iRegularDCC)%IntervalSpecs%N READ(ScratchFile,*) MyPinpoint,Dum,CocktailDCC(iSourceTerm,iPathway,iRegularDCC)%Values(iPinpoint) - IF (DebugLevel.GT.0) WRITE(*,'(A,I3,A,I3)') 'Pinpoint=',iPinpoint,', MyPinpoint=',MyPinpoint + IF (DebugLevel > 0) WRITE(*,'(A,I3,A,I3)') 'Pinpoint=',iPinpoint,', MyPinpoint=',MyPinpoint ENDDO ! loop over pinpoints ! ! Close file @@ -425,7 +425,7 @@ FUNCTION GetCocktailDCC(x,iSourceTerm,iPathway,iType) IF (.NOT.LibCocktailDCCInitialized) CALL InitLibCocktailDCC() - IF ((iSourceTerm.LT.1).OR.(iSourceTerm.GT.NSourceTerms)) THEN + IF ((iSourceTerm < 1).OR.(iSourceTerm > NSourceTerms)) THEN WRITE(*,'(A,I0,A)') 'Invalid source term index: ',iSourceTerm,'! Exiting!!' CALL EXIT() ENDIF ! @@ -496,7 +496,7 @@ SUBROUTINE InitializeCocktail(SourceFileName,iSourceTerm) DO iPinpoint = 0,PinpointN READ(ScratchFile,*) MyPinpoint,Dum,& & (LookupCocktail(iSourceTerm,iNuclide)%Values(iPinpoint),iNuclide=1,NContributingNuclides(iSourceTerm)) - IF (DebugLevel.GT.0) WRITE(*,'(A,I3,A,I3)') 'Pinpoint=',iPinpoint,', MyPinpoint=',MyPinpoint + IF (DebugLevel > 0) WRITE(*,'(A,I3,A,I3)') 'Pinpoint=',iPinpoint,', MyPinpoint=',MyPinpoint ENDDO ! loop over pinpoints ! ! Close file @@ -525,7 +525,7 @@ FUNCTION GetCocktailNuclide(x,iSourceTerm,MyName) IF (.NOT.LibCocktailDCCInitialized) CALL InitLibCocktailDCC() - IF ((iSourceTerm.LT.1).OR.(iSourceTerm.GT.NSourceTerms)) THEN + IF ((iSourceTerm < 1).OR.(iSourceTerm > NSourceTerms)) THEN WRITE(*,'(A,I0,A)') 'Invalid source term index: ',iSourceTerm,'! Exiting!!' CALL EXIT() ENDIF @@ -540,14 +540,14 @@ FUNCTION GetCocktailNuclide(x,iSourceTerm,MyName) TheNuclide = 0 iNuclide = 0 Ready = .FALSE. - DO WHILE((.NOT.Ready).AND.(iNuclide.LT.MaxNuclides)) + DO WHILE((.NOT.Ready).AND.(iNuclide < MaxNuclides)) iNuclide = iNuclide + 1 - IF (TRIM(UpName).EQ.TRIM(MyNuclideName(iSourceTerm,iNuclide))) THEN + IF (TRIM(UpName) == TRIM(MyNuclideName(iSourceTerm,iNuclide))) THEN TheNuclide = iNuclide ENDIF ENDDO ! loop over nuclides - IF (TheNuclide.EQ.0) THEN + IF (TheNuclide == 0) THEN Dum = 0._Float ELSE Dum = ExponentialIntervalInterpolate(x,LookupCocktail(iSourceTerm,TheNuclide),InterpolationWay,Error) diff --git a/src/lib/libdcc.f90 b/src/lib/libdcc.f90 index f2ae469..685f874 100644 --- a/src/lib/libdcc.f90 +++ b/src/lib/libdcc.f90 @@ -187,7 +187,7 @@ SUBROUTINE InitLibDCC(UseICRP) ! tMin = 10._Float ! [s] - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A)') 'Set shortest halflife admitted to the numerical scheme for solving the Bateman equations.' WRITE(*,'(A)') 'Shorter ones are skipped: the grandmother is directly transformed into the grand-daughter.' WRITE(*,'(A)') 'The missing decay steps are added afterwards.' @@ -219,7 +219,7 @@ SUBROUTINE ReadTissueDCCs() DO iImmersion = InAir,InWater DO iGender = Male,Female FName = 'Nuclide-specific_EquivalentDose_'//TRIM(GenderName(iGender))//'.txt' - IF (iImmersion.EQ.InAir) THEN + IF (iImmersion == InAir) THEN FName = 'Air_'//TRIM(FName) FName = TRIM(DCCAirSubmersionPath)//TRIM(FName) ELSE @@ -233,10 +233,10 @@ SUBROUTINE ReadTissueDCCs() NDashLinesFound = 0 iLine = 0 - DO WHILE (NDashLinesFound.LT.2) + DO WHILE (NDashLinesFound < 2) READ(ScratchFile,'(A)') ALine iLine = iLine + 1 - IF (ALine(1:1).EQ.'-') NDashLinesFound = NDashLinesFound + 1 + IF (ALine(1:1) == '-') NDashLinesFound = NDashLinesFound + 1 ENDDO ! ! Read data for all nuclides @@ -248,16 +248,16 @@ SUBROUTINE ReadTissueDCCs() READ(ScratchFile,'(A)',END=10) ALine iLine = iLine + 1 - IsDashLine = (INDEX(ALine,'-----').GT.0) + IsDashLine = (INDEX(ALine,'-----') > 0) IF (.NOT.IsDashLine) THEN ! ! Get nuclide and check name ! - IF (iTissue.EQ.1) THEN + IF (iTissue == 1) THEN MyNuclideName = ALine(1:7) jNuclide = GetNuclideNumber(MyNuclideName) - IF (jNuclide.EQ.0) THEN + IF (jNuclide == 0) THEN WRITE(*,'(A,I0,A,A)') 'At line ',iLine,' in file '//TRIM(FName),& & ' : found nuclide '//MyNuclideName//', but I cannot give it a number... Exiting!!' CALL EXIT() @@ -267,7 +267,7 @@ SUBROUTINE ReadTissueDCCs() ! Get and check tissue name ! MyTissueName = ALine(9:18) - IF (MyTissueName.NE.TissueName(iTissue)) THEN + IF (MyTissueName /= TissueName(iTissue)) THEN WRITE(*,'(A,I0,A)') 'At line ',iLine,& & ' : expected tissue '//TissueName(iTissue)//', but found '//MyTissueName//'! Exiting!!' CALL EXIT() @@ -306,7 +306,7 @@ SUBROUTINE ReadDCCEffectiveDose() DO iImmersion = InAir,InWater FName = 'Nuclide-specific_EffectiveDose.txt' - IF (iImmersion.EQ.InAir) THEN + IF (iImmersion == InAir) THEN FName = 'Air_'//TRIM(FName) FName = TRIM(DCCAirSubmersionPath)//TRIM(FName) ELSE @@ -321,10 +321,10 @@ SUBROUTINE ReadDCCEffectiveDose() NDashLinesFound = 0 iLine = 0 - DO WHILE (NDashLinesFound.LT.2) + DO WHILE (NDashLinesFound < 2) READ(ScratchFile,'(A)') ALine iLine = iLine + 1 - IF (ALine(1:1).EQ.'-') NDashLinesFound = NDashLinesFound + 1 + IF (ALine(1:1) == '-') NDashLinesFound = NDashLinesFound + 1 ENDDO ! ! Read data for all nuclides @@ -333,7 +333,7 @@ SUBROUTINE ReadDCCEffectiveDose() READ(ScratchFile,'(A)',END=10) ALine iLine = iLine + 1 - IsDashLine = (INDEX(ALine,'-----').GT.0) + IsDashLine = (INDEX(ALine,'-----') > 0) IF (.NOT.IsDashLine) THEN ! @@ -341,7 +341,7 @@ SUBROUTINE ReadDCCEffectiveDose() ! MyNuclideName = ALine(1:7) jNuclide = GetNuclideNumber(MyNuclideName) - IF (jNuclide.EQ.0) THEN + IF (jNuclide == 0) THEN WRITE(*,'(A,I0,A,A)') 'At line ',iLine,' in file '//TRIM(FName),& & ' : found nuclide '//MyNuclideName//', but I cannot give it a number... Exiting!!' CALL EXIT() @@ -349,7 +349,7 @@ SUBROUTINE ReadDCCEffectiveDose() ! ! Read values ! - IF (iImmersion.EQ.InAir) THEN + IF (iImmersion == InAir) THEN READ(ALine(18:DefaultLength),*) (DCCEffectiveDose(iImmersion,iAge)%x(jNuclide),iAge=1,NDCCAges),& & DCCEquivalentDoseInAir%x(jNuclide),DCCKermaRateInAir%x(jNuclide) ELSE @@ -393,7 +393,7 @@ SUBROUTINE ReadGroundDCCs() READ(ScratchFile,'(A)',END=10) ALine iLine = iLine + 1 - IsDashLine = (INDEX(ALine,'-----').GT.0) + IsDashLine = (INDEX(ALine,'-----') > 0) IF (.NOT.IsDashLine) THEN ! @@ -401,7 +401,7 @@ SUBROUTINE ReadGroundDCCs() ! MyNuclideName = ALine(1:7) jNuclide = GetNuclideNumber(MyNuclideName) - IF (jNuclide.EQ.0) THEN + IF (jNuclide == 0) THEN WRITE(*,'(A,I0,A,A)') 'At line ',iLine,' in file '//TRIM(FName),& & ' : found nuclide '//MyNuclideName//', but I cannot give it a number... Exiting!!' CALL EXIT() @@ -456,7 +456,7 @@ SUBROUTINE ReadInhalationDCCs() ! READ(ALine,*) MyNuclideName iNuclide = GetNuclideNumber(MyNuclideName) - IF (iNuclide.EQ.0) THEN + IF (iNuclide == 0) THEN WRITE(*,'(A,I0,A,A)') 'At line ',iLine,' in file '//TRIM(FName),& & ' : found nuclide '//MyNuclideName//', but I cannot give it a number... Exiting!!' CALL EXIT() @@ -498,7 +498,7 @@ SUBROUTINE ReadThyroidInhalationDCCs() ! READ(ALine,*) MyNuclideName iNuclide = GetNuclideNumber(MyNuclideName) - IF (iNuclide.EQ.0) THEN + IF (iNuclide == 0) THEN WRITE(*,'(A,I0,A,A)') 'At line ',iLine,' in file '//TRIM(FName),& & ' : found nuclide '//MyNuclideName//', but I cannot give it a number... Skipping nuclide!!' ELSE diff --git a/src/lib/libendf.f90 b/src/lib/libendf.f90 index 962802a..cd10c67 100644 --- a/src/lib/libendf.f90 +++ b/src/lib/libendf.f90 @@ -243,10 +243,10 @@ INTEGER FUNCTION GetAtomNumber(Symbol) DumSymbol = TRIM(Symbol) CALL Capitalize(DumSymbol) TheIndex = INDEX(DumSymbol,'-') - IF (TheIndex.GT.0) DumSymbol = DumSymbol(1:(TheIndex-1)) + IF (TheIndex > 0) DumSymbol = DumSymbol(1:(TheIndex-1)) DumInt = 0 DO iAtom = 1,NAtoms - IF (TRIM(DumSymbol).EQ.TRIM(AtomSpecs(iAtom)%Symbol)) DumInt = iAtom + IF (TRIM(DumSymbol) == TRIM(AtomSpecs(iAtom)%Symbol)) DumInt = iAtom ENDDO GetAtomNumber = DumInt END FUNCTION GetAtomNumber @@ -315,8 +315,8 @@ SUBROUTINE ReadICRPNuclides(InName) & POSITION='REWIND') READ(ScratchFile,*) ! Skip header - IF(DebugLevel.GT.1) WRITE(*,*) - IF(DebugLevel.GT.1) WRITE(*,'(A)') 'First pass: the nuclides in the order as in the file:' + IF(DebugLevel > 1) WRITE(*,*) + IF(DebugLevel > 1) WRITE(*,'(A)') 'First pass: the nuclides in the order as in the file:' iNuclide = 0 DO READ(ScratchFile,'(A7)',END=20) DumStr7 @@ -324,7 +324,7 @@ SUBROUTINE ReadICRPNuclides(InName) iNuclide = iNuclide + 1 NuclideName(iNuclide) = TRIM(DumStr7) AtomNumber(iNuclide) = GetAtomNumber(NuclideName(iNuclide)) - IF(DebugLevel.GT.1) WRITE(*,'(I4,1X,A7,5X,I3,1X,A20)') iNuclide,NuclideName(iNuclide),& + IF(DebugLevel > 1) WRITE(*,'(I4,1X,A7,5X,I3,1X,A20)') iNuclide,NuclideName(iNuclide),& & AtomNumber(iNuclide),AtomSpecs(AtomNumber(iNuclide))%Name ! ! Initialize nuclide @@ -335,29 +335,29 @@ SUBROUTINE ReadICRPNuclides(InName) 20 CONTINUE ! ready counting nuclides NNuclides = iNuclide ! The number of nuclides actually found in the file - IF(DebugLevel.GT.1) WRITE(*,*) + IF(DebugLevel > 1) WRITE(*,*) ! ! Sort the nuclides by atom number in stead of alphabetically ! - IF(DebugLevel.GT.1) WRITE(*,'(A)') 'Second pass: sorting the nuclides:' + IF(DebugLevel > 1) WRITE(*,'(A)') 'Second pass: sorting the nuclides:' Available = .TRUE. SortedIndex = 0 i = 0 DO iAtom=1,NAtoms DO iNuclide = 1,NNuclides - IF ((AtomNumber(iNuclide).EQ.iAtom).AND.(Available(iNuclide))) THEN + IF ((AtomNumber(iNuclide) == iAtom).AND.(Available(iNuclide))) THEN i = i + 1 SortedIndex(iNuclide) = i Available(iNuclide) = .FALSE. - IF(DebugLevel.GT.1) WRITE(*,'(I4,1X,I3,1X,A20)') i,iAtom,TRIM(NuclideName(iNuclide)) + IF(DebugLevel > 1) WRITE(*,'(I4,1X,I3,1X,A20)') i,iAtom,TRIM(NuclideName(iNuclide)) ENDIF ENDDO ENDDO - IF(DebugLevel.GT.1) WRITE(*,*) + IF(DebugLevel > 1) WRITE(*,*) ! ! Read the specs ! - IF(DebugLevel.GT.1) WRITE(*,'(A)') 'Third pass: reading the specs:' + IF(DebugLevel > 1) WRITE(*,'(A)') 'Third pass: reading the specs:' REWIND(ScratchFile) READ(ScratchFile,*) ! Skip header @@ -365,9 +365,9 @@ SUBROUTINE ReadICRPNuclides(InName) iNuclide = SortedIndex(jNuclide) READ(ScratchFile,10,END=20) ALine 10 FORMAT(A) - IF (DebugLevel.GT.1) WRITE(*,70) jNuclide,iNuclide + IF (DebugLevel > 1) WRITE(*,70) jNuclide,iNuclide 70 FORMAT('Line: ',I4,': interpreting specs for sorted nuclide ',I4) - IF (DebugLevel.GT.2) WRITE(*,60) TRIM(ALine) + IF (DebugLevel > 2) WRITE(*,60) TRIM(ALine) 60 FORMAT('Specs from database are: "',A,'"') ! ! Get the nuclide name @@ -383,33 +383,33 @@ SUBROUTINE ReadICRPNuclides(InName) ! ! Calibrate halftime ! - IF (TRIM(Units).EQ.'y') THEN + IF (TRIM(Units) == 'y') THEN C = 3600._Float*24._Float*365.25_Float - IF (DebugLevel.GT.1) WRITE(*,'(A,EN20.5)') & + IF (DebugLevel > 1) WRITE(*,'(A,EN20.5)') & & 'Half time is given in year --> conversion to seconds with factor ',C - ELSE IF (TRIM(Units).EQ.'d') THEN + ELSE IF (TRIM(Units) == 'd') THEN C = 3600._Float*24._Float - IF (DebugLevel.GT.1) WRITE(*,'(A,EN20.5)') & + IF (DebugLevel > 1) WRITE(*,'(A,EN20.5)') & & 'Half time is given in day --> conversion to seconds with factor ',C - ELSE IF (TRIM(Units).EQ.'h') THEN + ELSE IF (TRIM(Units) == 'h') THEN C = 3600._Float - IF (DebugLevel.GT.1) WRITE(*,'(A,EN20.5)') & + IF (DebugLevel > 1) WRITE(*,'(A,EN20.5)') & & 'Half time is given in hour --> conversion to seconds with factor ',C - ELSE IF (TRIM(Units).EQ.'m') THEN + ELSE IF (TRIM(Units) == 'm') THEN C = 60._Float - IF (DebugLevel.GT.1) WRITE(*,'(A,EN20.5)') & + IF (DebugLevel > 1) WRITE(*,'(A,EN20.5)') & & 'Half time is given in minute --> conversion to seconds with factor ',C - ELSE IF (TRIM(Units).EQ.'s') THEN + ELSE IF (TRIM(Units) == 's') THEN C = 1._Float - IF (DebugLevel.GT.1) WRITE(*,'(A,EN20.5)') & + IF (DebugLevel > 1) WRITE(*,'(A,EN20.5)') & & 'Half time is given in second --> conversion to seconds with factor ',C - ELSE IF (TRIM(Units).EQ.'ms') THEN + ELSE IF (TRIM(Units) == 'ms') THEN C = 1.E-3_Float - IF (DebugLevel.GT.1) WRITE(*,'(A,EN20.5)') & + IF (DebugLevel > 1) WRITE(*,'(A,EN20.5)') & & 'Half time is given in millisecond --> conversion to seconds with factor ',C - ELSE IF (TRIM(Units).EQ.'us') THEN + ELSE IF (TRIM(Units) == 'us') THEN C = 1.E-6_Float - IF (DebugLevel.GT.1) WRITE(*,'(A,EN20.5)') & + IF (DebugLevel > 1) WRITE(*,'(A,EN20.5)') & & 'Half time is given in microsecond --> conversion to seconds with factor ',C ELSE WRITE(*,'(A)') 'Strange unit for halftime: '//Units//' ! --> Exiting!' @@ -420,8 +420,8 @@ SUBROUTINE ReadICRPNuclides(InName) NuclideSpecs(iNuclide)%AtomNumber = GetAtomNumber(NuclideSpecs(iNuclide)%NuclideName) NuclideSpecs(iNuclide)%AtomName = AtomSpecs(NuclideSpecs(iNuclide)%AtomNumber)%Name - IF (DebugLevel.GT.1) THEN - IF (NuclideSpecs(iNuclide)%AtomNumber.GT.0) THEN + IF (DebugLevel > 1) THEN + IF (NuclideSpecs(iNuclide)%AtomNumber > 0) THEN WRITE(*,'(A,I3,A,A)') 'Recognized atom ',NuclideSpecs(iNuclide)%AtomNumber,' : ',& & TRIM(NuclideSpecs(iNuclide)%AtomName) ELSE @@ -434,17 +434,17 @@ SUBROUTINE ReadICRPNuclides(InName) ! Extract daughters ! DO iDaughter=1,4 - IF (DebugLevel.GT.2) WRITE(*,'(I1,5X,A)') iDaughter,'"'//TRIM(YieldStr(iDaughter))//'"' - IF (LEN_TRIM(NuclideSpecs(iNuclide)%DaughterName(iDaughter)).GT.0) & + IF (DebugLevel > 2) WRITE(*,'(I1,5X,A)') iDaughter,'"'//TRIM(YieldStr(iDaughter))//'"' + IF (LEN_TRIM(NuclideSpecs(iNuclide)%DaughterName(iDaughter)) > 0) & & READ(YieldStr(iDaughter),'(E11.0)') NuclideSpecs(iNuclide)%DaughterFraction(iDaughter) ENDDO - IF (DebugLevel.GT.1) THEN + IF (DebugLevel > 1) THEN WRITE(*,'(A)') 'Nuclide: '//TRIM(NuclideSpecs(iNuclide)%NuclideName) WRITE(*,'(A,EN20.10,A)') 'Half time: ',NuclideSpecs(iNuclide)%HalfTime,' [s]' WRITE(*,'(A,A2)') 'Units of half time: ',Units DO iDaughter=1,4 - IF (LEN_TRIM(NuclideSpecs(iNuclide)%DaughterName(iDaughter)).GT.0) THEN + IF (LEN_TRIM(NuclideSpecs(iNuclide)%DaughterName(iDaughter)) > 0) THEN WRITE(*,'(A,I1,A,A7,A,EN20.5)') 'Daughter(',iDaughter,'): ',& & TRIM(NuclideSpecs(iNuclide)%DaughterName(iDaughter)),& & ' Yield: ',NuclideSpecs(iNuclide)%DaughterFraction(iDaughter) @@ -453,13 +453,13 @@ SUBROUTINE ReadICRPNuclides(InName) WRITE(*,*) ENDIF - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A10,EN20.10)') TRIM(NuclideSpecs(iNuclide)%NuclideName),NuclideSpecs(iNuclide)%HalfTime ENDIF ENDDO ! loop over ICRP-file - IF(DebugLevel.GT.1) WRITE(*,*) + IF(DebugLevel > 1) WRITE(*,*) CLOSE(ScratchFile) END SUBROUTINE ReadICRPNuclides @@ -483,14 +483,14 @@ SUBROUTINE MatchDaughters DO iDaughter = 1,MaxNDaughters NuclideSpecs(iNuclide)%Daughter(iDaughter) = & & GetNuclideNumber(NuclideSpecs(iNuclide)%DaughterName(iDaughter)) - IF (NuclideSpecs(iNuclide)%Daughter(iDaughter).NE.0) THEN + IF (NuclideSpecs(iNuclide)%Daughter(iDaughter) /= 0) THEN IsRelated(NuclideSpecs(iNuclide)%Daughter(iDaughter),iNuclide) = .TRUE. ENDIF ENDDO ! ! Print results ! - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,40) iNuclide,& & '"'//TRIM(NuclideSpecs(iNuclide)%NuclideName)//'"',& & NuclideSpecs(iNuclide)%AtomNumber,& @@ -517,7 +517,7 @@ SUBROUTINE ReadNuclideSpecs(InName) ! CHARACTER(*), INTENT(IN) :: InName ! - IF (NAtoms.EQ.0) CALL ReadAtoms('atoms.dat') + IF (NAtoms == 0) CALL ReadAtoms('atoms.dat') ! ! Read the datafile ! @@ -570,7 +570,7 @@ SUBROUTINE MassNuc2NucMass(MyName) ! ! Get the optional 'm' for meta-stable nuclides (case sensitive!!) ! - IsMetastable = (MyName(iCharacter:iCharacter).EQ.'m') ! This is case sensitive! Make sure you haven't converted to full uppercase yet!! + IsMetastable = (MyName(iCharacter:iCharacter) == 'm') ! This is case sensitive! Make sure you haven't converted to full uppercase yet!! IF (IsMetastable) iCharacter = iCharacter + 1 ! @@ -581,7 +581,7 @@ SUBROUTINE MassNuc2NucMass(MyName) DO WHILE (.NOT.Ready) NukeName = TRIM(NukeName)//MyName(iCharacter:iCharacter) iCharacter = iCharacter + 1 - Ready = (MyName(iCharacter:iCharacter).EQ.' ') + Ready = (MyName(iCharacter:iCharacter) == ' ') ENDDO ! not ready ! ! Synthesis of elements in order. E.g., Cs137m @@ -610,7 +610,7 @@ SUBROUTINE EnsureHyphen(MyName) IF (HasWrongFormat) CALL MassNuc2NucMass(MyName) - HasHyphen = (INDEX(MyName,'-').GT.0) + HasHyphen = (INDEX(MyName,'-') > 0) IF (.NOT.HasHyphen) THEN ! @@ -654,9 +654,9 @@ SUBROUTINE ReadAtoms(InName) DO WHILE (.NOT.Ready) READ(ScratchFile,'(A)',END=20) ALine iAtom = iAtom + 1 - IF (DebugLevel.GT.1) WRITE(*,70) iAtom + IF (DebugLevel > 1) WRITE(*,70) iAtom 70 FORMAT('Interpreting specs for Atom ',I3) - IF (DebugLevel.GT.1) WRITE(*,60) TRIM(ALine) + IF (DebugLevel > 1) WRITE(*,60) TRIM(ALine) 60 FORMAT('Specs from database are: "',A,'"') ! ! Get the atom specs @@ -672,19 +672,19 @@ SUBROUTINE ReadAtoms(InName) AtomSpecs(iAtom)%NuclideGroup = 0 - IF (LEN_TRIM(DumStr).NE.0) THEN + IF (LEN_TRIM(DumStr) /= 0) THEN DO iNuclideGroup = 0,NNuclideGroups - IF (TRIM(DumStr).EQ.TRIM(NuclideGroupName(iNuclideGroup))) & + IF (TRIM(DumStr) == TRIM(NuclideGroupName(iNuclideGroup))) & & AtomSpecs(iAtom)%NuclideGroup = iNuclideGroup ENDDO ENDIF - IF (DumInt.NE.iAtom) THEN + IF (DumInt /= iAtom) THEN WRITE(*,'(A)') 'Atom number does not match line number! Exiting!!' CALL EXIT() ENDIF - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,200) AtomSpecs(iAtom),NuclideGroupName(AtomSpecs(iAtom)%NuclideGroup) 200 FORMAT('Specs: "',A13,'"',1X,'"',A3,'"',1X,I2,1X,I2,1X,I2,1X,'"',A24,'"',1X,F12.8,1X,A) ENDIF @@ -720,7 +720,7 @@ SUBROUTINE InitLibENDF() DO READ(ScratchFile,'(A)',END=10) ALine - ValidLine = (ALine(1:1).NE.'-') + ValidLine = (ALine(1:1) /= '-') IF (ValidLine) THEN READ(ALine(7:9),*) MyAtomNumber AtomName(MyAtomNumber) = ALine(11:12) @@ -743,7 +743,7 @@ SUBROUTINE InitLibENDF() DO READ(ScratchFile,'(A)',END=20) ALine - ValidLine = (ALine(1:1).NE.'-') + ValidLine = (ALine(1:1) /= '-') IF (ValidLine) THEN NNuclides = NNuclides + 1 @@ -756,7 +756,7 @@ SUBROUTINE InitLibENDF() ! ! Interpret line ! - IF (DebugLevel.GT.1) THEN + IF (DebugLevel > 1) THEN WRITE(*,'(A,I4,A)') 'Line ',NNuclides,' = "'//TRIM(ALine)//'"' ENDIF @@ -765,13 +765,13 @@ SUBROUTINE InitLibENDF() READ(ALine(14:16),*) NuclideSpecs(NNuclides)%NHadrons - IF (ALine(17:17).EQ.' ') THEN + IF (ALine(17:17) == ' ') THEN NuclideSpecs(NNuclides)%MetaStableMode = 0 - ELSE IF (ALine(17:17).EQ.'M') THEN + ELSE IF (ALine(17:17) == 'M') THEN NuclideSpecs(NNuclides)%MetaStableMode = 1 - ELSE IF (ALine(17:17).EQ.'N') THEN + ELSE IF (ALine(17:17) == 'N') THEN NuclideSpecs(NNuclides)%MetaStableMode = 2 - ELSE IF (ALine(17:17).EQ.'O') THEN + ELSE IF (ALine(17:17) == 'O') THEN NuclideSpecs(NNuclides)%MetaStableMode = 3 ELSE WRITE(*,'(A,I0,A,I0,A,I0,A)') 'Unknown metastability mode "',NuclideSpecs(NNuclides)%MetaStableMode,& @@ -783,7 +783,7 @@ SUBROUTINE InitLibENDF() ! To allow the use of both datasets simultaneously, the ENDF nuclide is mapped on the ICRP-nuclide: ! The nuclide name gets an "m". All subsequent references in ENDF to Pm-137 are trapped and re-cast to Pm-137m. ! - IsException = ((NuclideSpecs(NNuclides)%AtomName.EQ.'Pm').AND.(NuclideSpecs(NNuclides)%NHadrons.EQ.137)) + IsException = ((NuclideSpecs(NNuclides)%AtomName == 'Pm').AND.(NuclideSpecs(NNuclides)%NHadrons == 137)) IF (IsException) NuclideSpecs(NNuclides)%MetaStableMode = 1 NuclideSpecs(NNuclides)%NDaughters = 0 @@ -794,7 +794,7 @@ SUBROUTINE InitLibENDF() NuclideSpecs(NNuclides)%NuclideName = TRIM(NuclideSpecs(NNuclides)%NuclideName)& & //MetastabilityName(NuclideSpecs(NNuclides)%MetaStableMode) - IF (DebugLevel.GT.0) WRITE(*,'(I4,1X,A)') NNuclides,TRIM(NuclideSpecs(NNuclides)%NuclideName) + IF (DebugLevel > 0) WRITE(*,'(I4,1X,A)') NNuclides,TRIM(NuclideSpecs(NNuclides)%NuclideName) ENDIF ! valid line ENDDO @@ -815,11 +815,11 @@ INTEGER FUNCTION GetNuclideNumber(NuclideName) DumInt = 0 - IF (LEN_TRIM(NuclideName).GT.0) THEN + IF (LEN_TRIM(NuclideName) > 0) THEN DumNuclideName = TRIM(NuclideName) CALL Capitalize(DumNuclideName) DO iNuclide = 1,NNuclides - IF (TRIM(DumNuclideName).EQ.TRIM(NuclideSpecs(iNuclide)%NuclideName)) DumInt = iNuclide + IF (TRIM(DumNuclideName) == TRIM(NuclideSpecs(iNuclide)%NuclideName)) DumInt = iNuclide ENDDO ENDIF ! length of input string <> 0 @@ -838,9 +838,9 @@ INTEGER FUNCTION AtomNMass2Nuclide(AtomNumber,NHadrons,MetastableMode) DumInt = 0 DO iNuclide = 1,NNuclides - IF ( (AtomNumber .EQ.NuclideSpecs(iNuclide)%AtomNumber)& - & .AND.(NHadrons .EQ.NuclideSpecs(iNuclide)%NHadrons)& - & .AND.(MetastableMode.EQ.NuclideSpecs(iNuclide)%MetastableMode)) DumInt = iNuclide + IF ( (AtomNumber == NuclideSpecs(iNuclide)%AtomNumber)& + & .AND.(NHadrons == NuclideSpecs(iNuclide)%NHadrons)& + & .AND.(MetastableMode == NuclideSpecs(iNuclide)%MetastableMode)) DumInt = iNuclide ENDDO AtomNMass2Nuclide = DumInt @@ -880,13 +880,13 @@ SUBROUTINE CheckRecordType(iNuclide,iLine,ALine) ! READ(ALine(67:75),'(I4,I2,I3)') MatNumber,MFNumber,MTNumber - IF ((MFNumber.EQ.1).AND.(MTNumber.EQ.451)) THEN + IF ((MFNumber == 1).AND.(MTNumber == 451)) THEN iRecordType(iLine) = iTextRecord - ELSE IF ((MFNumber.EQ.8).AND.(MTNumber.EQ.457)) THEN + ELSE IF ((MFNumber == 8).AND.(MTNumber == 457)) THEN iRecordType(iLine) = iDecayRecord ENDIF - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,I4,A29,3(1X,I4,1X,I2,1X,I3,4X,A))') 'Line ',iLine,& & ' has a record of type '//RecordName(iRecordType(iLine)),MatNumber,MFNumber,MTNumber,'"'//TRIM(ALine)//'"' ENDIF @@ -917,20 +917,20 @@ SUBROUTINE Line2Values(ALine,MySubString,MyFloat,MyInteger,SubStringIsInteger,Do DoingBullocks = .FALSE. DO iSubString = 1,6 - IF (DebugLevel.GT.2) WRITE(*,'(A,I0,A)') 'Substring ',iSubString,' = "'//MySubString(iSubString)//'"' + IF (DebugLevel > 2) WRITE(*,'(A,I0,A)') 'Substring ',iSubString,' = "'//MySubString(iSubString)//'"' ENDDO DO iSubString = 1,6 - IF (DebugLevel.GT.1) WRITE(*,'(A,I0,A)') 'Substring ',iSubString,' = "'//MySubString(iSubString)//'"' + IF (DebugLevel > 1) WRITE(*,'(A,I0,A)') 'Substring ',iSubString,' = "'//MySubString(iSubString)//'"' TheIndex = MAX(INDEX(MySubString(iSubString),'.'),& & INDEX(MySubString(iSubString),'+'),INDEX(MySubString(iSubString),'-')) - IF (TheIndex.GT.0) THEN + IF (TheIndex > 0) THEN SubStringIsInteger(iSubString) = .FALSE. ! ! Values can be with or without E in the exponential notation, and there can be spaces in the string: ! - IF ((INDEX(MySubString(iSubString),'E').NE.0)& - & .OR.((INDEX(MySubString(iSubString),'+').EQ.0).AND.(INDEX(MySubString(iSubString),'-').EQ.0)))THEN + IF ((INDEX(MySubString(iSubString),'E') /= 0)& + & .OR.((INDEX(MySubString(iSubString),'+') == 0).AND.(INDEX(MySubString(iSubString),'-') == 0)))THEN READ(MySubString(iSubString),*) MyFloat(iSubString) ELSE READ(MySubString(iSubString)(1:(TheIndex-1)),*) MyFloat(iSubString) @@ -943,11 +943,11 @@ SUBROUTINE Line2Values(ALine,MySubString,MyFloat,MyInteger,SubStringIsInteger,Do ! If this is an integer in disguise, make it an integer (a real one! ;-) ) ! RelativeDifference = 0._Float - IF (ABS(MyFloat(iSubString)).GT.0._Float) RelativeDifference = & + IF (ABS(MyFloat(iSubString)) > 0._Float) RelativeDifference = & & ABS(MyFloat(iSubString)-NINT(MyFloat(iSubString)))/ABS(MyFloat(iSubString)) - IF ((MyFloat(iSubString).LE.1.E6_Float)& - & .AND.(RelativeDifference.LT.1.E-10_Float)) THEN + IF ((MyFloat(iSubString) <= 1.E6_Float)& + & .AND.(RelativeDifference < 1.E-10_Float)) THEN SubStringIsInteger(iSubString) = .TRUE. MyInteger(iSubString) = NINT(MyFloat(iSubString)) ENDIF @@ -962,7 +962,7 @@ SUBROUTINE Line2Values(ALine,MySubString,MyFloat,MyInteger,SubStringIsInteger,Do ! ! Show substring ! - IF (DebugLevel.GT.1) THEN + IF (DebugLevel > 1) THEN IF (SubStringIsInteger(iSubString)) THEN WRITE(*,'(A,I0,A,I0)') 'Substring ',iSubString,' is an integer: ',MyInteger(iSubString) ELSE @@ -1000,57 +1000,57 @@ SUBROUTINE Parse1DataLine(iLine,iNuclide,ALine,iLineInChapter,ReadyReadingFile,T ReadyReadingFile = .FALSE. ThisLineHasDecay = .FALSE. - IF (DebugLevel.GT.1) WRITE(*,'(A,I0,A)') 'Line ',iLine,' : "'//TRIM(ALine)//'"' + IF (DebugLevel > 1) WRITE(*,'(A,I0,A)') 'Line ',iLine,' : "'//TRIM(ALine)//'"' ! ! Only interpret decay info ! - IF (iRecordType(iLine).EQ.iDecayRecord) THEN - IF (DebugLevel.GT.1) WRITE(*,'(A,I4,A)') 'Decay information record ',iLineInChapter,' = "'//TRIM(ALine)//'"' + IF (iRecordType(iLine) == iDecayRecord) THEN + IF (DebugLevel > 1) WRITE(*,'(A,I4,A)') 'Decay information record ',iLineInChapter,' = "'//TRIM(ALine)//'"' ! ! Read the 6 values and check if they are real/integer ! CALL Line2Values(ALine,MySubstring,MyFloat,MyInteger,SubStringIsInteger,DoingBullocks) ! Check this criterion!!!!! - ReadyReadingFile = SubStringIsInteger(1).AND.(MyInteger(1).EQ.0)& - & .AND.SubStringIsInteger(2).AND.(MyInteger(2).EQ.0)& + ReadyReadingFile = SubStringIsInteger(1).AND.(MyInteger(1) == 0)& + & .AND.SubStringIsInteger(2).AND.(MyInteger(2) == 0)& & .AND.SubStringIsInteger(3)& - & .AND.SubStringIsInteger(4).AND.(MyInteger(4).EQ.0)& + & .AND.SubStringIsInteger(4).AND.(MyInteger(4) == 0)& & .AND.SubStringIsInteger(5)& & .AND.SubStringIsInteger(6)& - & .AND.((iLineInChapter.EQ.2).OR.(iLineInChapter.GE.5)) + & .AND.((iLineInChapter == 2).OR.(iLineInChapter >= 5)) ReadyReadingFile = ReadyReadingFile.OR.& - & ((iLineInChapter.GE.5).AND.(iDecay.GE.NuclideSpecs(iNuclide)%NDecayModes)) + & ((iLineInChapter >= 5).AND.(iDecay >= NuclideSpecs(iNuclide)%NDecayModes)) IF (DoingBullocks) THEN - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,I0)') 'Encountering compliance problems in file for '& & //NuclideSpecs(iNuclide)%NuclideName//' at line ',iLine ENDIF ! debug ELSE IF (ReadyReadingFile) THEN - IF (DebugLevel.GT.1) THEN + IF (DebugLevel > 1) THEN WRITE(*,'(A,I0)') 'Ready reading file for '& & //NuclideSpecs(iNuclide)%NuclideName//' at line ',iLine ENDIF ! debug ELSE - IF (iLineInChapter.EQ.2) THEN + IF (iLineInChapter == 2) THEN NuclideSpecs(iNuclide)%HalfTime = MyFloat(1) ! Even in cases where you have value e.g. 1.000, this goes well - IF (DebugLevel.GT.1) WRITE(*,'(A,EN15.5,A)') 'Halflife = ',NuclideSpecs(iNuclide)%HalfTime,' s' - ELSE IF (iLineInChapter.EQ.4) THEN + IF (DebugLevel > 1) WRITE(*,'(A,EN15.5,A)') 'Halflife = ',NuclideSpecs(iNuclide)%HalfTime,' s' + ELSE IF (iLineInChapter == 4) THEN NuclideSpecs(iNuclide)%NDecayModes = MyInteger(6) - IF (DebugLevel.GT.1) WRITE(*,'(A,I0)') 'Number of decay modes: ',NuclideSpecs(iNuclide)%NDecayModes - ELSE IF (iLineInChapter.GE.5) THEN + IF (DebugLevel > 1) WRITE(*,'(A,I0)') 'Number of decay modes: ',NuclideSpecs(iNuclide)%NDecayModes + ELSE IF (iLineInChapter >= 5) THEN MyMetastableMode = MyInteger(2) MyFraction = MyFloat(5) ! ! If you have a non-trivial decay fraction, update nuclide database ! - IF ((MyFraction.GT.0._Float).AND.(MyFraction.LE.1._Float)) THEN - IF (DebugLevel.GT.1) WRITE(*,'(A,EN15.5)') 'Acceptable fraction = ',MyFraction + IF ((MyFraction > 0._Float).AND.(MyFraction <= 1._Float)) THEN + IF (DebugLevel > 1) WRITE(*,'(A,EN15.5)') 'Acceptable fraction = ',MyFraction iParticle = 1 MyAtomStep = 0 @@ -1059,32 +1059,32 @@ SUBROUTINE Parse1DataLine(iLine,iNuclide,ALine,iLineInChapter,ReadyReadingFile,T MyDecayModeLine = ' ' iCompoundDecay = NINT(1000000._Float*MyFloat(1)) - Ready = (iCompoundDecay.LT.1000000) + Ready = (iCompoundDecay < 1000000) DO WHILE (.NOT.Ready) MyDecayMode = iCompoundDecay/10**(7-iParticle) iCompoundDecay = iCompoundDecay - MyDecayMode*10**(7-iParticle) - Ready = (iCompoundDecay.EQ.0) + Ready = (iCompoundDecay == 0) - IF (iCompoundDecay.LT.0) THEN + IF (iCompoundDecay < 0) THEN WRITE(*,'(A,I0)') 'Faulty value for iCompoundDecay: ',iCompoundDecay CALL EXIT() ENDIF ! rubbish - IF (DebugLevel.GT.1) WRITE(*,'(A,A)') 'Found decay mode ',DecayModeName(MyDecayMode) + IF (DebugLevel > 1) WRITE(*,'(A,A)') 'Found decay mode ',DecayModeName(MyDecayMode) MyDecayModeLine = TRIM(MyDecayModeLine)//' + '//DecayModeName(MyDecayMode) - IF ( (MyDecayMode.GE.0)& - & .AND.(MyDecayMode.LE.7)) THEN + IF ( (MyDecayMode >= 0)& + & .AND.(MyDecayMode <= 7)) THEN IsValidDecay = .TRUE. MyAtomStep = MyAtomStep + AtomStep(MyDecayMode) MyMassStep = MyMassStep + MassStep(MyDecayMode) ELSE IsValidDecay = .FALSE. - IF (DebugLevel.GT.1) WRITE(*,'(A,A,A)') & + IF (DebugLevel > 1) WRITE(*,'(A,A,A)') & & 'Found disqualifying decay mode ',DecayModeName(MyDecayMode),', making this decay invalid!!' ENDIF ! valid decay mode @@ -1101,7 +1101,7 @@ SUBROUTINE Parse1DataLine(iLine,iNuclide,ALine,iLineInChapter,ReadyReadingFile,T iDecay = iDecay + 1 NuclideSpecs(iNuclide)%DecayFraction(iDecay) = MyFraction - IF (.NOT.(MyDecayMode.EQ.iDecayModeSpontaneousFission)) THEN + IF (.NOT.(MyDecayMode == iDecayModeSpontaneousFission)) THEN NuclideSpecs(iNuclide)%NDaughters = NuclideSpecs(iNuclide)%NDaughters + 1 iDaughter = NuclideSpecs(iNuclide)%NDaughters @@ -1114,7 +1114,7 @@ SUBROUTINE Parse1DataLine(iLine,iNuclide,ALine,iLineInChapter,ReadyReadingFile,T ! Trap Pm-137 and recast it to Pm-137m, which is the only isotope in ICRP-107 with this combination. ! To allow for the simultaneous use of ENDF with ICRP-107, Pm-137 is renamed Pm-137m ! - IsException = ((DaughterAtom.EQ.61).AND.(DaughterMass.EQ.137)) + IsException = ((DaughterAtom == 61).AND.(DaughterMass == 137)) IF (IsException) MyMetastableMode = 1 NuclideSpecs(iNuclide)%DaughterName(iDaughter) = & @@ -1127,7 +1127,7 @@ SUBROUTINE Parse1DataLine(iLine,iNuclide,ALine,iLineInChapter,ReadyReadingFile,T NuclideSpecs(iNuclide)%DaughterFraction(iDaughter) = MyFraction NuclideSpecs(iNuclide)%DecayName(iDaughter) = TRIM(MyDecayModeLine) - IF (DebugLevel.GT.0) WRITE(*,'(A,I4,A,A7,A,EN15.5,A,A,A7,A,F20.10,A)') & + IF (DebugLevel > 0) WRITE(*,'(A,I4,A,A7,A,EN15.5,A,A,A7,A,F20.10,A)') & & 'Nuclide ',iNuclide,': ',& & NuclideSpecs(iNuclide)%NuclideName,& & ' with halflife ',NuclideSpecs(iNuclide)%HalfTime,' s',& @@ -1136,7 +1136,7 @@ SUBROUTINE Parse1DataLine(iLine,iNuclide,ALine,iLineInChapter,ReadyReadingFile,T & ', decay: '//TRIM(NuclideSpecs(iNuclide)%DecayName(iDaughter)) ELSE - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,I4,A,A7,A,EN15.5,A,A,F20.10,A)') & & 'Nuclide ',iNuclide,': ',& & NuclideSpecs(iNuclide)%NuclideName,& @@ -1148,7 +1148,7 @@ SUBROUTINE Parse1DataLine(iLine,iNuclide,ALine,iLineInChapter,ReadyReadingFile,T ENDIF ! SF or other valid decay ENDIF ! valid decay mode ELSE - IF (DebugLevel.GT.1) WRITE(*,'(A,EN15.5)') 'Unacceptable fraction = ',MyFraction + IF (DebugLevel > 1) WRITE(*,'(A,EN15.5)') 'Unacceptable fraction = ',MyFraction ENDIF ! yield > 0 ENDIF ! line 2 or 5 and later in the decay chapter ENDIF ! not doing bullocks... @@ -1181,11 +1181,11 @@ SUBROUTINE ParseENDFFile(iNuclide) ! Trap Pm-137 and recast it to Pm-137m, which is the only isotope in ICRP-107 with this combination. ! To allow for the simultaneous use of ENDF with ICRP-107, Pm-137 is renamed Pm-137m ! - IsException = ((NuclideSpecs(iNuclide)%AtomNumber.EQ.61).AND.(NuclideSpecs(iNuclide)%NHadrons.EQ.137)) + IsException = ((NuclideSpecs(iNuclide)%AtomNumber == 61).AND.(NuclideSpecs(iNuclide)%NHadrons == 137)) - IF ((NuclideSpecs(iNuclide)%MetaStableMode.NE.0).AND..NOT.IsException) THEN + IF ((NuclideSpecs(iNuclide)%MetaStableMode /= 0).AND..NOT.IsException) THEN WRITE(MyTail(5:6),'(A1,I1)') 'm',NuclideSpecs(iNuclide)%MetaStableMode ENDIF FName = TRIM(FName)//TRIM(MyTail) @@ -1195,9 +1195,6 @@ SUBROUTINE ParseENDFFile(iNuclide) IF (IsException) WRITE(*,'(A)') 'To match ENDF with ICRP-107, instead of '& & //TRIM(NuclideSpecs(iNuclide)%NuclideName)& & //' I will read data from '//TRIM(FName) - ! IF (DebugLevel.GT.0) THEN - ! WRITE(*,'(A,I0,A)') 'Parsing file '//TRIM(FName)//' for nuclide ',iNuclide,'...' - ! ENDIF ! Debug IF (.NOT.FileExists(FName)) THEN WRITE(*,'(A,I0,A)') 'Cannot find file "'//TRIM(FName)//'" for nuclide ',& & iNuclide,': '//TRIM(NuclideSpecs(iNuclide)%NuclideName)//'! Exiting!!' @@ -1226,8 +1223,8 @@ SUBROUTINE ParseENDFFile(iNuclide) ! CALL CheckRecordType(iNuclide,iLine,ALine) - IF (iLine.GT.1) THEN - IsNewChapter = (iRecordType(iLine).NE.iRecordType(iLine-1)) + IF (iLine > 1) THEN + IsNewChapter = (iRecordType(iLine) /= iRecordType(iLine-1)) ENDIF IF (IsNewChapter) THEN @@ -1243,12 +1240,12 @@ SUBROUTINE ParseENDFFile(iNuclide) FoundMeaningfulDecay = FoundMeaningfulDecay .OR. ThisLineHasDecay IF (Ready.AND.(.NOT.FoundMeaningfulDecay)) THEN - IF (NuclideSpecs(iNuclide)%HalfTime.LT.1.E90_Float) THEN + IF (NuclideSpecs(iNuclide)%HalfTime < 1.E90_Float) THEN WRITE(*,'(A,I4,A,A,A,EN20.10,A)') 'Nuclide ',iNuclide,': ',NuclideSpecs(iNuclide)%NuclideName,& & ' has halflife ',NuclideSpecs(iNuclide)%HalfTime,& & ', but I found end of file before I encountered any relevant decay info...' ELSE - IF (DebugLevel.GT.0) WRITE(*,'(A,I4,A,A,A)') 'Nuclide ',iNuclide,': ',& + IF (DebugLevel > 0) WRITE(*,'(A,I4,A,A,A)') 'Nuclide ',iNuclide,': ',& & NuclideSpecs(iNuclide)%NuclideName,' is stable!' ENDIF ENDIF @@ -1308,7 +1305,7 @@ SUBROUTINE ParseSpontaneousFile(FName) READ(ScratchFile,'(A)',END=10) ALine iLine = iLine + 1 - IsSFLine = (ALine(72:75).EQ.'8454') + IsSFLine = (ALine(72:75) == '8454') IF (.NOT.IsSFLine) THEN IF (PrevLineIsSF) THEN @@ -1330,19 +1327,18 @@ SUBROUTINE ParseSpontaneousFile(FName) ! CALL Line2Values(ALine,MySubString,MyFloat,MyInteger,SubStringIsInteger,DoingBullocks) - IF (SFLine.EQ.1) THEN + IF (SFLine == 1) THEN iMother = Zap2Nuclide(MyInteger(1),MyInteger(2)) WRITE(*,'(A,I7,A,I4,A,A)') 'Head of chain for this list of spontaneous '& & //'fissions, starting at line ',iLine,' = nuclide ',& & iMother,': ',NuclideSpecs(iMother)%NuclideName - ELSE IF (SFLine.EQ.2) THEN + ELSE IF (SFLine == 2) THEN NExpectedFissionProducts = MyInteger(6) - ELSE IF (SFLine.GT.2) THEN + ELSE IF (SFLine > 2) THEN READ(ScratchFile,'(A)',END=10) ALine iLine = iLine + 1 - ! IF (DebugLevel.GT.2) WRITE(*,'(A,I6,A)') 'Line ',iLine,' : "'//TRIM(ALine)//'"' CALL Line2Values(ALine,MySubstring(7),MyFloat(7),MyInteger(7),SubStringIsInteger(7),DoingBullocks) ! @@ -1350,7 +1346,7 @@ SUBROUTINE ParseSpontaneousFile(FName) ! DO iElement = 1,3 IF (.NOT.LastFissionProductFound) THEN - IsNonVoid = (LEN_TRIM(MySubstring(4*iElement-3)).GT.0) + IsNonVoid = (LEN_TRIM(MySubstring(4*iElement-3)) > 0) IF (IsNonVoid) THEN SFNuclide(iElement) = Zap2Nuclide(MyInteger(4*iElement-3),MyInteger(4*iElement-2)) MyBranchingRatio(iElement) = MyFloat(4*iElement-1) @@ -1358,7 +1354,7 @@ SUBROUTINE ParseSpontaneousFile(FName) TotalYield = TotalYield + MyBranchingRatio(iElement) NFissionProducts = NFissionProducts + 1 - IF ((SFNuclide(iElement).GT.0).AND.(MyBranchingRatio(iElement).GT.0._Float)) THEN + IF ((SFNuclide(iElement) > 0).AND.(MyBranchingRatio(iElement) > 0._Float)) THEN WRITE(*,'(A,I8,A,A,A,A,A,EN20.10,1X,I3,1X,I3)') 'Line ',iLine,' SF: ',& & NuclideSpecs(iMother)%NuclideName,' --> ',& @@ -1367,7 +1363,7 @@ SUBROUTINE ParseSpontaneousFile(FName) & NuclideSpecs(SFNuclide(iElement))%AtomNumber,NuclideSpecs(SFNuclide(iElement))%NHadrons ENDIF - LastFissionProductFound = (NFissionProducts.GE.NExpectedFissionProducts) + LastFissionProductFound = (NFissionProducts >= NExpectedFissionProducts) ENDIF ! nonvoid ENDIF ! not yet last fission product found ENDDO ! loop over elements on 2 lines @@ -1400,7 +1396,7 @@ SUBROUTINE MakeMotherDaughterMatrix(MyNuclideSpecs,MyMotherDaughterMatrix,OutNam INTEGER, PARAMETER :: DebugLevel = 0 - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,I4)') 'MakeMyMotherDaughterMatrix: NNuclides = ',NNuclides ENDIF @@ -1410,7 +1406,7 @@ SUBROUTINE MakeMotherDaughterMatrix(MyNuclideSpecs,MyMotherDaughterMatrix,OutNam ! DO MotherNuclide = 1,NNuclides DO DaughterNuclide = 1,NNuclides - IF (DaughterNuclide.EQ.MotherNuclide) THEN + IF (DaughterNuclide == MotherNuclide) THEN MyMotherDaughterMatrix(DaughterNuclide,MotherNuclide) = -ln2& & /MyNuclideSpecs(DaughterNuclide)%HalfTime ELSE @@ -1424,7 +1420,7 @@ SUBROUTINE MakeMotherDaughterMatrix(MyNuclideSpecs,MyMotherDaughterMatrix,OutNam DO MotherNuclide = 1,NNuclides DO iDaughter = 1,MaxNDaughters DaughterNuclide = MyNuclideSpecs(MotherNuclide)%Daughter(iDaughter) - IF (DaughterNuclide.NE.0) THEN + IF (DaughterNuclide /= 0) THEN MyMotherDaughterMatrix(DaughterNuclide,MotherNuclide) = & MyMotherDaughterMatrix(DaughterNuclide,MotherNuclide) & & + MyNuclideSpecs(MotherNuclide)%DaughterFraction(iDaughter)*ln2& @@ -1435,8 +1431,8 @@ SUBROUTINE MakeMotherDaughterMatrix(MyNuclideSpecs,MyMotherDaughterMatrix,OutNam ! ! Write to output ! - IF (DebugLevel.GT.0) WRITE(*,*) - IF (LEN_TRIM(OutName).GT.0) THEN + IF (DebugLevel > 0) WRITE(*,*) + IF (LEN_TRIM(OutName) > 0) THEN OPEN(ScratchFile,FILE = OutName,FORM='FORMATTED', POSITION='REWIND') WRITE(ScratchFile,'(A)') 'Mother/daughter Matrix: horizontal nuclides decay into the vertical nuclides' WRITE(ScratchFile,664) NNuclides @@ -1458,7 +1454,7 @@ SUBROUTINE MakeMotherDaughterMatrix(MyNuclideSpecs,MyMotherDaughterMatrix,OutNam NNonZero = 0 DO DaughterNuclide = 1,NNuclides DO MotherNuclide = 1,NNuclides - IF (ABS(MyMotherDaughterMatrix(DaughterNuclide,MotherNuclide)).GT.1.E-24) CALL Inc(NNonZero) + IF (ABS(MyMotherDaughterMatrix(DaughterNuclide,MotherNuclide)) > 1.E-24) CALL Inc(NNonZero) ENDDO ENDDO ! @@ -1470,7 +1466,7 @@ SUBROUTINE MakeMotherDaughterMatrix(MyNuclideSpecs,MyMotherDaughterMatrix,OutNam 668 FORMAT(I10,1X,I10,' = NNuclides and NNonZero') DO DaughterNuclide = 1,NNuclides DO MotherNuclide = 1,NNuclides - IF (ABS(MyMotherDaughterMatrix(DaughterNuclide,MotherNuclide)).GT.1.E-24) THEN + IF (ABS(MyMotherDaughterMatrix(DaughterNuclide,MotherNuclide)) > 1.E-24) THEN WRITE(ScratchFile,667) & & DaughterNuclide,MotherNuclide,MyMotherDaughterMatrix(DaughterNuclide,MotherNuclide) 667 FORMAT(I4,1X,I4,1X,G10.4) @@ -1584,7 +1580,7 @@ SUBROUTINE ReadNProcessENDFNuclideSpecs(tMin,RegularizedNuclideSpecs,Regularized CALL SparseLMatrix2LMatrix(SparseIsRelated,IsRelated) READ(ScratchFile) tMinSug - IsDifferenttMin = (ABS(tMinSug/tMin-1._Float).GT.0.001_Float) + IsDifferenttMin = (ABS(tMinSug/tMin-1._Float) > 0.001_Float) IF (IsDifferenttMin) THEN WRITE(*,'(A,EN20.10,A,EN20.10,A)') 'The value of tMin in the file of ',tMinSug,& & ' seconds differs from the one in your subroutine call: ',tMin,' seconds!' @@ -1680,7 +1676,7 @@ SUBROUTINE ReadNProcessENDFNuclideSpecs(tMin,RegularizedNuclideSpecs,Regularized ENDIF ! Binary data already available - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,I0,A)') 'AtomSpecs takes : ',SIZEOF(AtomSpecs),' bytes' WRITE(*,'(A,I0,A)') 'AtomName takes : ',SIZEOF(AtomName),' bytes' WRITE(*,'(A,I0,A)') 'NNuclides takes : ',SIZEOF(NNuclides),' bytes' @@ -1720,9 +1716,9 @@ SUBROUTINE FindOrphans(tMin) Orphanage%NTooUnStable = 0 DO DaughterNuclide = 1,NNuclides - Orphanage%IsTooUnstable(DaughterNuclide) = (NuclideSpecs(DaughterNuclide)%HalfTime.LT.Orphanage%tMin) + Orphanage%IsTooUnstable(DaughterNuclide) = (NuclideSpecs(DaughterNuclide)%HalfTime < Orphanage%tMin) IF (Orphanage%IsTooUnstable(DaughterNuclide)) THEN - IF (DebugLevel.GT.0) WRITE(*,'(A,EN20.10,A,EN20.10,A)') 'Handling too fast nuclide '& + IF (DebugLevel > 0) WRITE(*,'(A,EN20.10,A,EN20.10,A)') 'Handling too fast nuclide '& & //TRIM(NuclideSpecs(DaughterNuclide)%NuclideName)//' with halflife ',NuclideSpecs(DaughterNuclide)%HalfTime,& & ' [s] < ',Orphanage%tMin,'[s]' @@ -1740,15 +1736,15 @@ SUBROUTINE FindOrphans(tMin) ! ! If a possible mother has been found, then define a new orphan ! - IF (DaughterNuclide.EQ.HerDaughterNuclide) THEN + IF (DaughterNuclide == HerDaughterNuclide) THEN NMothers = NMothers + 1 - IF (DebugLevel.GT.0) WRITE(*,'(A,I0,A,F15.10)') & + IF (DebugLevel > 0) WRITE(*,'(A,I0,A,F15.10)') & & 'Found mother '//TRIM(NuclideSpecs(MotherNuclide)%NuclideName)//& & ' and '//TRIM(NuclideSpecs(DaughterNuclide)%NuclideName)//' is her daughter number ',iDaughter,& & ' with branching ratio ',NuclideSpecs(MotherNuclide)%DaughterFraction(iDaughter) - IF (Orphanage%NOrphans.EQ.MaxNOrphans) THEN + IF (Orphanage%NOrphans == MaxNOrphans) THEN WRITE(*,'(A,I0,A)') 'Cannot add new orphan after maximum number of ',& & Orphanage%NOrphans,' orphans! Exiting!!' CALL EXIT() @@ -1763,8 +1759,8 @@ SUBROUTINE FindOrphans(tMin) ENDDO ! loop over daughters ENDDO ! Loop over candidate mothers - IF (DebugLevel.GT.0) THEN - IF (NMothers.GT.0) THEN + IF (DebugLevel > 0) THEN + IF (NMothers > 0) THEN WRITE(*,'(A,I0,A)') 'Found ',NMothers,' mothers for '//TRIM(NuclideSpecs(DaughterNuclide)%NuclideName)//'!' ELSE WRITE(*,'(A)') 'No mothers were found, '//TRIM(NuclideSpecs(DaughterNuclide)%NuclideName)& @@ -1818,7 +1814,7 @@ SUBROUTINE RegularizeNuclides(MyNuclideSpecs) ! DO DaughterNuclide = 1,NNuclides IF (Orphanage%IsTooUnstable(DaughterNuclide)) THEN - IF (DebugLevel.GT.0) WRITE(*,'(A,EN20.10,A)') 'Handling too fast nuclide '& + IF (DebugLevel > 0) WRITE(*,'(A,EN20.10,A)') 'Handling too fast nuclide '& & //TRIM(MyNuclideSpecs(DaughterNuclide)%NuclideName)//' with halflife ',& & MyNuclideSpecs(DaughterNuclide)%HalfTime,& & ' s' @@ -1829,13 +1825,13 @@ SUBROUTINE RegularizeNuclides(MyNuclideSpecs) NGrandDaughters = 0 DO iGrandDaughter = 1,MaxNDaughters GrandDaughterNuclide = MyNuclideSpecs(DaughterNuclide)%Daughter(iGrandDaughter) - IF (GrandDaughterNuclide.GT.0) THEN + IF (GrandDaughterNuclide > 0) THEN WRITE(*,'(A)') 'Spotted radioactive granddaughter '& & //MyNuclideSpecs(GrandDaughterNuclide)%NuclideName NGrandDaughters = NGrandDaughters + 1 ENDIF ENDDO - IF (NGrandDaughters.GT.0) THEN + IF (NGrandDaughters > 0) THEN WRITE(*,'(A,I0,A)') 'This daughter nuclide forms ',NGrandDaughters,' radioactive granddaughters' ELSE WRITE(*,'(A,I0,A)') 'This daughter nuclide forms no radioactive granddaughters, '& @@ -1856,7 +1852,7 @@ SUBROUTINE RegularizeNuclides(MyNuclideSpecs) ! ! If a possible mother has been found, eliminate the family relation and pass all info on to the next generation ! - IF (DaughterNuclide.EQ.HerDaughterNuclide) THEN + IF (DaughterNuclide == HerDaughterNuclide) THEN NMothers = NMothers + 1 @@ -1873,7 +1869,7 @@ SUBROUTINE RegularizeNuclides(MyNuclideSpecs) DO iGrandDaughter = 1,MyNuclideSpecs(DaughterNuclide)%NDaughters GrandDaughterNuclide = MyNuclideSpecs(DaughterNuclide)%Daughter(iGrandDaughter) - IF (GrandDaughterNuclide.GT.0) THEN + IF (GrandDaughterNuclide > 0) THEN ! ! Found a grand-daughter ! @@ -1887,7 +1883,7 @@ SUBROUTINE RegularizeNuclides(MyNuclideSpecs) IsAlreadyADaughter = .FALSE. FreeDaughter = 0 DO iNuclide = 1,MaxNDaughters - IF (MyNuclideSpecs(MotherNuclide)%Daughter(iNuclide).EQ.GrandDaughterNuclide) THEN + IF (MyNuclideSpecs(MotherNuclide)%Daughter(iNuclide) == GrandDaughterNuclide) THEN FreeDaughter = iNuclide IsAlreadyADaughter = .TRUE. ENDIF ! Granddaughter is already also a daughter @@ -1895,14 +1891,14 @@ SUBROUTINE RegularizeNuclides(MyNuclideSpecs) ! ! If not already a daughter, find the first available new daughter slot ! - IF (FreeDaughter.EQ.0) THEN + IF (FreeDaughter == 0) THEN DO iNuclide = 1,MaxNDaughters - IsFirstFreeSlot=((FreeDaughter.EQ.0).AND.(MyNuclideSpecs(MotherNuclide)%Daughter(iNuclide).EQ.0)) + IsFirstFreeSlot=((FreeDaughter == 0).AND.(MyNuclideSpecs(MotherNuclide)%Daughter(iNuclide) == 0)) IF (IsFirstFreeSlot) FreeDaughter = iNuclide ENDDO ENDIF ! granddaughter was not also a daughter - IF (FreeDaughter.GT.0) THEN + IF (FreeDaughter > 0) THEN IF (IsAlreadyADaughter) THEN WRITE(*,'(A,I0,A)') 'Daughter slot ',FreeDaughter,& & ' of mother '//TRIM(MyNuclideSpecs(MotherNuclide)%NuclideName)& @@ -1973,7 +1969,7 @@ SUBROUTINE RegularizeNuclides(MyNuclideSpecs) ENDDO ! loop over 20 daughters ENDDO ! Loop over candidate mothers - IF (NMothers.GT.0) THEN + IF (NMothers > 0) THEN WRITE(*,'(A,I0,A)') 'Found ',NMothers,' mothers!' ELSE WRITE(*,'(A)') 'No mothers were found, this is an artificial nuclide and not a decay product!' @@ -1991,7 +1987,7 @@ SUBROUTINE RegularizeNuclides(MyNuclideSpecs) DO MotherNuclide = 1,NNuclides DO iDaughter = 1,MaxNDaughters HerDaughterNuclide = MyNuclideSpecs(MotherNuclide)%Daughter(iDaughter) - IF (HerDaughterNuclide.NE.0) THEN + IF (HerDaughterNuclide /= 0) THEN RegularizedIsRelated(HerDaughterNuclide,MotherNuclide) = .TRUE. ENDIF ENDDO @@ -2057,7 +2053,7 @@ SUBROUTINE CollectProgeny(iNuclide,DoPrint) IsNewFarFamily = (IsRelated(DaughterNuclide,MotherNuclide) & & .AND. NuclideFamily%IsFarFamily(MotherNuclide) & & .AND. (.NOT.NuclideFamily%IsFarFamily(DaughterNuclide))& - & .AND. (NuclideSpecs(DaughterNuclide)%HalfTime.LT.1.E80_Float)) + & .AND. (NuclideSpecs(DaughterNuclide)%HalfTime < 1.E80_Float)) IF (IsNewFarFamily) THEN NuclideFamily%IsFarFamily(DaughterNuclide) = .TRUE. @@ -2070,7 +2066,7 @@ SUBROUTINE CollectProgeny(iNuclide,DoPrint) IsNewFamily = (RegularizedIsRelated(DaughterNuclide,MotherNuclide) & & .AND. NuclideFamily%IsFamily(MotherNuclide) & & .AND. (.NOT.NuclideFamily%IsFamily(DaughterNuclide))& - & .AND. (NuclideSpecs(DaughterNuclide)%HalfTime.LT.1.E80_Float)) + & .AND. (NuclideSpecs(DaughterNuclide)%HalfTime < 1.E80_Float)) ! ! Add new family member ! @@ -2089,12 +2085,12 @@ SUBROUTINE CollectProgeny(iNuclide,DoPrint) NuclideFamily%Mother(DaughterNuclide,NuclideFamily%NMothers(DaughterNuclide)) = & & MotherNuclide - IF (DebugLevel.GT.2) THEN + IF (DebugLevel > 2) THEN WRITE(*,'(A)') 'Adding daughter '//NuclideSpecs(DaughterNuclide)%NuclideName//' for mother '//& & NuclideSpecs(MotherNuclide)%NuclideName ENDIF ELSE IF (IsNewFarFamily) THEN - IF (DebugLevel.GT.2) THEN + IF (DebugLevel > 2) THEN WRITE(*,'(A)') 'Adding orphan daughter '//NuclideSpecs(DaughterNuclide)%NuclideName//' for mother '//& & NuclideSpecs(MotherNuclide)%NuclideName ENDIF @@ -2102,9 +2098,9 @@ SUBROUTINE CollectProgeny(iNuclide,DoPrint) ENDDO ! loop over all other nuclides ENDDO ! loop over nuclides already in the family - Ready = (NFarAdded .EQ. 0) + Ready = (NFarAdded == 0) - IF (DebugLevel.GT.2) THEN + IF (DebugLevel > 2) THEN IF (Ready) THEN WRITE(*,'(A)') 'Found no new members, halting iterations!' ELSE @@ -2116,7 +2112,7 @@ SUBROUTINE CollectProgeny(iNuclide,DoPrint) ! ! Now add short living family members ! - IF (DebugLevel.GT.2) THEN + IF (DebugLevel > 2) THEN WRITE(*,'(A)') 'The regular family has been formed, now going to add possible fast nuclides!' ENDIF @@ -2126,7 +2122,7 @@ SUBROUTINE CollectProgeny(iNuclide,DoPrint) DO SwiftNuclide = 1,NNuclides IF (NuclideFamily%IsFarFamily(SwiftNuclide).AND..NOT.(NuclideFamily%IsFamily(SwiftNuclide))) THEN - IF (DebugLevel.GT.2) THEN + IF (DebugLevel > 2) THEN WRITE(*,'(A)') 'Nuclide '//TRIM(NuclideSpecs(SwiftNuclide)%NuclideName)//' seems interesting! Adding it!' ENDIF @@ -2159,18 +2155,18 @@ SUBROUTINE CollectProgeny(iNuclide,DoPrint) ENDIF ! This is such a swift nuclide ENDDO ! loop over possibly fast decaying nuclides that have to be added to the family, but with high index numbers - Ready = (NAdded .EQ. 0) + Ready = (NAdded == 0) - IF (DebugLevel.GT.2) THEN + IF (DebugLevel > 2) THEN WRITE(*,'(A,I0,A)') 'Found ',NAdded,' new too fast (orphan) members!' ENDIF ! ! Show all relatives for this nuclide ! - IF (DebugLevel.EQ.1) THEN + IF (DebugLevel == 1) THEN WRITE(*,'(A)') NuclideSpecs(iNuclide)%NuclideName//' chain:' DO DaughterNuclide = 1,NNuclides - IF(DaughterNuclide.NE.iNuclide) THEN + IF(DaughterNuclide /= iNuclide) THEN IF(NuclideFamily%IsFamily(DaughterNuclide)) THEN WRITE(*,'(5X,A)') NuclideSpecs(DaughterNuclide)%NuclideName ELSE IF (NuclideFamily%IsFarFamily(DaughterNuclide)) THEN @@ -2178,16 +2174,16 @@ SUBROUTINE CollectProgeny(iNuclide,DoPrint) ENDIF ENDIF ! Daughter not iNuclide ENDDO - ELSEIF ((DebugLevel.GT.1).AND. DoPrint) THEN + ELSEIF ((DebugLevel > 1).AND. DoPrint) THEN WRITE(*,'(A,I0,A)') 'This nuclide has a family with ',NuclideFamily%NFarFamily-1,' more members:' DO DaughterNuclide = 1,NNuclides - IF (DebugLevel.GT.2) THEN + IF (DebugLevel > 2) THEN WRITE(*,'(4A,2L5)') 'CollectProgeny: show all relatives: ',NuclideSpecs(iNuclide)%NuclideName,& & ' --> ? ',NuclideSpecs(DaughterNuclide)%NuclideName,& & NuclideFamily%IsFamily(DaughterNuclide),NuclideFamily%IsFarFamily(DaughterNuclide) ENDIF - IF(DaughterNuclide.NE.iNuclide) THEN + IF(DaughterNuclide /= iNuclide) THEN IF(NuclideFamily%IsFamily(DaughterNuclide)) THEN WRITE(*,'(A,EN20.10,A)') NuclideSpecs(DaughterNuclide)%NuclideName//' with halflife ',& & NuclideSpecs(DaughterNuclide)%HalfTime,' [s]' @@ -2216,7 +2212,7 @@ SUBROUTINE ListTransitions() IF (NuclideFamily%IsFarFamily(MotherNuclide)) THEN DO iDaughter = 1,NuclideSpecs(MotherNuclide)%NDaughters DaughterNuclide = NuclideSpecs(MotherNuclide)%Daughter(iDaughter) - IF (DaughterNuclide.NE.0) THEN + IF (DaughterNuclide /= 0) THEN ! ! Find type of transition ! @@ -2229,8 +2225,8 @@ SUBROUTINE ListTransitions() & NuclideSpecs(DaughterNuclide)%NuclideName,& & ' fraction ',& & NuclideSpecs(MotherNuclide)%DaughterFraction(iDaughter) - ELSE IF ((LEN_TRIM(NuclideSpecs(MotherNuclide)%DaughterName(iDaughter)).GT.0)& - & .AND.(TRIM(NuclideSpecs(MotherNuclide)%DaughterName(iDaughter)).NE.'SF')) THEN + ELSE IF ((LEN_TRIM(NuclideSpecs(MotherNuclide)%DaughterName(iDaughter)) > 0)& + & .AND.(TRIM(NuclideSpecs(MotherNuclide)%DaughterName(iDaughter)) /= 'SF')) THEN WRITE(*,'(4A,F15.10,A)') & & NuclideSpecs(MotherNuclide)%NuclideName,& & ' ------------> ',& @@ -2318,10 +2314,10 @@ SUBROUTINE AddOrphansBelow(iNuclide,TheDecayMatrix,zDelay,NFirstMotherOrphans) INTEGER, PARAMETER :: DebugLevel = 0 - IF (DebugLevel.GT.0) WRITE(*,*) - IF (DebugLevel.GT.0) WRITE(*,'(A)') '-------------------- Start of search for orphan chain ------------------------' - IF (DebugLevel.GT.0) WRITE(*,*) - IF (DebugLevel.GT.0) WRITE(*,'(A,I4,A,A)') 'Checking orphan chain below nuclide ',iNuclide,& + IF (DebugLevel > 0) WRITE(*,*) + IF (DebugLevel > 0) WRITE(*,'(A)') '-------------------- Start of search for orphan chain ------------------------' + IF (DebugLevel > 0) WRITE(*,*) + IF (DebugLevel > 0) WRITE(*,'(A,I4,A,A)') 'Checking orphan chain below nuclide ',iNuclide,& & ' : ',TRIM(NuclideSpecs(iNuclide)%NuclideName) NFirstMotherOrphans = 0 @@ -2334,8 +2330,8 @@ SUBROUTINE AddOrphansBelow(iNuclide,TheDecayMatrix,zDelay,NFirstMotherOrphans) DO WHILE (.NOT.Ready) iIteration = iIteration + 1 - IF (DebugLevel.GT.0) WRITE(*,*) - IF (DebugLevel.GT.0) WRITE(*,'(A,I0)') '############# Iteration ',iIteration + IF (DebugLevel > 0) WRITE(*,*) + IF (DebugLevel > 0) WRITE(*,'(A,I0)') '############# Iteration ',iIteration ! ! If any arrow into a too fast nuclide, either from regular progeny of the head of chain or from another ! too fast nuclide in the family, is inactive, switch off this daughter nuclide from TooFastFullyChecked @@ -2351,15 +2347,15 @@ SUBROUTINE AddOrphansBelow(iNuclide,TheDecayMatrix,zDelay,NFirstMotherOrphans) NFirstMotherOrphans = NFirstMotherOrphans + NAdded - IF (DebugLevel.GT.0) WRITE(*,'(A,I0)') 'Number of orphans added in this iteration: ',NAdded + IF (DebugLevel > 0) WRITE(*,'(A,I0)') 'Number of orphans added in this iteration: ',NAdded - Ready = (NAdded.EQ.0) + Ready = (NAdded == 0) ENDDO ! loop until no new orphans added - IF (DebugLevel.GT.0) WRITE(*,*) - IF (DebugLevel.GT.0) WRITE(*,'(A)') '-------------------- End of search for orphan chain --------------------------' - IF (DebugLevel.GT.0) WRITE(*,*) + IF (DebugLevel > 0) WRITE(*,*) + IF (DebugLevel > 0) WRITE(*,'(A)') '-------------------- End of search for orphan chain --------------------------' + IF (DebugLevel > 0) WRITE(*,*) CONTAINS @@ -2372,13 +2368,13 @@ SUBROUTINE MarkFullyCheckedOrphans ! DO MotherNuclide = 1,NuclideFamily%NFamily iiNuclide = NuclideFamily%FamilyMember(MotherNuclide) - IF (Orphanage%Orphan(iOrphan)%Mother.EQ.iiNuclide) THEN ! So now the mother of the orphan is regular family + IF (Orphanage%Orphan(iOrphan)%Mother == iiNuclide) THEN ! So now the mother of the orphan is regular family IF (.NOT.Orphanage%Orphan(iOrphan)%Active) THEN ! but the transition to a too fast nuclide in not yet active TooFastFullyChecked(Orphanage%Orphan(iOrphan)%Daughter) = .FALSE. ! Then the too fast daughter is not yet a good basis for searching for new too fast progeny below - IF (DebugLevel.GT.0) WRITE(*,'(A,I0,A)') 'MarkFullyCheckedOrphans: In iteration ',iIteration,& + IF (DebugLevel > 0) WRITE(*,'(A,I0,A)') 'MarkFullyCheckedOrphans: In iteration ',iIteration,& & ' switched off orphan '& & //TRIM(NuclideSpecs(Orphanage%Orphan(iOrphan)%Daughter)%NuclideName)& & //' for lack of progeny transition '& @@ -2394,12 +2390,12 @@ SUBROUTINE MarkFullyCheckedOrphans DO jOrphan = 1,Orphanage%NOrphans iiNuclide = Orphanage%Orphan(jOrphan)%Daughter IF (NuclideFamily%IsFarFamily(iiNuclide)) THEN - IF (Orphanage%Orphan(iOrphan)%Mother.EQ.iiNuclide) THEN ! So now the mother of the orphan is an orphan + IF (Orphanage%Orphan(iOrphan)%Mother == iiNuclide) THEN ! So now the mother of the orphan is an orphan IF (.NOT.Orphanage%Orphan(iOrphan)%Active) THEN ! but this mother orphan transition is not yet active.. TooFastFullyChecked(Orphanage%Orphan(iOrphan)%Daughter) = .FALSE. ! then, de-select this nuclide - IF (DebugLevel.GT.0) WRITE(*,'(A,I0,A)') 'MarkFullyCheckedOrphans: In iteration ',& + IF (DebugLevel > 0) WRITE(*,'(A,I0,A)') 'MarkFullyCheckedOrphans: In iteration ',& & iIteration,' switched off orphan '& & //TRIM(NuclideSpecs(Orphanage%Orphan(iOrphan)%Daughter)%NuclideName)& & //' for lack of orphan-orphan transition '& @@ -2431,7 +2427,7 @@ SUBROUTINE AddOrphansFromRegularFamily(MyNAdded) ! NotAlreadyAMember = (.NOT.Orphanage%Orphan(jOrphan)%Active) - ItsMotherIs_ii = (Orphanage%Orphan(jOrphan)%Mother.EQ.iiNuclide) + ItsMotherIs_ii = (Orphanage%Orphan(jOrphan)%Mother == iiNuclide) IF (NotAlreadyAMember.AND.ItsMotherIs_ii) THEN Orphanage%Orphan(jOrphan)%Active = .TRUE. @@ -2450,7 +2446,7 @@ SUBROUTINE AddOrphansFromRegularFamily(MyNAdded) MyNAdded = MyNAdded + 1 - IF (DebugLevel.GT.0) WRITE(*,'(A,F20.15)') 'AddOrphansFromRegularFamily: Found new orphan transition: '& + IF (DebugLevel > 0) WRITE(*,'(A,F20.15)') 'AddOrphansFromRegularFamily: Found new orphan transition: '& & //NuclideSpecs(jjNuclide)%NuclideName & & //' from mother '& & //NuclideSpecs(iiNuclide)%NuclideName& @@ -2480,7 +2476,7 @@ SUBROUTINE AddOrphansFromCheckedOrphans(MyNAdded) ! NotAlreadyAMember = (.NOT.Orphanage%Orphan(jOrphan)%Active) - ItsMotherIs_ii = (Orphanage%Orphan(jOrphan)%Mother.EQ.iiNuclide) + ItsMotherIs_ii = (Orphanage%Orphan(jOrphan)%Mother == iiNuclide) IF (NotAlreadyAMember.AND.ItsMotherIs_ii) THEN Orphanage%Orphan(jOrphan)%Active = .TRUE. @@ -2497,7 +2493,7 @@ SUBROUTINE AddOrphansFromCheckedOrphans(MyNAdded) MyNAdded = MyNAdded + 1 - IF (DebugLevel.GT.0) WRITE(*,'(A)') 'AddOrphansFromCheckedOrphans: Found new orphan transition: '& + IF (DebugLevel > 0) WRITE(*,'(A)') 'AddOrphansFromCheckedOrphans: Found new orphan transition: '& & //NuclideSpecs(jjNuclide)%NuclideName & & //' from mother '& & //NuclideSpecs(iiNuclide)%NuclideName diff --git a/src/lib/libinterval.f90 b/src/lib/libinterval.f90 index 0442a1b..6825606 100644 --- a/src/lib/libinterval.f90 +++ b/src/lib/libinterval.f90 @@ -55,17 +55,17 @@ FUNCTION ExponentialIntervalInterpolate(x,Interval,InterpolationWay,Error) Error = .FALSE. NX = Interval%IntervalSpecs%N - IF (DebugLevel.GT.0) WRITE(*,'(A,I0)') 'ExponentialIntervalInterpolate: NX = ',NX + IF (DebugLevel > 0) WRITE(*,'(A,I0)') 'ExponentialIntervalInterpolate: NX = ',NX - IF (x.LT.0._Float) THEN + IF (x < 0._Float) THEN Dum = Interval%Values(0) Error = .TRUE. ! You are violating the conditions! - IF (DebugLevel.GT.0) WRITE(*,'(A,F15.5)') 'ExponentialIntervalInterpolate: 1: ',Dum - ELSE IF (x.GT.Interval%IntervalSpecs%XMax) THEN + IF (DebugLevel > 0) WRITE(*,'(A,F15.5)') 'ExponentialIntervalInterpolate: 1: ',Dum + ELSE IF (x > Interval%IntervalSpecs%XMax) THEN Dum = Interval%Values(NX) Error = .TRUE. ! You are violating the conditions! - IF (DebugLevel.GT.0) WRITE(*,'(A,F15.5)') 'ExponentialIntervalInterpolate: 2: ',Dum - ELSE IF (x.LT.Interval%FirstDelay) THEN + IF (DebugLevel > 0) WRITE(*,'(A,F15.5)') 'ExponentialIntervalInterpolate: 2: ',Dum + ELSE IF (x < Interval%FirstDelay) THEN ! ! For any x in [0,FirstDelay> use first order interpolation y = ax + b, irrespective of the given interpolation order ! @@ -82,14 +82,14 @@ FUNCTION ExponentialIntervalInterpolate(x,Interval,InterpolationWay,Error) ELSE LocX = 1._Float + LOG(x/Interval%FirstDelay)/LOG(Interval%DelayGrowthFactor) iLocX = MAX(MIN(INT(LocX),NX-1),1) - IF (DebugLevel.GT.0) WRITE(*,'(A,I0)') 'ExponentialIntervalInterpolate: iLocX = ',iLocX + IF (DebugLevel > 0) WRITE(*,'(A,I0)') 'ExponentialIntervalInterpolate: iLocX = ',iLocX CALL FLUSH(6) XLeft = Interval%FirstDelay*Interval%DelayGrowthFactor**(iLocX-1) XRight = XLeft*Interval%DelayGrowthFactor YLeft = Interval%Values(iLocX) YRight = Interval%Values(iLocX+1) - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,F15.2)') 'ExponentialIntervalInterpolate: XLeft = ',XLeft WRITE(*,'(A,F15.2)') 'ExponentialIntervalInterpolate: XRight = ',XRight WRITE(*,'(A,F15.2)') 'ExponentialIntervalInterpolate: YLeft = ',YLeft @@ -99,37 +99,37 @@ FUNCTION ExponentialIntervalInterpolate(x,Interval,InterpolationWay,Error) ! ! Powerlaw interpolation will not work if 1 of the y-values is 0. In that case use linear interpolation. ! - BothAreNonZero = (ABS(YLeft*YRight).GT.0._Float) - IF (DebugLevel.GT.0) WRITE(*,'(A,L1)') 'ExponentialIntervalInterpolate: BothAreNonZero? ',BothAreNonZero + BothAreNonZero = (ABS(YLeft*YRight) > 0._Float) + IF (DebugLevel > 0) WRITE(*,'(A,L1)') 'ExponentialIntervalInterpolate: BothAreNonZero? ',BothAreNonZero CALL FLUSH(6) ! ! Nearest neighbour interpolation ! - IF (InterpolationWay.EQ.0) THEN + IF (InterpolationWay == 0) THEN CellX = (x-XLeft)/(XRight-XLeft) - IF (CellX.LE.0.5_Float) THEN + IF (CellX <= 0.5_Float) THEN Dum = YLeft ELSE Dum = YRight ENDIF - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,F10.2,A,EN20.10)') 'ExponentialIntervalInterpolate: Order 0, CellX = ',CellX,' Dum = ',Dum CALL FLUSH(6) ENDIF - ELSE IF ((InterpolationWay.EQ.1).OR.(.NOT.BothAreNonZero)) THEN + ELSE IF ((InterpolationWay == 1).OR.(.NOT.BothAreNonZero)) THEN ! ! Linear interpolation y = ax + b ! CellX = (x-XLeft)/(XRight-XLeft) Dum = (1._Float-CellX) * YLeft + CellX *YRight - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,F10.2,A,EN20.10)') 'ExponentialIntervalInterpolate: Linear: CellX = ',CellX,' Dum = ',Dum CALL FLUSH(6) ENDIF - ELSE IF (InterpolationWay.EQ.2) THEN + ELSE IF (InterpolationWay == 2) THEN ! ! Powerlaw y = ax^b ! @@ -137,7 +137,7 @@ FUNCTION ExponentialIntervalInterpolate(x,Interval,InterpolationWay,Error) ThePower = LOG(YRight/YLeft)/LOG(XRight/XLeft) Dum = YLeft * (x/XLeft)**ThePower - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,F10.2,A,EN20.10)') 'ExponentialIntervalInterpolate: Powerlaw: ThePower = ',& & ThePower,' Dum = ',Dum CALL FLUSH(6) @@ -154,7 +154,7 @@ FUNCTION ExponentialIntervalInterpolate(x,Interval,InterpolationWay,Error) ! Neglect very small values to avoid the possible writing of a number with an exponent that has 3 digits: ! the "E" is omitted in such cases, making the output unreadable for other programs... ! - IF (ABS(Dum).LT.1.E-95_Float) Dum = 0._Float + IF (ABS(Dum) < 1.E-95_Float) Dum = 0._Float ExponentialIntervalInterpolate = Dum diff --git a/src/lib/libpinpoint.f90 b/src/lib/libpinpoint.f90 index b20c762..ce1707e 100644 --- a/src/lib/libpinpoint.f90 +++ b/src/lib/libpinpoint.f90 @@ -70,11 +70,11 @@ SUBROUTINE InitLibPinPoint(UseICRP) AvailableDelay(iStartingTime) = DelayGrowthFactor*AvailableDelay(iStartingTime-1) ENDDO ! loop over starting times - IF (DebugLevel.GT.0) WRITE(*,*) - IF (DebugLevel.GT.0) WRITE(*,'(A)') 'Considering the following exponentially distributed delays:' + IF (DebugLevel > 0) WRITE(*,*) + IF (DebugLevel > 0) WRITE(*,'(A)') 'Considering the following exponentially distributed delays:' DO iStartingTime = 0,NStartingTimes WRITE(StartingTimeName(iStartingTime),'(E11.5)') AvailableDelay(iStartingTime) - IF (DebugLevel.GT.0) WRITE(*,'(A)') StartingTimeName(iStartingTime)//'second' + IF (DebugLevel > 0) WRITE(*,'(A)') StartingTimeName(iStartingTime)//'second' ENDDO ! loop over starting times CALL GetTransitionMatrices(UseICRP) @@ -100,7 +100,7 @@ SUBROUTINE ReadRIVMSourceTermFile(FName,MyCocktail) ! Extract name of the source term from filename ! TheIndex = INDEX(FName,'.RIVMSource') - IF (TheIndex.EQ.0) THEN + IF (TheIndex == 0) THEN WRITE(*,'(A)') 'Sourcterm "'//TRIM(FName)//'" is not of type .RIVMSource! Exiting!!' CALL EXIT() ENDIF @@ -109,11 +109,11 @@ SUBROUTINE ReadRIVMSourceTermFile(FName,MyCocktail) ! MyCocktail%MyDirectory = FName iCharacter = LEN_TRIM(MyCocktail%MyDirectory) - IsNotABackSlash = .NOT.(MyCocktail%MyDirectory(iCharacter:iCharacter).EQ.'/') - DO WHILE (IsNotABackSlash.AND.(iCharacter.GT.0)) + IsNotABackSlash = .NOT.(MyCocktail%MyDirectory(iCharacter:iCharacter) == '/') + DO WHILE (IsNotABackSlash.AND.(iCharacter > 0)) MyCocktail%MyDirectory(iCharacter:iCharacter) = ' ' iCharacter = iCharacter - 1 - IF (iCharacter.GT.0) IsNotABackSlash = .NOT.(MyCocktail%MyDirectory(iCharacter:iCharacter).EQ.'/') + IF (iCharacter > 0) IsNotABackSlash = .NOT.(MyCocktail%MyDirectory(iCharacter:iCharacter) == '/') ENDDO ! ! Extract name of sourceterm @@ -133,15 +133,15 @@ SUBROUTINE ReadRIVMSourceTermFile(FName,MyCocktail) Ready = .FALSE. DO WHILE (.NOT.Ready) READ(ScratchFile,'(A)') ALine - IF (DebugLevel.GT.1) WRITE(*,'(A)') 'ALine = "'//TRIM(ALine)//'"' + IF (DebugLevel > 1) WRITE(*,'(A)') 'ALine = "'//TRIM(ALine)//'"' TheIndex = INDEX(ALine,'') - IF (TheIndex.GT.0) THEN + IF (TheIndex > 0) THEN READ(ALine((TheIndex+15):LEN_TRIM(ALine)),*) ScalingFactor - IF (DebugLevel.GT.1) WRITE(*,'(A,EN15.5)') 'Found scaling factor ',ScalingFactor + IF (DebugLevel > 1) WRITE(*,'(A,EN15.5)') 'Found scaling factor ',ScalingFactor ENDIF - Ready = (ALine(1:1).NE.'!') + Ready = (ALine(1:1) /= '!') ENDDO ! ! Read the nuclide vector and take into account the optional scaling factor @@ -151,9 +151,9 @@ SUBROUTINE ReadRIVMSourceTermFile(FName,MyCocktail) Ready = .FALSE. DO WHILE (.NOT.Ready) - IF (DebugLevel.GT.1) WRITE(*,'(A)') 'ALine = "'//TRIM(ALine)//'"' + IF (DebugLevel > 1) WRITE(*,'(A)') 'ALine = "'//TRIM(ALine)//'"' - IF (ALine(1:1).NE.'!') THEN + IF (ALine(1:1) /= '!') THEN READ(ALine,*) MyName,MyActivity CALL MassNuc2NucMass(MyName) @@ -162,12 +162,12 @@ SUBROUTINE ReadRIVMSourceTermFile(FName,MyCocktail) iNuclide = GetNuclideNumber(MyName) - IF (iNuclide.EQ.0) THEN + IF (iNuclide == 0) THEN WRITE(*,'(A)') 'Could not recognize nuclide "'//TRIM(MyName)//'"! Exiting!' CALL EXIT() ENDIF MyCocktail%x(iNuclide) = ScalingFactor * MyActivity ! [Bq/10kt] - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,A,I4,A,EN20.10,A)') MyName,' = nuclide ',iNuclide,& & ' and has activity ',MyCocktail%x(iNuclide),' Bq/10kt' ENDIF @@ -175,7 +175,7 @@ SUBROUTINE ReadRIVMSourceTermFile(FName,MyCocktail) READ(ScratchFile,'(A)',END=10) ALine - Ready = (LEN_TRIM(ALine).EQ.0) + Ready = (LEN_TRIM(ALine) == 0) ENDDO ! loop until ready 10 CONTINUE @@ -209,7 +209,7 @@ SUBROUTINE GetTransitionMatrices(UseICRP) FName = 'SparseMatrix_ENDF_'//TRIM(PinPointName)//'.dat' ENDIF - IF (DebugLevel.GT.0) WRITE(*,'(A)') 'Reading '//TRIM(FName) + IF (DebugLevel > 0) WRITE(*,'(A)') 'Reading '//TRIM(FName) CALL FLUSH(6) OPEN(ScratchFile, FILE=TransitionMatrixPath() // '/' // TRIM(FName), ACTION='READ') @@ -228,7 +228,7 @@ SUBROUTINE GetTransitionMatrices(UseICRP) ENDDO 10 CONTINUE - IF (DebugLevel.GT.0) WRITE(*,'(A,I0,A)') TRIM(FName)//' has ',TransitionMatrix(iStartingTime)%N,' elements' + IF (DebugLevel > 0) WRITE(*,'(A,I0,A)') TRIM(FName)//' has ',TransitionMatrix(iStartingTime)%N,' elements' REWIND(ScratchFile) ! @@ -272,7 +272,7 @@ SUBROUTINE SaveCocktail2(Cocktail,Tag) OPEN(ScratchFile,FILE=TRIM(Cocktail%MyDirectory)//TRIM(FName),ACTION='WRITE') WRITE(ScratchFile,'(A)') 'Nuclide Activity[Bq]' DO iNuclide = 1,NNuclides - IF (Cocktail%x(iNuclide).GT.NegligibleActivity) THEN + IF (Cocktail%x(iNuclide) > NegligibleActivity) THEN WRITE(ScratchFile,'(A,1X,EN11.2)') NuclideSpecs(iNuclide)%NuclideName,Cocktail%x(iNuclide) ENDIF ENDDO @@ -296,9 +296,9 @@ SUBROUTINE MatureCocktail(InCocktail,TheMatrix,WithProgeny,OutCocktail) INTEGER, PARAMETER :: DebugLevel = 0 - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN DO iNuclide = 1,NNuclides - IF (InCocktail%x(iNuclide).GT.0._Float) THEN + IF (InCocktail%x(iNuclide) > 0._Float) THEN WRITE(*,'(A,A,A,I4,A,EN20.10,A)') 'MatureCocktail: ',& & NuclideSpecs(iNuclide)%NuclideName,' = nuclide ',iNuclide,& & ' and has activity ',InCocktail%x(iNuclide),' Bq' @@ -314,9 +314,9 @@ SUBROUTINE MatureCocktail(InCocktail,TheMatrix,WithProgeny,OutCocktail) iMother = TheMatrix%Element(iElement)%i iDaughter = TheMatrix%Element(iElement)%j x = TheMatrix%Element(iElement)%x - IF (WithProgeny.OR.(iMother.EQ.iDaughter)) THEN + IF (WithProgeny.OR.(iMother == iDaughter)) THEN - IF ((DebugLevel.GT.0).AND.(InCocktail%x(iMother).GT.0._Float)) THEN + IF ((DebugLevel > 0).AND.(InCocktail%x(iMother) > 0._Float)) THEN WRITE(*,'(A,A,A,A,A,EN15.5,A,EN15.5,A,EN15.5)') 'Maturization of ',& & NuclideSpecs(iDaughter)%NuclideName,& & ' because of initial presence of ',& @@ -328,7 +328,7 @@ SUBROUTINE MatureCocktail(InCocktail,TheMatrix,WithProgeny,OutCocktail) ENDIF ! debug OutCocktail%x(iDaughter) = OutCocktail%x(iDaughter) + x*InCocktail%x(iMother) - IF (OutCocktail%x(iDaughter).LT.1.E-95_Float) OutCocktail%x(iDaughter) = 0._Float ! to prevent exponents with 3 digits, which print ugly... + IF (OutCocktail%x(iDaughter) < 1.E-95_Float) OutCocktail%x(iDaughter) = 0._Float ! to prevent exponents with 3 digits, which print ugly... ENDIF ENDDO ! loop over elements END SUBROUTINE MatureCocktail @@ -376,16 +376,16 @@ SUBROUTINE MakePinpointDoseRates(MyStartCocktail,WithDaughters,MotherNature,Daug DO iPinpoint = 0,NStartingTimes - IF (iPinpoint.EQ.0) THEN + IF (iPinpoint == 0) THEN ! According to pinpoint 0, there is only the head of chain, which is any fission product available at t=0. DO iNuclide = 1,NNuclides - MotherNatureOkay = (MotherNature.EQ.AnyNature)& - & .OR.((MotherNature.EQ.NobleNature ).AND.(NuclideSpecs(iNuclide)%NuclideGroup.EQ.1)) & - & .OR.((MotherNature.EQ.NonNobleNature).AND.(NuclideSpecs(iNuclide)%NuclideGroup.NE.1)) - DaughterNatureOkay = (DaughterNature.EQ.AnyNature)& - & .OR.((DaughterNature.EQ.NobleNature ).AND.(NuclideSpecs(iNuclide)%NuclideGroup.EQ.1)) & - & .OR.((DaughterNature.EQ.NonNobleNature).AND.(NuclideSpecs(iNuclide)%NuclideGroup.NE.1)) + MotherNatureOkay = (MotherNature == AnyNature)& + & .OR.((MotherNature == NobleNature ).AND.(NuclideSpecs(iNuclide)%NuclideGroup == 1)) & + & .OR.((MotherNature == NonNobleNature).AND.(NuclideSpecs(iNuclide)%NuclideGroup /= 1)) + DaughterNatureOkay = (DaughterNature == AnyNature)& + & .OR.((DaughterNature == NobleNature ).AND.(NuclideSpecs(iNuclide)%NuclideGroup == 1)) & + & .OR.((DaughterNature == NonNobleNature).AND.(NuclideSpecs(iNuclide)%NuclideGroup /= 1)) NaturesOkay = MotherNatureOkay .AND. DaughterNatureOkay @@ -427,18 +427,18 @@ SUBROUTINE MakePinpointDoseRates(MyStartCocktail,WithDaughters,MotherNature,Daug iMother = TransitionMatrix(iPinpoint)%Element(iElement)%i iDaughter = TransitionMatrix(iPinpoint)%Element(iElement)%j - MotherNatureOkay = (MotherNature.EQ.AnyNature)& - & .OR.((MotherNature.EQ.NobleNature ).AND.(NuclideSpecs(iMother)%NuclideGroup.EQ.1)) & - & .OR.((MotherNature.EQ.NonNobleNature).AND.(NuclideSpecs(iMother)%NuclideGroup.NE.1)) - DaughterNatureOkay = (DaughterNature.EQ.AnyNature)& - & .OR.((DaughterNature.EQ.NobleNature ).AND.(NuclideSpecs(iDaughter)%NuclideGroup.EQ.1)) & - & .OR.((DaughterNature.EQ.NonNobleNature).AND.(NuclideSpecs(iDaughter)%NuclideGroup.NE.1)) + MotherNatureOkay = (MotherNature == AnyNature)& + & .OR.((MotherNature == NobleNature ).AND.(NuclideSpecs(iMother)%NuclideGroup == 1)) & + & .OR.((MotherNature == NonNobleNature).AND.(NuclideSpecs(iMother)%NuclideGroup /= 1)) + DaughterNatureOkay = (DaughterNature == AnyNature)& + & .OR.((DaughterNature == NobleNature ).AND.(NuclideSpecs(iDaughter)%NuclideGroup == 1)) & + & .OR.((DaughterNature == NonNobleNature).AND.(NuclideSpecs(iDaughter)%NuclideGroup /= 1)) NaturesOkay = MotherNatureOkay .AND. DaughterNatureOkay IF (NaturesOkay) THEN - IF (WithDaughters.OR.(iMother.EQ.iDaughter)) THEN + IF (WithDaughters.OR.(iMother == iDaughter)) THEN x = TransitionMatrix(iPinpoint)%Element(iElement)%x DaughterActivity = x * MyStartCocktail%x(iMother) @@ -476,13 +476,13 @@ SUBROUTINE MakePinpointDoseRates(MyStartCocktail,WithDaughters,MotherNature,Daug ! DO iPinpoint = 0,NStartingTimes DO iNuclide = 1,NNuclides - IF (PinAirDoseRate(iPinpoint,iNuclide).LE.0.1E-99_Float) & + IF (PinAirDoseRate(iPinpoint,iNuclide) <= 0.1E-99_Float) & & PinAirDoseRate(iPinpoint,iNuclide) = 0._Float - IF (PinGroundDoseRate(iPinpoint,iNuclide).LE.0.1E-99_Float) & + IF (PinGroundDoseRate(iPinpoint,iNuclide) <= 0.1E-99_Float) & & PinGroundDoseRate(iPinpoint,iNuclide) = 0._Float - IF (PinInhalationDoseRate(iPinpoint,iNuclide).LE.0.1E-99_Float) & + IF (PinInhalationDoseRate(iPinpoint,iNuclide) <= 0.1E-99_Float) & & PinInhalationDoseRate(iPinpoint,iNuclide) = 0._Float - IF (PinThyroidInhalationDoseRate(iPinpoint,iNuclide).LE.0.1E-99_Float) & + IF (PinThyroidInhalationDoseRate(iPinpoint,iNuclide) <= 0.1E-99_Float) & & PinThyroidInhalationDoseRate(iPinpoint,iNuclide) = 0._Float ENDDO ! loop over nuclides ENDDO ! loop over all pinpoints @@ -492,24 +492,24 @@ SUBROUTINE MakePinpointDoseRates(MyStartCocktail,WithDaughters,MotherNature,Daug ! NParticipatingNuclides = 0 DO iNuclide = 1,NNuclides - IF (SumAirDoseRate(iNuclide).GT.0._Float) THEN + IF (SumAirDoseRate(iNuclide) > 0._Float) THEN NParticipatingNuclides = NParticipatingNuclides + 1 ParticipatingNuclide(NParticipatingNuclides) = iNuclide - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN NProgeny = 0 DO jNuclide = 1,NNuclides - IF ((MotherDaughterMatrix(jNuclide,iNuclide).NE.0._Float).AND.(jNuclide.NE.iNuclide)) THEN + IF ((MotherDaughterMatrix(jNuclide,iNuclide) /= 0._Float).AND.(jNuclide /= iNuclide)) THEN NProgeny = NProgeny + 1 ENDIF ! found progeny ENDDO ! loop over possible progeny of head of chain - IF (NProgeny.EQ.0) THEN + IF (NProgeny == 0) THEN WRITE(*,'(I4,1X,A7,7X,EN15.5,A)') NParticipatingNuclides,NuclideSpecs(iNuclide)%NuclideName,& & MyStartCocktail%x(iNuclide),' [Bq]' ELSE WRITE(*,'(I4,1X,A7,A,EN15.5,A)') NParticipatingNuclides,NuclideSpecs(iNuclide)%NuclideName,' chain:',& & MyStartCocktail%x(iNuclide),' [Bq]' DO jNuclide = 1,NNuclides - IF ((MotherDaughterMatrix(jNuclide,iNuclide).NE.0._Float).AND.(jNuclide.NE.iNuclide)) THEN + IF ((MotherDaughterMatrix(jNuclide,iNuclide) /= 0._Float).AND.(jNuclide /= iNuclide)) THEN WRITE(*,'(11X,A,1X,A7)') '+ progeny',NuclideSpecs(jNuclide)%NuclideName ENDIF ! found progeny ENDDO ! loop over possible progeny of head of chain @@ -520,19 +520,19 @@ SUBROUTINE MakePinpointDoseRates(MyStartCocktail,WithDaughters,MotherNature,Daug ! ! option to Write pinpoint doses to file ! - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN - IF (MotherNature.EQ.AnyNature) THEN + IF (MotherNature == AnyNature) THEN NaturesName = ' ' - ELSE IF (MotherNature.EQ.NobleNature) THEN + ELSE IF (MotherNature == NobleNature) THEN NaturesName = '_MNoble' ELSE NaturesName = '_MNonNoble' ENDIF - IF (DaughterNature.EQ.AnyNature) THEN + IF (DaughterNature == AnyNature) THEN NaturesName = TRIM(NaturesName)//' ' - ELSE IF (DaughterNature.EQ.NobleNature) THEN + ELSE IF (DaughterNature == NobleNature) THEN NaturesName = TRIM(NaturesName)//'_DNoble' ELSE NaturesName = TRIM(NaturesName)//'_DNonNoble' @@ -641,7 +641,7 @@ SUBROUTINE GetPinpointCocktails(MyStartCocktail,WithProgeny) ! NParticipatingNuclides = 0 DO iNuclide = 1,NNuclides - IF (ANY(MyCocktail%x(iNuclide).GT.0._Float)) THEN + IF (ANY(MyCocktail%x(iNuclide) > 0._Float)) THEN NParticipatingNuclides = NParticipatingNuclides + 1 ParticipatingNuclide(NParticipatingNuclides) = iNuclide ENDIF ! nuclide is participating diff --git a/src/lib/libutil.f90 b/src/lib/libutil.f90 index df3e49b..0a03e4d 100644 --- a/src/lib/libutil.f90 +++ b/src/lib/libutil.f90 @@ -92,7 +92,7 @@ subroutine env_var(name, val) FUNCTION CharacterIsADigit(Ch) CHARACTER(1), INTENT(IN) :: Ch LOGICAL :: CharacterIsADigit - CharacterIsADigit = (INDEX('0123456789',Ch).NE.0) + CharacterIsADigit = (INDEX('0123456789',Ch) /= 0) END FUNCTION CharacterIsADigit @@ -108,7 +108,7 @@ FUNCTION PathAndName(PathName) CHARACTER(DefaultLength) :: PathAndName TheEnd = LEN_TRIM(PathName%Path) - IF (PathName%Path(TheEnd:TheEnd).EQ.'/') THEN + IF (PathName%Path(TheEnd:TheEnd) == '/') THEN PathAndName = TRIM(PathName%Path)//TRIM(PathName%Name) ELSE PathAndName = TRIM(PathName%Path)//'/'//TRIM(PathName%Name) @@ -134,7 +134,7 @@ SUBROUTINE RunShellCommand(Commando,CrashOnError,DoSilent) ! ! Try the command ! - IF (TheSystem.EQ.System_Windows) THEN + IF (TheSystem == System_Windows) THEN IF (.NOT.DoSilent) WRITE(*,10) TRIM(ReversedCommand) Error = SYSTEM(TRIM(ReversedCommand)) ELSE @@ -145,13 +145,13 @@ SUBROUTINE RunShellCommand(Commando,CrashOnError,DoSilent) ! ! If failure, try with reversed slashes ! - IF (Error.NE.0) THEN + IF (Error /= 0) THEN IF (.NOT.DoSilent) WRITE(*,'(A)') 'Failure in shell-command. Retrying with path c:/msys/1.0/bin/ prepended...' - IF (TheSystem.EQ.System_Windows) THEN + IF (TheSystem == System_Windows) THEN IF (.NOT.DoSilent) WRITE(*,10) TRIM(Commando) Error = SYSTEM(TRIM(Commando)) - IF (Error.EQ.0) THEN + IF (Error == 0) THEN TheSystem = System_Linux ! Switch system mode to Linux WRITE(*,*) WRITE(*,'(A)') '--> System reacts better to original way of calling: changing to Linux-mode!' @@ -160,7 +160,7 @@ SUBROUTINE RunShellCommand(Commando,CrashOnError,DoSilent) ELSE IF (.NOT.DoSilent) WRITE(*,10) TRIM(ReversedCommand) Error = SYSTEM(TRIM(ReversedCommand)) - IF (Error.EQ.0) THEN + IF (Error == 0) THEN TheSystem = System_Windows ! Switch system mode to Windows WRITE(*,*) WRITE(*,'(A)') '--> System reacts better to MSYS-specific calling; changing to Windows-mode!' @@ -168,7 +168,7 @@ SUBROUTINE RunShellCommand(Commando,CrashOnError,DoSilent) ENDIF ENDIF - IF (Error.NE.0) THEN + IF (Error /= 0) THEN IF (.NOT.DoSilent) WRITE(*,*) '... sorry, second attempt of shell-command failed either!' IF (.NOT.DoSilent) WRITE(*,20) Error 20 FORMAT('Error ',I7,' in execution of command') @@ -176,7 +176,7 @@ SUBROUTINE RunShellCommand(Commando,CrashOnError,DoSilent) ENDIF ENDIF - IF ((Error.EQ.0).AND.(.NOT.DoSilent)) WRITE(*,30) + IF ((Error == 0).AND.(.NOT.DoSilent)) WRITE(*,30) 30 FORMAT('Shell-command succeeded!') END SUBROUTINE RunShellCommand @@ -216,7 +216,7 @@ SUBROUTINE RemoveCharacter(MyString,MyCharacter) INTEGER :: MyCharacterPos MyCharacterPos = INDEX(MyString,MyCharacter) - DO WHILE ((MyCharacterPos.GT.0).AND.(MyCharacterPos.LE.LEN_TRIM(MyString))) + DO WHILE ((MyCharacterPos > 0).AND.(MyCharacterPos <= LEN_TRIM(MyString))) MyString = MyString(1:(MyCharacterPos-1))//MyString((MyCharacterPos+1):LEN_TRIM(MyString)) MyCharacterPos = INDEX(MyString,MyCharacter) ENDDO @@ -240,21 +240,21 @@ SUBROUTINE CutStringInTwo(StringIn,String1,String2,NoSecondString) ! ! Remove leading spaces or tabs ! - IF (DebugLevel.GT.0) WRITE(*,10) '"'//TRIM(StringIn)//'"' + IF (DebugLevel > 0) WRITE(*,10) '"'//TRIM(StringIn)//'"' 10 FORMAT('Cut : StringIn = ',A) DumStr1 = StringIn - DO WHILE (((DumStr1(1:1).EQ.CHAR(32)).OR.(DumStr1(1:1).EQ.CHAR(9))).AND.(LEN_TRIM(DumStr1).GT.1)) + DO WHILE (((DumStr1(1:1) == CHAR(32)).OR.(DumStr1(1:1) == CHAR(9))).AND.(LEN_TRIM(DumStr1) > 1)) DumStr1 = DumStr1(2:LEN_TRIM(DumStr1)) ENDDO - IF (DebugLevel.GT.0) WRITE(*,11) TRIM(DumStr1) + IF (DebugLevel > 0) WRITE(*,11) TRIM(DumStr1) 11 FORMAT(' Cut : DumStr1 zonder spaties aan het begin = "',A,'"') ! ! Remove trailing tabs ! - DO WHILE ((DumStr1(LEN_TRIM(DumStr1):LEN_TRIM(DumStr1)).EQ.CHAR(9)).AND.(LEN_TRIM(DumStr1).GT.1)) + DO WHILE ((DumStr1(LEN_TRIM(DumStr1):LEN_TRIM(DumStr1)) == CHAR(9)).AND.(LEN_TRIM(DumStr1) > 1)) DumStr1 = DumStr1(1:(LEN_TRIM(DumStr1)-1)) ENDDO - IF (DebugLevel.GT.0) WRITE(*,12) TRIM(DumStr1) + IF (DebugLevel > 0) WRITE(*,12) TRIM(DumStr1) 12 FORMAT(' Cut : DumStr1 zonder spaties aan het eind = "',A,'"') ! ! Find a separator: space or tab @@ -262,17 +262,17 @@ SUBROUTINE CutStringInTwo(StringIn,String1,String2,NoSecondString) SpacePosition = INDEX(DumStr1,CHAR(32)) TabPosition = INDEX(DumStr1,CHAR(9)) CutPosition = SpacePosition - IF ((TabPosition.GT.0).AND.(TabPosition.LT.SpacePosition)) CutPosition = TabPosition + IF ((TabPosition > 0).AND.(TabPosition < SpacePosition)) CutPosition = TabPosition - NoSecondString = ((CutPosition.EQ.0).OR.(CutPosition.EQ.(LEN_TRIM(DumStr1)+1))) + NoSecondString = ((CutPosition == 0).OR.(CutPosition == (LEN_TRIM(DumStr1)+1))) - IF (DebugLevel.GT.0) WRITE(*,20) TRIM(DumStr1),SpacePosition,TabPosition,CutPosition + IF (DebugLevel > 0) WRITE(*,20) TRIM(DumStr1),SpacePosition,TabPosition,CutPosition 20 FORMAT(' "',A,'" heeft spatie op ',I3,' en tab op ',I3,' dus we gaan knippen op ',I3) IF (.NOT.NoSecondString) THEN DumStr2 = DumStr1((CutPosition+1):LEN_TRIM(DumStr1)) DumStr1 = DumStr1(1:(CutPosition-1)) ENDIF - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN IF (NoSecondString) THEN WRITE(*,31) TRIM(DumStr1) 31 FORMAT(' Aan het eind: "',A,'" en verder niets!') @@ -283,7 +283,7 @@ SUBROUTINE CutStringInTwo(StringIn,String1,String2,NoSecondString) ENDIF String1 = TRIM(DumStr1) IF (.NOT.NoSecondString) String2 = TRIM(DumStr2) - IF (DebugLevel.GT.0) WRITE(*,*) + IF (DebugLevel > 0) WRITE(*,*) END SUBROUTINE CutStringInTwo @@ -294,7 +294,7 @@ CHARACTER FUNCTION UpCase(Ch) ! CHARACTER, INTENT(IN) :: Ch CHARACTER :: DumChar - IF ((ICHAR(Ch).GE.97).AND.(ICHAR(Ch).LE.122)) THEN + IF ((ICHAR(Ch) >= 97).AND.(ICHAR(Ch) <= 122)) THEN DumChar = CHAR(ICHAR(Ch)-32) ELSE DumChar = Ch @@ -310,7 +310,7 @@ CHARACTER FUNCTION LowCase(Ch) ! CHARACTER, INTENT(IN) :: Ch CHARACTER :: DumChar - IF ((ICHAR(Ch).GE.65).AND.(ICHAR(Ch).LE.90)) THEN + IF ((ICHAR(Ch) >= 65).AND.(ICHAR(Ch) <= 90)) THEN DumChar = CHAR(ICHAR(Ch)+32) ELSE DumChar = Ch diff --git a/src/lib/libxmath.f90 b/src/lib/libxmath.f90 index 7153db3..fe2827b 100644 --- a/src/lib/libxmath.f90 +++ b/src/lib/libxmath.f90 @@ -289,7 +289,7 @@ FUNCTION Matrix2SparseMatrix(A) NNonZero = 0 DO i = 1,N DO j = 1,N - IF (A(j,i).NE.0._Float) NNonZero = NNonZero + 1 + IF (A(j,i) /= 0._Float) NNonZero = NNonZero + 1 ENDDO ENDDO @@ -305,7 +305,7 @@ FUNCTION Matrix2SparseMatrix(A) DO i = 1,N DO j = 1,N - IF (A(j,i).NE.0._Float) THEN + IF (A(j,i) /= 0._Float) THEN iElement = iElement + 1 ASparse%Element(iElement)%i = i ASparse%Element(iElement)%j = j @@ -336,12 +336,12 @@ SUBROUTINE SparseMatrix2Matrix(ASparse,A) ! A = 0._Float - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,L1,1X,I0,1X,I0)') 'SparseMatrix2Matrix: ',ALLOCATED(ASparse%Element),ASparse%NMax,ASparse%N ENDIF DO iElement = 1,ASparse%N - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,I4,1X,I4,1X,EN20.10)') 'i,j,x = ',ASparse%Element(iElement) ENDIF A(ASparse%Element(iElement)%j,ASparse%Element(iElement)%i) = ASparse%Element(iElement)%x @@ -412,12 +412,12 @@ SUBROUTINE SparseLMatrix2LMatrix(LASparse,LA) ! LA = .FALSE. - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,L1,1X,I0,1X,I0)') 'SparseLMatrix2LMatrix: ',ALLOCATED(LASparse%Element),LASparse%NMax,LASparse%N ENDIF DO iElement = 1,LASparse%N - IF (DebugLevel.GT.0) THEN + IF (DebugLevel > 0) THEN WRITE(*,'(A,I4,1X,I4)') 'i,j = ',LASparse%Element(iElement)%i,LASparse%Element(iElement)%j ENDIF LA(LASparse%Element(iElement)%j,LASparse%Element(iElement)%i) = .TRUE. diff --git a/src/mature_nuclides.f90 b/src/mature_nuclides.f90 index 34525c6..5b6f265 100644 --- a/src/mature_nuclides.f90 +++ b/src/mature_nuclides.f90 @@ -25,7 +25,7 @@ PROGRAM MatureNuclides NArguements = IARGC() - IF (.NOT.((NArguements.EQ.3).OR.(NArguements.EQ.5))) THEN + IF (.NOT.((NArguements == 3).OR.(NArguements == 5))) THEN WRITE(*,'(A)') 'Call:' WRITE(*,*) WRITE(*,'(A)') 'mature_nuclides.exe