tpm_stats.F90 Source File


This file depends on

sourcefile~~tpm_stats.f90~~EfferentGraph sourcefile~tpm_stats.f90 tpm_stats.F90 sourcefile~parkind_ectrans.f90 parkind_ectrans.F90 sourcefile~tpm_stats.f90->sourcefile~parkind_ectrans.f90

Files dependent on this one

sourcefile~~tpm_stats.f90~~AfferentGraph sourcefile~tpm_stats.f90 tpm_stats.F90 sourcefile~dir_trans.f90 dir_trans.F90 sourcefile~dir_trans.f90->sourcefile~tpm_stats.f90 sourcefile~dir_trans_ctl_mod.f90 dir_trans_ctl_mod.F90 sourcefile~dir_trans.f90->sourcefile~dir_trans_ctl_mod.f90 sourcefile~ftdir_mod.f90 ftdir_mod.F90 sourcefile~ftdir_mod.f90->sourcefile~tpm_stats.f90 sourcefile~ftinv_mod.f90 ftinv_mod.F90 sourcefile~ftinv_mod.f90->sourcefile~tpm_stats.f90 sourcefile~inv_trans.f90 inv_trans.F90 sourcefile~inv_trans.f90->sourcefile~tpm_stats.f90 sourcefile~inv_trans_ctl_mod.f90 inv_trans_ctl_mod.F90 sourcefile~inv_trans.f90->sourcefile~inv_trans_ctl_mod.f90 sourcefile~ledir_mod.f90 ledir_mod.F90 sourcefile~ledir_mod.f90->sourcefile~tpm_stats.f90 sourcefile~leinv_mod.f90 leinv_mod.F90 sourcefile~leinv_mod.f90->sourcefile~tpm_stats.f90 sourcefile~ltdir_mod.f90 ltdir_mod.F90 sourcefile~ltdir_mod.f90->sourcefile~tpm_stats.f90 sourcefile~ltdir_mod.f90->sourcefile~ledir_mod.f90 sourcefile~ltinv_mod.f90 ltinv_mod.F90 sourcefile~ltinv_mod.f90->sourcefile~tpm_stats.f90 sourcefile~ltinv_mod.f90->sourcefile~leinv_mod.f90 sourcefile~trgtol_mod.f90 trgtol_mod.F90 sourcefile~trgtol_mod.f90->sourcefile~tpm_stats.f90 sourcefile~trltog_mod.f90 trltog_mod.F90 sourcefile~trltog_mod.f90->sourcefile~tpm_stats.f90 sourcefile~trltom_mod.f90 trltom_mod.F90 sourcefile~trltom_mod.f90->sourcefile~tpm_stats.f90 sourcefile~trmtol_mod.f90 trmtol_mod.F90 sourcefile~trmtol_mod.f90->sourcefile~tpm_stats.f90 sourcefile~dir_trans_ctl_mod.f90->sourcefile~ftdir_mod.f90 sourcefile~dir_trans_ctl_mod.f90->sourcefile~ltdir_mod.f90 sourcefile~dir_trans_ctl_mod.f90->sourcefile~trgtol_mod.f90 sourcefile~dir_trans_ctl_mod.f90->sourcefile~trltom_mod.f90 sourcefile~trltom_pack_unpack.f90 trltom_pack_unpack.F90 sourcefile~dir_trans_ctl_mod.f90->sourcefile~trltom_pack_unpack.f90 sourcefile~ftdir_ctl_mod.f90 ftdir_ctl_mod.F90 sourcefile~ftdir_ctl_mod.f90->sourcefile~ftdir_mod.f90 sourcefile~ftdir_ctl_mod.f90->sourcefile~trgtol_mod.f90 sourcefile~ftdir_ctlad_mod.f90 ftdir_ctlad_mod.F90 sourcefile~ftdir_ctlad_mod.f90->sourcefile~trltog_mod.f90 sourcefile~ftinv_ctl_mod.f90 ftinv_ctl_mod.F90 sourcefile~ftinv_ctl_mod.f90->sourcefile~ftinv_mod.f90 sourcefile~ftinv_ctl_mod.f90->sourcefile~trltog_mod.f90 sourcefile~ftinv_ctlad_mod.f90 ftinv_ctlad_mod.F90 sourcefile~ftinv_ctlad_mod.f90->sourcefile~trgtol_mod.f90 sourcefile~gpnorm_trans.f90 gpnorm_trans.F90 sourcefile~gpnorm_trans.f90->sourcefile~trgtol_mod.f90 sourcefile~gpnorm_trans_ctl_mod.f90 gpnorm_trans_ctl_mod.F90 sourcefile~gpnorm_trans_ctl_mod.f90->sourcefile~trgtol_mod.f90 sourcefile~gpnorm_trans_gpu.f90 gpnorm_trans_gpu.F90 sourcefile~gpnorm_trans_gpu.f90->sourcefile~trgtol_mod.f90 sourcefile~inv_trans_ctl_mod.f90->sourcefile~ftinv_mod.f90 sourcefile~inv_trans_ctl_mod.f90->sourcefile~ltinv_mod.f90 sourcefile~inv_trans_ctl_mod.f90->sourcefile~trltog_mod.f90 sourcefile~inv_trans_ctl_mod.f90->sourcefile~trmtol_mod.f90 sourcefile~trmtol_pack_unpack.f90 trmtol_pack_unpack.F90 sourcefile~inv_trans_ctl_mod.f90->sourcefile~trmtol_pack_unpack.f90 sourcefile~ltdir_ctl_mod.f90 ltdir_ctl_mod.F90 sourcefile~ltdir_ctl_mod.f90->sourcefile~ltdir_mod.f90 sourcefile~ltdir_ctl_mod.f90->sourcefile~trltom_mod.f90 sourcefile~ltdir_ctlad_mod.f90 ltdir_ctlad_mod.F90 sourcefile~ltdir_ctlad_mod.f90->sourcefile~trmtol_mod.f90 sourcefile~ltdir_mod.f90~2 ltdir_mod.F90 sourcefile~ltdir_mod.f90~2->sourcefile~ledir_mod.f90 sourcefile~ltinv_ctl_mod.f90 ltinv_ctl_mod.F90 sourcefile~ltinv_ctl_mod.f90->sourcefile~ltinv_mod.f90 sourcefile~ltinv_ctl_mod.f90->sourcefile~trmtol_mod.f90 sourcefile~ltinv_ctlad_mod.f90 ltinv_ctlad_mod.F90 sourcefile~ltinv_ctlad_mod.f90->sourcefile~trltom_mod.f90 sourcefile~ltinv_mod.f90~2 ltinv_mod.F90 sourcefile~ltinv_mod.f90~2->sourcefile~leinv_mod.f90 sourcefile~trltom_pack_unpack.f90->sourcefile~ledir_mod.f90 sourcefile~trmtol_pack_unpack.f90->sourcefile~leinv_mod.f90 sourcefile~dir_trans.f90~2 dir_trans.F90 sourcefile~dir_trans.f90~2->sourcefile~dir_trans_ctl_mod.f90 sourcefile~dir_trans_ctl_mod.f90~2 dir_trans_ctl_mod.F90 sourcefile~dir_trans_ctl_mod.f90~2->sourcefile~ftdir_ctl_mod.f90 sourcefile~dir_trans_ctl_mod.f90~2->sourcefile~ltdir_ctl_mod.f90 sourcefile~dir_trans_ctlad_mod.f90 dir_trans_ctlad_mod.F90 sourcefile~dir_trans_ctlad_mod.f90->sourcefile~ftdir_ctlad_mod.f90 sourcefile~dir_trans_ctlad_mod.f90->sourcefile~ltdir_ctlad_mod.f90 sourcefile~gpnorm_trans.f90~2 gpnorm_trans.F90 sourcefile~gpnorm_trans.f90~2->sourcefile~gpnorm_trans_ctl_mod.f90 sourcefile~inv_trans.f90~2 inv_trans.F90 sourcefile~inv_trans.f90~2->sourcefile~inv_trans_ctl_mod.f90 sourcefile~inv_trans_ctl_mod.f90~2 inv_trans_ctl_mod.F90 sourcefile~inv_trans_ctl_mod.f90~2->sourcefile~ftinv_ctl_mod.f90 sourcefile~inv_trans_ctl_mod.f90~2->sourcefile~ltinv_ctl_mod.f90 sourcefile~inv_trans_ctlad_mod.f90 inv_trans_ctlad_mod.F90 sourcefile~inv_trans_ctlad_mod.f90->sourcefile~ftinv_ctlad_mod.f90 sourcefile~inv_trans_ctlad_mod.f90->sourcefile~ltinv_ctlad_mod.f90 sourcefile~dir_transad.f90~2 dir_transad.F90 sourcefile~dir_transad.f90~2->sourcefile~dir_trans_ctlad_mod.f90 sourcefile~inv_transad.f90~2 inv_transad.F90 sourcefile~inv_transad.f90~2->sourcefile~inv_trans_ctlad_mod.f90

