Ignore:
Timestamp:
Nov 19, 2021, 4:58:59 PM (3 years ago)
Author:
lguez
Message:

Sync latest trunk changes to Ocean_skin

Location:
LMDZ6/branches/Ocean_skin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Ocean_skin

  • LMDZ6/branches/Ocean_skin/libf/phy_common/print_control_mod.F90

    r3605 r4013  
    55  INTEGER,SAVE :: prt_level ! debug output level
    66  LOGICAL,SAVE :: debug ! flag to specify if in "debug mode"
    7 !$OMP THREADPRIVATE(lunout,prt_level,debug)
     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)
    810
    911  ! NB: Module variable Initializations done by set_print_control
     
    1517  SUBROUTINE set_print_control(lunout_,prt_level_,debug_)
    1618  IMPLICIT NONE
    17     INTEGER :: lunout_
    18     INTEGER :: prt_level_
    19     LOGICAL :: debug_
     19    INTEGER, INTENT(IN) :: lunout_
     20    INTEGER, INTENT(IN) :: prt_level_
     21    LOGICAL, INTENT(IN) :: debug_
    2022     
    2123    lunout = lunout_
     
    2527  END SUBROUTINE set_print_control
    2628
     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 
    2762END MODULE print_control_mod
Note: See TracChangeset for help on using the changeset viewer.