Module FORMATO_FMT ! USE CONFIG USE PHYSAT ! Implicit None ! Private Public :: WRITE_FORMATO_FMT ! CONTAINS ! Subroutine WRITE_FORMATO_FMT(line, M1, M2) Character(len = *), Intent(in) :: line Integer, intent(out) :: M1, M2 Logical :: blabla = .FALSE. Character(len = 256), parameter :: formato_fmt = '(2(F11.3,I5,1X,A12), ES12.3, F13.4)' ! Logical :: crit1, crit2, crit3, crit4, crit5, crit6 crit1 = ( Ion < Ion_min .OR. Ion > Ion_max ) crit2 = ( Ei_eV > Ei_max_eV ) If (one_line_only) Then crit3 = ( lbd_vac < lbd-Dlbd/2 .OR. lbd_vac > lbd+Dlbd/2 ) Else crit3 = ( lbd_vac < lbd_min .OR. lbd_vac > lbd_max ) End If crit4 = ( loggf < loggf_min .OR. loggf > loggf_max ) crit5 = Any(Z_multi == Z) ! IF (blabla) Write(*, *)"crit1,crit2,crit3,crit4,crit5,crit6: ",crit1,crit2,crit3,crit4,crit5,crit6 ! If (crit1 .OR. crit2 .OR. crit3 .OR. crit4 .OR. .NOT. crit5) Then Write(30, '(A)', iostat = ios) Trim(line) IF (ios /= 0) STOP "IN SUBROUTINE WRITE_MULTI_FMT: PB-00." RETURN End If ! crit6 = ( Ei_eV > Eion_multi(Z,Ion) .OR. Ej_eV > Eion_multi(Z,Ion) ) ! If (crit6) Then Write(30, '(A)', iostat = ios) Trim(line) IF (ios /= 0) STOP "IN SUBROUTINE WRITE_MULTI_FMT: PB-01." RETURN End If ! If (rm_one_elt) Then If (NUM_NUCLEUS(elt_rm) == Z .AND. ( ion_min_rm <= Ion .AND. ion_max_rm >= Ion) ) Then Write(30, '(A)', iostat = ios) Trim(line) IF (ios /= 0) STOP "IN SUBROUTINE WRITE_MULTI_FMT: PB-01." RETURN End If End If ! If (one_elt_only) Then If (NUM_NUCLEUS(one_elt) == Z) Then Call DETAILS() M1 = M1 + 1 ! Lines selected for the element one_elt Else Write(30, '(A)', iostat = ios) Trim(line) IF (ios /= 0) STOP "IN SUBROUTINE WRITE_MULTI_FMT: PB-05." RETURN End If Else Call DETAILS() M2 = M2 + 1 ! Lines selected for the all elements End If ! CONTAINS ! !----------------------------------------------------------------- ! Subroutine DETAILS() f = 10**(loggf)/gi Write(20, formato_fmt, iostat = ios) Ei_cm, gi, Trim(config_i), Ej_cm, gj, Trim(config_j), f, lbd_air IF(ios/=0) STOP "IN SUBROUTINE WRITE_MULTI_FMT: PB-01." End Subroutine ! End Subroutine WRITE_FORMATO_FMT ! End Module FORMATO_FMT