Source Code

! (C) Copyright 2000- ECMWF.
! (C) Copyright 2000- Meteo-France.
! (C) Copyright 2022- NVIDIA.
! 
! This software is licensed under the terms of the Apache Licence Version 2.0
! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
! In applying this licence, ECMWF does not waive the privileges and immunities
! granted to it by virtue of its status as an intergovernmental organisation
! nor does it submit to any jurisdiction.
!

MODULE TPM_STATS

IMPLICIT NONE

CHARACTER(LEN=32) :: DESCRIPTIONS(100)

CONTAINS

SUBROUTINE GSTATS_LABEL_NVTX(KNUM,CTYPE,CDESC)
USE EC_PARKIND  ,ONLY : JPIM
IMPLICIT NONE
INTEGER(KIND=JPIM) :: KNUM
CHARACTER(*) CDESC
CHARACTER(*) CTYPE

IF (KNUM >= 400 .AND. KNUM < 500) THEN
  DESCRIPTIONS(KNUM-400+1) = CDESC
ENDIF
CALL GSTATS_LABEL(KNUM,CTYPE,CDESC)
END SUBROUTINE

SUBROUTINE GSTATS_NVTX(KNUM,KSWITCH)
  USE PARKIND_ECTRANS ,ONLY : JPIM, JPRBT
