GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phy_common/print_control_mod.F90 Lines: 5 15 33.3 %
Date: 2023-06-30 12:51:15 Branches: 0 8 0.0 %

Line Branch Exec Source
1
! $Id: $
2
MODULE print_control_mod
3
4
  INTEGER,SAVE :: lunout ! default output file identifier (6==screen)
5
  INTEGER,SAVE :: prt_level ! debug output level
6
  LOGICAL,SAVE :: debug ! flag to specify if in "debug mode"
7
  LOGICAL,SAVE :: alert_first_call = .TRUE. ! for printing alerts on first call to routine only
8
  LOGICAL,SAVE :: call_alert ! (combination of is_master and alert_first_call for easier use
9
!$OMP THREADPRIVATE(lunout,prt_level,debug, alert_first_call, call_alert)
10
11
  ! NB: Module variable Initializations done by set_print_control
12
  !     routine from init_print_control_mod to avoid circular
13
  !     module dependencies
14
15
CONTAINS
16
17
1
  SUBROUTINE set_print_control(lunout_,prt_level_,debug_)
18
  IMPLICIT NONE
19
    INTEGER, INTENT(IN) :: lunout_
20
    INTEGER, INTENT(IN) :: prt_level_
21
    LOGICAL, INTENT(IN) :: debug_
22
23
1
    lunout = lunout_
24
1
    prt_level = prt_level_
25
1
    debug = debug_
26
27
1
  END SUBROUTINE set_print_control
28
29
  SUBROUTINE prt_alerte(message, modname, niv_alerte)
30
    ! Function to print different values of alarms when first encountered
31
    ! Meant for informative purposee
32
    IMPLICIT NONE
33
    ! Arguments:
34
    ! message: message to print out
35
    ! modname: module/routine name
36
    ! niv_alerte: alert level (0/1/2)
37
    CHARACTER(LEN=*), INTENT(IN) :: modname
38
    CHARACTER(LEN=*) :: message
39
    INTEGER :: niv_alerte
40
    ! local variables
41
    CHARACTER(LEN=7), DIMENSION(0:2) :: alarm_color = (/ 'VERTE  ','ORANGE ','ROUGE  ' /)
42
    CHARACTER(LEN=7) :: alarm_couleur
43
    INTEGER :: alarm_file=15 ! in case we want/need to print out the special alarms in a separate file
44
45
    IF ( alert_first_call) then
46
       IF ( alarm_file .ne. lunout ) THEN
47
          OPEN(unit = alarm_file, file = "ALERTES.txt")
48
       ENDIF
49
    ENDIF
50
51
    alarm_couleur = alarm_color(niv_alerte)
52
    IF (niv_alerte < 0 .OR. niv_alerte > 3) then
53
       message = 'NIVEAU ALERTE INVALIDE  '//message
54
       alarm_couleur='NOIRE  '
55
    ENDIF
56
57
    WRITE(alarm_file, *)' ALERTE ',alarm_couleur, trim(modname),  trim(message)
58
59
  END SUBROUTINE prt_alerte
60
61
62
END MODULE print_control_mod