Module MOOG_FMT ! USE CONFIG USE PHYSAT ! Implicit None ! Private Public :: WRITE_MOOG_FMT ! CONTAINS ! Subroutine WRITE_MOOG_FMT(line, M1, M2, linf, lsup) Character(len = *), intent(in) :: line Integer, intent(out) :: M1, M2 Real, optional, intent(in) :: linf, lsup Logical :: crit1, crit2, crit3, crit4 Character(len =256), parameter :: moog_fmt1 = '(F10.3, F10.1, 2F10.3)' Character(len =256), parameter :: moog_fmt2 = '(F10.3, F10.1, 2F10.3, F6.2)' ! If (Present(linf) .AND. Present(lsup)) Then IF (lbd_air < linf .OR. lbd_air > lsup) RETURN End If ! ! crit1 = ( Ion < Ion_min .OR. Ion > Ion_max ) crit2 = ( Ei_eV > Ei_max_eV ) crit3 = ( lbd_air < lbd_min .OR. lbd_air > lbd_max ) crit4 = ( loggf < loggf_min .OR. loggf > loggf_max ) ! If (crit1 .OR. crit2 .OR. crit3 .OR. crit4) Then Write(30, '(A)', iostat = ios) Trim(line) IF (ios /= 0) STOP "IN SUBROUTINE WRITE_MOOG_FMT: PB-00." RETURN End If ! If (one_elt_only) Then ! If ( NUM_NUCLEUS(one_elt) == Z ) Then ! If (enhancement_f) Then Write(20, moog_fmt2, iostat = ios) lbd_air, code, Ei_eV, loggf, F_H_MOOG IF (ios /= 0) STOP "IN SUBROUTINE WRITE_MOOG_FMT: PB-01." Else Write(20, moog_fmt1, iostat = ios) lbd_air, code, Ei_eV, loggf IF (ios /= 0) STOP "IN SUBROUTINE WRITE_MOOG_FMT: PB-02." End If ! 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_MOOG_FMT: PB-00." End If ! Else ! If (enhancement_f) Then Write(20, moog_fmt2, iostat = ios) lbd_air, code, Ei_eV, loggf, F_H_MOOG IF (ios /= 0) STOP "IN SUBROUTINE WRITE_MOOG_FMT: PB-03." Else Write(20, moog_fmt1, iostat = ios) lbd_air, code, Ei_eV, loggf IF (ios /= 0) STOP "IN SUBROUTINE WRITE_MOOG_FMT: PB-04." End If ! M2 = M2 + 1 ! Lines selected for the all elements ! End If ! End Subroutine WRITE_MOOG_FMT ! End Module MOOG_FMT