mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-21 11:03:29 +01:00
OMP Critial around format_w_error
Some checks reported errors
continuous-integration/drone/push Build was killed
Some checks reported errors
continuous-integration/drone/push Build was killed
This commit is contained in:
parent
9c2fee6e1c
commit
44d8672974
@ -1,7 +1,7 @@
|
|||||||
subroutine format_w_error(value,error,size_nb,max_nb_digits,format_value,str_error)
|
subroutine format_w_error(value,error,size_nb,max_nb_digits,format_value,str_error)
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Format for double precision, value(error)
|
! Format for double precision, value(error)
|
||||||
END_DOC
|
END_DOC
|
||||||
@ -14,7 +14,7 @@ subroutine format_w_error(value,error,size_nb,max_nb_digits,format_value,str_err
|
|||||||
|
|
||||||
! out
|
! out
|
||||||
! | format_value | character | string FX.Y for the format |
|
! | format_value | character | string FX.Y for the format |
|
||||||
! | str_error | character | string of the error |
|
! | str_error | character | string of the error |
|
||||||
|
|
||||||
! internal
|
! internal
|
||||||
! | str_size | character | size in string format |
|
! | str_size | character | size in string format |
|
||||||
@ -33,6 +33,7 @@ subroutine format_w_error(value,error,size_nb,max_nb_digits,format_value,str_err
|
|||||||
character(len=20) :: str_size, str_nb_digits, str_exp
|
character(len=20) :: str_size, str_nb_digits, str_exp
|
||||||
integer :: nb_digits
|
integer :: nb_digits
|
||||||
|
|
||||||
|
!$OMP CRITICAL
|
||||||
! max_nb_digit: Y max
|
! max_nb_digit: Y max
|
||||||
! size_nb = Size of the double: X (FX.Y)
|
! size_nb = Size of the double: X (FX.Y)
|
||||||
write(str_size,'(I3)') size_nb
|
write(str_size,'(I3)') size_nb
|
||||||
@ -40,17 +41,17 @@ subroutine format_w_error(value,error,size_nb,max_nb_digits,format_value,str_err
|
|||||||
! Error
|
! Error
|
||||||
write(str_exp,'(1pE20.0)') error
|
write(str_exp,'(1pE20.0)') error
|
||||||
str_error = trim(adjustl(str_exp))
|
str_error = trim(adjustl(str_exp))
|
||||||
|
|
||||||
! Number of digit: Y (FX.Y) from the exponent
|
! Number of digit: Y (FX.Y) from the exponent
|
||||||
str_nb_digits = str_exp(19:20)
|
str_nb_digits = str_exp(19:20)
|
||||||
read(str_nb_digits,*) nb_digits
|
read(str_nb_digits,*) nb_digits
|
||||||
|
|
||||||
! If the error is 0d0
|
! If the error is 0d0
|
||||||
if (error <= 1d-16) then
|
if (error <= 1d-16) then
|
||||||
write(str_nb_digits,*) max_nb_digits
|
write(str_nb_digits,*) max_nb_digits
|
||||||
endif
|
endif
|
||||||
|
|
||||||
! If the error is too small
|
! If the error is too small
|
||||||
if (nb_digits > max_nb_digits) then
|
if (nb_digits > max_nb_digits) then
|
||||||
write(str_nb_digits,*) max_nb_digits
|
write(str_nb_digits,*) max_nb_digits
|
||||||
str_error(1:1) = '0'
|
str_error(1:1) = '0'
|
||||||
@ -65,7 +66,8 @@ subroutine format_w_error(value,error,size_nb,max_nb_digits,format_value,str_err
|
|||||||
! FX.Y,A1,A1,A1 for value(str_error)
|
! FX.Y,A1,A1,A1 for value(str_error)
|
||||||
!string = 'F'//trim(adjustl(str_size))//'.'//trim(adjustl(str_nb_digits))//',A1,A1,A1'
|
!string = 'F'//trim(adjustl(str_size))//'.'//trim(adjustl(str_nb_digits))//',A1,A1,A1'
|
||||||
|
|
||||||
! FX.Y just for the value
|
! FX.Y just for the value
|
||||||
format_value = 'F'//trim(adjustl(str_size))//'.'//trim(adjustl(str_nb_digits))
|
format_value = 'F'//trim(adjustl(str_size))//'.'//trim(adjustl(str_nb_digits))
|
||||||
|
!$OMP END CRITICAL
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user