From 1f17dfba0dc231dffb90d3f3ec57f0bcbb2a7767 Mon Sep 17 00:00:00 2001 From: ignis Date: Thu, 11 Apr 2019 20:57:11 +0900 Subject: [PATCH] extract omit logic to a function --- code/m_parameters.f90 | 16 ++++++++++++++++ code/post.f90 | 29 ++++++++++------------------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/code/m_parameters.f90 b/code/m_parameters.f90 index f12dd56..18c6d50 100644 --- a/code/m_parameters.f90 +++ b/code/m_parameters.f90 @@ -25,4 +25,20 @@ module m_parameters contains +logical function to_omit(num) + + integer, intent(in) :: num + + integer :: i + + to_omit=.false. + + do i=1,omitnum + if (num.ge.omit_t(i,1).and.num.le.omit_t(i,2)) then + to_omit=.true. + endif + enddo + +end function to_omit + end module m_parameters diff --git a/code/post.f90 b/code/post.f90 index afe9a52..4a28c32 100644 --- a/code/post.f90 +++ b/code/post.f90 @@ -40,7 +40,6 @@ SUBROUTINE main INTEGER :: fread,i - LOGICAL :: omitsw CALL READ_INTRO @@ -50,17 +49,15 @@ fileloop: DO fread=startnum,endnum,skipnum - omitsw=.false. + IF ( to_omit(fread) ) THEN - filter_omit: DO i=1,omitnum - IF (fread.ge.omit_t(i,1).and.fread.le.omit_t(i,2)) THEN - omitsw=.true. - WRITE(*,'(a47,i7,a4,i5,a3,i5)') ' Current fullsavenum = ', fread, ' || ', (fread-startnum+1), ' / ', (endnum-startnum+1) - WRITE(*,'(a12,i6,a20,i6)') ' Skip. ', omit_t(i,1), ' <= fullsavenum <= ', omit_t(i,2) - ENDIF - ENDDO filter_omit + WRITE(*,'(a47,i7,a4,i5,a3,i5)') & + ' Current fullsavenum = ', fread, ' || ', (fread-startnum+1), ' / ', (endnum-startnum+1) - IF ( .not. omitsw ) THEN + WRITE(*,'(a12,i6,a20,i6)') & + ' Skip. ', omit_t(i,1), ' <= fullsavenum <= ', omit_t(i,2) + + ELSE countnum=countnum+1 CALL READ_FILE(fread) @@ -1212,23 +1209,17 @@ SUBROUTINE SECOND_LOOP INTEGER :: i,fread - LOGICAL :: omitsw - fileloop: DO fread=startnum,endnum,skipnum - omitsw=.false. + IF ( to_omit(fread) ) THEN - filter_omit: DO i=1,omitnum - IF (fread.ge.omit_t(i,1).and.fread.le.omit_t(i,2)) THEN - omitsw=.true. WRITE(*,'(a40,i7,a4,i4,a3,i4)') & ' Current fullsavenum = ', fread, ' || ', (fread-startnum+1), ' / ', (endnum-startnum+1) + WRITE(*,'(a12,i6,a20,i6)') & ' Skip. ', omit_t(i,1), ' <= fullsavenum <= ', omit_t(i,2) - ENDIF - ENDDO filter_omit - IF ( .not. omitsw ) THEN + ELSE CALL READ_FILE2(fread) CALL CAL_Yrs