#if defined(__NVCOMPILER) 
  USE NVTX
#endif

  IMPLICIT NONE

  INTEGER(KIND=JPIM),INTENT(IN) :: KNUM
  INTEGER(KIND=JPIM),INTENT(IN) :: KSWITCH
  INTEGER(KIND=JPIM) :: ICOLOR

#if defined(__NVCOMPILER) 
  IF (KNUM >= 400 .AND. KNUM < 500) THEN
    IF (KSWITCH == 0) THEN
      ICOLOR=0
      IF (KNUM>=430) ICOLOR=10 !LB markers
      IF (KNUM==410) ICOLOR=13 !DIR COMPLETE
      IF (KNUM==420) ICOLOR=14 !INV COMPLETE
      IF (ICOLOR /= 0) THEN
        CALL NVTXSTARTRANGE(DESCRIPTIONS(KNUM-400+1),ICOLOR)
      ELSE
        CALL NVTXSTARTRANGE(DESCRIPTIONS(KNUM-400+1))
      ENDIF
    ELSEIF (KSWITCH == 1) THEN
      CALL NVTXENDRANGE()
    ENDIF
  ENDIF
  CALL GSTATS(KNUM,KSWITCH)
#endif
END SUBROUTINE GSTATS_NVTX

END MODULE TPM_STATS