Simulation Core
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

77 righe
2.2 KiB

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