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 9772 for NEMO/branches/2018/dev_r9759_HPC09_ESIWACE/src/OCE/nemogcm.F90 – NEMO

Ignore:
Timestamp:
2018-06-08T14:52:48+02:00 (6 years ago)
Author:
smasson
Message:

dev_r9759_HPC09_ESIWACE: add benchmark features

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r9759_HPC09_ESIWACE/src/OCE/nemogcm.F90

    r9656 r9772  
    9999   CHARACTER(lc) ::   cform_aaa="( /, 'AAAAAAAA', / ) "     ! flag for output listing 
    100100 
     101#if defined key_mpp_mpi 
     102   INCLUDE 'mpif.h' 
     103#endif 
     104 
    101105   !!---------------------------------------------------------------------- 
    102106   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    121125      !!---------------------------------------------------------------------- 
    122126      INTEGER ::   istp   ! time step index 
     127      INTEGER ::   i, ik, id, iend, iseq   ! time step index 
     128      REAL(wp) ::   tic   
     129 
    123130      !!---------------------------------------------------------------------- 
    124131      ! 
     
    178185         ! 
    179186         DO WHILE( istp <= nitend .AND. nstop == 0 ) 
    180             CALL stp        ( istp )  
     187#if   defined key_mpp_mpi 
     188            ncom_stp = istp 
     189#endif 
     190            IF ( istp == ( nit000 + 1 ) ) tic = MPI_Wtime() 
     191            IF ( ln_comm_only .AND. istp >= ( nit000  + 1 )) THEN 
     192               DO i = 1, n_sequence 
     193                 IF ( icomm_sequence(i,1) == 1 ) THEN 
     194                    SELECT CASE ( icomm_sequence(i,2) ) 
     195                      CASE (1) 
     196                      CALL lbc_lnk_multi( un(:,:,1)  , 'U', -1. ) 
     197                      CASE (2) 
     198                      CALL lbc_lnk_multi( un(:,:,1)  , 'U', -1., vn(:,:,1)  , 'V', -1.) 
     199                      CASE (3) 
     200                      CALL lbc_lnk_multi( un(:,:,1)  , 'U', -1., vn(:,:,1)  , 'V', -1., ua(:,:,1), 'U', -1.) 
     201                      CASE (4) 
     202                      CALL lbc_lnk_multi( un(:,:,1)  , 'U', -1., vn(:,:,1)  , 'V', -1., ua(:,:,1), 'U', -1., va(:,:,1)  , 'V', -1.) 
     203                      CASE (5) 
     204                      CALL lbc_lnk_multi( un(:,:,1)  , 'U', -1., vn(:,:,1)  , 'V', -1., ua(:,:,1), 'U', -1., va(:,:,1)  , 'V', -1., ub(:,:,1)  , 'U', -1.) 
     205                      CASE (6) 
     206                      CALL lbc_lnk_multi( un(:,:,1)  , 'U', -1., vn(:,:,1)  , 'V', -1., ua(:,:,1), 'U', -1., va(:,:,1)  , 'V', -1., ub(:,:,1)  , 'U', -1., vb(:,:,1)  , 'V', -1. ) 
     207                    END SELECT 
     208                 ELSE 
     209                    SELECT CASE ( icomm_sequence(i,2) ) 
     210                      CASE (1) 
     211                      CALL lbc_lnk_multi( un  , 'U', -1. ) 
     212                      CASE (2) 
     213                      CALL lbc_lnk_multi( un  , 'U', -1., vn  , 'V', -1.) 
     214                      CASE (3) 
     215                      CALL lbc_lnk_multi( un  , 'U', -1., vn  , 'V', -1., ua, 'U', -1.) 
     216                      CASE (4) 
     217                      CALL lbc_lnk_multi( un  , 'U', -1., vn  , 'V', -1., ua, 'U', -1., va  , 'V', -1.) 
     218                      CASE (5) 
     219                      CALL lbc_lnk_multi( un  , 'U', -1., vn  , 'V', -1., ua, 'U', -1., va  , 'V', -1., ub  , 'U', -1.) 
     220                      CASE (6) 
     221                      CALL lbc_lnk_multi( un  , 'U', -1., vn  , 'V', -1., ua, 'U', -1., va  , 'V', -1., ub  , 'U', -1., vb  , 'V', -1. ) 
     222                    END SELECT 
     223                 ENDIF 
     224               ENDDO 
     225            ELSE 
     226              CALL stp        ( istp )  
     227            ENDIF 
    181228            istp = istp + 1 
     229            IF ( istp == ( nitend - 1) ) tic = MPI_Wtime() - tic 
    182230         END DO 
     231         WRITE(6,'(A20,F11.6,A15,I8)') 'timeloop duration : ',tic,' on MPI rank : ', narea 
    183232         ! 
    184233      ELSE                                            !==  diurnal SST time-steeping only  ==! 
     
    596645      ! 
    597646      ierr =        oce_alloc    ()    ! ocean  
    598       ierr = ierr + dia_wri_alloc() 
     647      !EM useless alloc for BENCH 
     648      !EM ierr = ierr + dia_wri_alloc() 
    599649      ierr = ierr + dom_oce_alloc()    ! ocean domain 
    600650      ierr = ierr + zdf_oce_alloc()    ! ocean vertical physics 
Note: See TracChangeset for help on using the changeset viewer.