subroutine Bit_Specification use sROP_Other_Variables use sROP_Variables use CStringConfigurationVariables use SimulationVariables implicit none INTEGER :: io integer :: i , BitClass_name real(8) :: rd !data%State%ROP_Spec%H1=1.9 !data%State%ROP_Spec%H2=7. !data%State%ROP_Spec%H3=1. !data%State%ROP_Spec%wdmax=7. data%State%ROP_Spec%BitClass = (data%Configuration%StringConfiguration%BitDefinition%BitCodeHundreds*100)+(data%Configuration%StringConfiguration%BitDefinition%BitCodeTens*10)+data%Configuration%StringConfiguration%BitDefinition%BitCodeOnes rd = SNGL(data%State%ROP_Spec%BitClass)/10.d0 data%State%ROP_Spec%BrCoef = ( (SNGL(data%State%ROP_Spec%BitClass)/10.d0)-(DINT(rd)) )*10.d0 BitClass_name = (data%State%ROP_Spec%BitClass)/10 if ( (any(BitClass_name==(/11,12,13,14,21,22,23,24,31,32,33,34,41/))) ) then open(unit=233,file="Bit_Database.TXT") READ (233,*) DO i=1,13!(14-1(/=10)) READ (233,*) data%State%ROP_Spec%name, data%State%ROP_Spec%H1, data%State%ROP_Spec%H2, data%State%ROP_Spec%H3, data%State%ROP_Spec%wdmax if ( data%State%ROP_Spec%name==BitClass_name ) then exit end if END DO close (233) else data%State%ROP_Spec%H1=1.50d0 data%State%ROP_Spec%H2=1.0d0 data%State%ROP_Spec%H3=.020d0 data%State%ROP_Spec%wdmax=10.0d0 end if !print*, 'data%State%ROP_Spec%H1=' , data%State%ROP_Spec%H1 !print*, 'data%State%ROP_Spec%H2=' , data%State%ROP_Spec%H2 !print*, 'data%State%ROP_Spec%H3=' , data%State%ROP_Spec%H3 !print*, 'data%State%ROP_Spec%wdmax=' , data%State%ROP_Spec%wdmax !print*, 'data%State%ROP_Spec%name=' , data%State%ROP_Spec%name ! filename = 'Bit_Database.TXT' !open (UNIT=3, FILE=filename ) !!print*, 'data%State%ROP_Spec%wdmax1=' , data%State%ROP_Spec%wdmax ! !print*, 'data%State%ROP_Spec%name1=' , data%State%ROP_Spec%name !!openif: if ( data%State%ROP_Spec%status == 0 ) then ! read (3,*,IOSTAT=data%State%ROP_Spec%status) ! Get next value ! readloop: do i=1,14 ! read (3,*,IOSTAT=data%State%ROP_Spec%status) data%State%ROP_Spec%name, data%State%ROP_Spec%H1, data%State%ROP_Spec%H2, data%State%ROP_Spec%H3, data%State%ROP_Spec%wdmax ! Get next value ! !print*, 'data%State%ROP_Spec%wdmax=' , data%State%ROP_Spec%wdmax ! !print*, 'data%State%ROP_Spec%name=' , data%State%ROP_Spec%name ! if ( data%State%ROP_Spec%status /= 0 ) exit ! EXIT if not valid. ! if ( data%State%ROP_Spec%name == data%State%ROP_Spec%BitClass/10) exit ! end do readloop !!endif openif end subroutine