Simulation Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

79 lines
2.9 KiB

  1. # 1 "/home/admin/SimulationCore2/Rop/Bit_Specification.f90"
  2. subroutine Bit_Specification
  3. use sROP_Other_Variables
  4. use sROP_Variables
  5. use CStringConfigurationVariables
  6. use SimulationVariables
  7. implicit none
  8. INTEGER :: io
  9. integer :: i , BitClass_name
  10. real(8) :: rd
  11. !data%State%ROP_Spec%H1=1.9
  12. !data%State%ROP_Spec%H2=7.
  13. !data%State%ROP_Spec%H3=1.
  14. !data%State%ROP_Spec%wdmax=7.
  15. data%State%ROP_Spec%BitClass = (data%Configuration%StringConfiguration%BitDefinition%BitCodeHundreds*100)+(data%Configuration%StringConfiguration%BitDefinition%BitCodeTens*10)+data%Configuration%StringConfiguration%BitDefinition%BitCodeOnes
  16. rd = SNGL(data%State%ROP_Spec%BitClass)/10.d0
  17. data%State%ROP_Spec%BrCoef = ( (SNGL(data%State%ROP_Spec%BitClass)/10.d0)-(DINT(rd)) )*10.d0
  18. BitClass_name = (data%State%ROP_Spec%BitClass)/10
  19. if ( (any(BitClass_name==(/11,12,13,14,21,22,23,24,31,32,33,34,41/))) ) then
  20. open(unit=233,file="Bit_Database.TXT")
  21. READ (233,*)
  22. DO i=1,13!(14-1(/=10))
  23. 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
  24. if ( data%State%ROP_Spec%name==BitClass_name ) then
  25. exit
  26. end if
  27. END DO
  28. close (233)
  29. else
  30. data%State%ROP_Spec%H1=1.50d0
  31. data%State%ROP_Spec%H2=1.0d0
  32. data%State%ROP_Spec%H3=.020d0
  33. data%State%ROP_Spec%wdmax=10.0d0
  34. end if
  35. !if(print_log) print*, 'data%State%ROP_Spec%H1=' , data%State%ROP_Spec%H1
  36. !if(print_log) print*, 'data%State%ROP_Spec%H2=' , data%State%ROP_Spec%H2
  37. !if(print_log) print*, 'data%State%ROP_Spec%H3=' , data%State%ROP_Spec%H3
  38. !if(print_log) print*, 'data%State%ROP_Spec%wdmax=' , data%State%ROP_Spec%wdmax
  39. !if(print_log) print*, 'data%State%ROP_Spec%name=' , data%State%ROP_Spec%name
  40. ! filename = 'Bit_Database.TXT'
  41. !open (UNIT=3, FILE=filename )
  42. !!if(print_log) print*, 'data%State%ROP_Spec%wdmax1=' , data%State%ROP_Spec%wdmax
  43. ! !if(print_log) print*, 'data%State%ROP_Spec%name1=' , data%State%ROP_Spec%name
  44. !!openif: if ( data%State%ROP_Spec%status == 0 ) then
  45. ! read (3,*,IOSTAT=data%State%ROP_Spec%status) ! Get next value
  46. ! readloop: do i=1,14
  47. ! 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
  48. ! !if(print_log) print*, 'data%State%ROP_Spec%wdmax=' , data%State%ROP_Spec%wdmax
  49. ! !if(print_log) print*, 'data%State%ROP_Spec%name=' , data%State%ROP_Spec%name
  50. ! if ( data%State%ROP_Spec%status /= 0 ) exit ! EXIT if not valid.
  51. ! if ( data%State%ROP_Spec%name == data%State%ROP_Spec%BitClass/10) exit
  52. ! end do readloop
  53. !!endif openif
  54. end subroutine