New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 14037 for NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG/src/OCE/timing.F90 – NEMO

Ignore:
Timestamp:
2020-12-03T12:20:38+01:00 (3 years ago)
Author:
ayoung
Message:

Updated to trunk at 14020. Sette tests passed with change of results for configurations with non-linear ssh. Ticket #2506.

Location:
NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG

    • Property svn:externals
      •  

        old new  
        88 
        99# SETTE 
        10 ^/utils/CI/sette@13292        sette 
         10^/utils/CI/sette_wave@13990         sette 
  • NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG/src/OCE/timing.F90

    r12489 r14037  
    109109 
    110110      s_timer%l_tdone = .FALSE. 
    111       s_timer%niter = s_timer%niter + 1 
     111      IF( ntile == 0 .OR. ntile == 1 ) s_timer%niter = s_timer%niter + 1      ! All tiles count as one iteration 
    112112      s_timer%t_cpu = 0. 
    113113      s_timer%t_clock = 0. 
     
    213213  
    214214  
    215    SUBROUTINE timing_init 
     215   SUBROUTINE timing_init( clname ) 
    216216      !!---------------------------------------------------------------------- 
    217217      !!               ***  ROUTINE timing_init  *** 
     
    221221      REAL(wp) :: zdum 
    222222      LOGICAL :: ll_f 
    223               
     223      CHARACTER(len=*), INTENT(in), OPTIONAL :: clname 
     224      CHARACTER(len=20)                      :: cln 
     225 
     226      IF( PRESENT(clname) ) THEN   ;   cln = clname 
     227      ELSE                         ;   cln = 'timing.output' 
     228      ENDIF 
     229 
    224230      IF( ln_onefile ) THEN 
    225          IF( lwp) CALL ctl_opn( numtime, 'timing.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout,.TRUE., narea ) 
     231         IF( lwp) CALL ctl_opn( numtime, cln, 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout,.TRUE., narea ) 
    226232         lwriter = lwp 
    227233      ELSE 
    228          CALL ctl_opn( numtime, 'timing.output', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout,.FALSE., narea ) 
     234         CALL ctl_opn( numtime, cln, 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout,.FALSE., narea ) 
    229235         lwriter = .TRUE. 
    230236      ENDIF 
     
    418424         s_timer => s_timer_root 
    419425         DO WHILE ( ASSOCIATED( s_timer%next ) ) 
    420          IF (.NOT. ASSOCIATED(s_timer%next)) EXIT 
     426            IF (.NOT. ASSOCIATED(s_timer%next)) EXIT 
    421427            IF ( s_timer%tsum_clock < s_timer%next%tsum_clock ) THEN  
    422428               ALLOCATE(s_wrk) 
     
    426432               ll_ord = .FALSE. 
    427433               CYCLE             
    428             ENDIF            
    429          IF( ASSOCIATED(s_timer%next) ) s_timer => s_timer%next 
    430          END DO          
     434            ENDIF 
     435            IF( ASSOCIATED(s_timer%next) ) s_timer => s_timer%next 
     436         END DO 
    431437         IF( ll_ord ) EXIT 
    432438      END DO 
     
    441447      clfmt = '(1x,a,4x,f12.3,6x,f12.3,x,f12.3,2x,f12.3,6x,f7.3,2x,i9)' 
    442448      DO WHILE ( ASSOCIATED(s_timer) ) 
    443          WRITE(numtime,TRIM(clfmt))   s_timer%cname,   & 
    444          &   s_timer%tsum_clock,s_timer%tsum_clock*100./t_elaps(2),            & 
    445          &   s_timer%tsum_cpu  ,s_timer%tsum_cpu*100./t_cpu(2)    ,            & 
    446          &   s_timer%tsum_cpu/s_timer%tsum_clock, s_timer%niter 
     449         IF( s_timer%tsum_clock > 0._wp )                                & 
     450            WRITE(numtime,TRIM(clfmt))   s_timer%cname,                  & 
     451            &   s_timer%tsum_clock,s_timer%tsum_clock*100./t_elaps(2),   & 
     452            &   s_timer%tsum_cpu  ,s_timer%tsum_cpu*100./t_cpu(2)    ,   & 
     453            &   s_timer%tsum_cpu/s_timer%tsum_clock, s_timer%niter 
    447454         s_timer => s_timer%next 
    448455      END DO 
     
    607614         clfmt = '((A),E15.7,2x,f6.2,5x,f12.2,5x,f6.2,5x,f7.2,2x,f12.2,4x,f6.2,2x,f9.2)' 
    608615         DO WHILE ( ASSOCIATED(sl_timer_ave) ) 
    609             WRITE(numtime,TRIM(clfmt))   sl_timer_ave%cname(1:18),                            & 
    610             &   sl_timer_ave%tsum_clock,sl_timer_ave%tsum_clock*100.*jpnij/tot_etime,   & 
    611             &   sl_timer_ave%tsum_cpu  ,sl_timer_ave%tsum_cpu*100.*jpnij/tot_ctime  ,   & 
    612             &   sl_timer_ave%tsum_cpu/sl_timer_ave%tsum_clock,                          & 
    613             &   sl_timer_ave%tmax_clock*100.*jpnij/tot_etime,                           & 
    614             &   sl_timer_ave%tmin_clock*100.*jpnij/tot_etime,                           &                                                
    615             &   sl_timer_ave%niter/REAL(jpnij) 
     616            IF( sl_timer_ave%tsum_clock > 0. )                                             &  
     617               WRITE(numtime,TRIM(clfmt))   sl_timer_ave%cname(1:18),                      & 
     618               &   sl_timer_ave%tsum_clock,sl_timer_ave%tsum_clock*100.*jpnij/tot_etime,   & 
     619               &   sl_timer_ave%tsum_cpu  ,sl_timer_ave%tsum_cpu*100.*jpnij/tot_ctime  ,   & 
     620               &   sl_timer_ave%tsum_cpu/sl_timer_ave%tsum_clock,                          & 
     621               &   sl_timer_ave%tmax_clock*100.*jpnij/tot_etime,                           & 
     622               &   sl_timer_ave%tmin_clock*100.*jpnij/tot_etime,                           & 
     623               &   sl_timer_ave%niter/REAL(jpnij) 
    616624            sl_timer_ave => sl_timer_ave%next 
    617625         END DO 
Note: See TracChangeset for help on using the changeset viewer.