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 9104 for branches/2017 – NEMO

Changeset 9104 for branches/2017


Ignore:
Timestamp:
2017-12-15T18:56:13+01:00 (6 years ago)
Author:
gm
Message:

dev_merge_2017: ZDF: timing + lnk_multi + namelist cfg ctl

Location:
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90

    r9019 r9104  
    2323   USE prtctl         ! Print control 
    2424   USE lib_mpp        ! MPP library 
    25    USE timing         ! Timing 
    2625 
    2726   IMPLICIT NONE 
     
    8281      REAL(wp), DIMENSION(jpi,jpj) ::   zrau, zmsks, zmskf, zmskd1, zmskd2, zmskd3 
    8382      !!---------------------------------------------------------------------- 
    84       ! 
    85       IF( ln_timing )   CALL timing_start('zdf_ddm') 
    8683      ! 
    8784      !                                                ! =============== 
     
    170167      ENDIF 
    171168      ! 
    172       IF( ln_timing )   CALL timing_stop('zdf_ddm') 
    173       ! 
    174169   END SUBROUTINE zdf_ddm 
    175170    
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90

    r9019 r9104  
    6262      !!---------------------------------------------------------------------- 
    6363      ! 
    64       IF( ln_timing )   CALL timing_start('zdf_evd') 
    65       ! 
    6664      IF( kt == nit000 ) THEN 
    6765         IF(lwp) WRITE(numout,*) 
     
    121119      IF( l_trdtra ) CALL trd_tra( kt, 'TRA', jp_tem, jptra_evd, zavt_evd ) 
    122120      ! 
    123       IF( ln_timing )   CALL timing_stop('zdf_evd') 
    124       ! 
    125121   END SUBROUTINE zdf_evd 
    126122 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90

    r9089 r9104  
    850850      REWIND( numnam_ref )              ! Namelist namzdf_gls in reference namelist : Vertical eddy diffivity and viscosity using gls turbulent closure scheme 
    851851      READ  ( numnam_ref, namzdf_gls, IOSTAT = ios, ERR = 901) 
    852 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_gls in reference namelist', lwp ) 
     852901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namzdf_gls in reference namelist', lwp ) 
    853853 
    854854      REWIND( numnam_cfg )              ! Namelist namzdf_gls in configuration namelist : Vertical eddy diffivity and viscosity using gls turbulent closure scheme 
    855855      READ  ( numnam_cfg, namzdf_gls, IOSTAT = ios, ERR = 902 ) 
    856 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_gls in configuration namelist', lwp ) 
     856902   IF( ios >  0 )  CALL ctl_nam ( ios , 'namzdf_gls in configuration namelist', lwp ) 
    857857      IF(lwm) WRITE ( numond, namzdf_gls ) 
    858858 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfiwm.F90

    r9019 r9104  
    2222   USE eosbn2         ! ocean equation of state 
    2323   USE phycst         ! physical constants 
     24   ! 
    2425   USE prtctl         ! Print control 
    2526   USE in_out_manager ! I/O manager 
     
    2728   USE lib_mpp        ! MPP library 
    2829   USE wrk_nemo       ! work arrays 
    29    USE timing         ! Timing 
    3030   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    3131 
     
    138138      !!---------------------------------------------------------------------- 
    139139      ! 
    140       IF( ln_timing )   CALL timing_start('zdf_iwm') 
    141       ! 
    142140      !                       !* Set to zero the 1st and last vertical levels of appropriate variables 
    143141      zemx_iwm (:,:,1) = 0._wp   ;   zemx_iwm (:,:,jpk) = 0._wp 
     
    370368      IF(ln_ctl)   CALL prt_ctl(tab3d_1=zav_wave , clinfo1=' iwm - av_wave: ', tab3d_2=avt, clinfo2=' avt: ', ovlap=1, kdim=jpk) 
    371369      ! 
    372       IF( ln_timing )   CALL timing_stop('zdf_iwm') 
    373       ! 
    374370   END SUBROUTINE zdf_iwm 
    375371 
     
    409405      !!---------------------------------------------------------------------- 
    410406      ! 
    411       IF( ln_timing )   CALL timing_start('zdf_iwm_init') 
    412       ! 
    413407      REWIND( numnam_ref )              ! Namelist namzdf_iwm in reference namelist : Wave-driven mixing 
    414408      READ  ( numnam_ref, namzdf_iwm_new, IOSTAT = ios, ERR = 901) 
    415 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_iwm in reference namelist', lwp ) 
     409901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namzdf_iwm in reference namelist', lwp ) 
    416410      ! 
    417411      REWIND( numnam_cfg )              ! Namelist namzdf_iwm in configuration namelist : Wave-driven mixing 
    418412      READ  ( numnam_cfg, namzdf_iwm_new, IOSTAT = ios, ERR = 902 ) 
    419 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_iwm in configuration namelist', lwp ) 
     413902   IF( ios >  0 )  CALL ctl_nam ( ios , 'namzdf_iwm in configuration namelist', lwp ) 
    420414      IF(lwm) WRITE ( numond, namzdf_iwm_new ) 
    421415      ! 
     
    479473      ENDIF 
    480474      ! 
    481       IF( ln_timing )   CALL timing_stop('zdf_iwm_init') 
    482       ! 
    483475   END SUBROUTINE zdf_iwm_init 
    484476 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90

    r9019 r9104  
    1515   USE trc_oce  , ONLY: l_offline         ! ocean space and time domain variables 
    1616   USE zdf_oce        ! ocean vertical physics 
     17   ! 
    1718   USE in_out_manager ! I/O manager 
    1819   USE prtctl         ! Print control 
     
    2021   USE iom            ! I/O library 
    2122   USE lib_mpp        ! MPP library 
    22    USE timing         ! Timing 
    2323 
    2424   IMPLICIT NONE 
     
    8282      !!---------------------------------------------------------------------- 
    8383      ! 
    84       IF( ln_timing )   CALL timing_start('zdf_mxl') 
    85       ! 
    8684      IF( kt == nit000 ) THEN 
    8785         IF(lwp) WRITE(numout,*) 
     
    9189         IF( zdf_mxl_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'zdf_mxl : unable to allocate arrays' ) 
    9290      ENDIF 
    93  
     91      ! 
    9492      ! w-level of the mixing and mixed layers 
    9593      nmln(:,:)  = nlb10               ! Initialization to the number of w ocean point 
     
    138136         ENDIF 
    139137      ENDIF 
    140        
     138      ! 
    141139      IF(ln_ctl)   CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ', ovlap=1 ) 
    142       ! 
    143       IF( ln_timing )   CALL timing_stop('zdf_mxl') 
    144140      ! 
    145141   END SUBROUTINE zdf_mxl 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfosm.F90

    r9091 r9104  
    12801280         END DO 
    12811281     END DO 
    1282  
    1283  
    1284      CALL lbc_lnk( p_avt, 'W', 1. )                      ! Lateral boundary conditions on p_avt  (sign unchanged) 
    1285      CALL lbc_lnk( p_avm, 'W', 1. )                      ! Lateral boundary conditions on p_avm  (sign unchanged) 
    1286  
    12871282      ! Lateral boundary conditions on ghamu and ghamv, currently on W-grid  (sign unchanged), needed to caclulate gham[uv] on u and v grids 
    1288       CALL lbc_lnk( ghamu(:,:,:), 'W', 1. ) 
    1289       CALL lbc_lnk( ghamv(:,:,:), 'W', 1. ) 
     1283     CALL lbc_lnk_multi( p_avt, 'W', 1. , p_avm, 'W', 1.   & 
     1284      &                  ghamu, 'W', 1. , ghamv, 'W', 1. ) 
    12901285       DO jk = 2, jpkm1 
    12911286           DO jj = 2, jpjm1 
     
    13031298        END DO 
    13041299        ! Lateral boundary conditions on final outputs for gham[ts],  on W-grid  (sign unchanged) 
    1305        CALL lbc_lnk( ghamt(:,:,:), 'W', 1. ) 
    1306        CALL lbc_lnk( ghams(:,:,:), 'W', 1. ) 
    1307       ! Lateral boundary conditions on final outputs for gham[uv],  on [UV]-grid  (sign unchanged) 
    1308        CALL lbc_lnk( ghamu(:,:,:), 'U', 1. ) 
    1309        CALL lbc_lnk( ghamv(:,:,:), 'V', 1. ) 
     1300        ! Lateral boundary conditions on final outputs for gham[uv],  on [UV]-grid  (sign unchanged) 
     1301        CALL lbc_lnk_multi( ghamt, 'W', 1. , ghams, 'W', 1.   & 
     1302         &                  ghamu, 'U', 1. , ghamv, 'V', 1. ) 
    13101303 
    13111304       IF(ln_dia_osm) THEN 
     
    13741367     REWIND( numnam_ref )              ! Namelist namzdf_osm in reference namelist : Osmosis ML model 
    13751368     READ  ( numnam_ref, namzdf_osm, IOSTAT = ios, ERR = 901) 
    1376 901    IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_osm in reference namelist', lwp ) 
     1369901  IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_osm in reference namelist', lwp ) 
    13771370 
    13781371     REWIND( numnam_cfg )              ! Namelist namzdf_tke in configuration namelist : Turbulent Kinetic Energy 
    13791372     READ  ( numnam_cfg, namzdf_osm, IOSTAT = ios, ERR = 902 ) 
    1380 902    IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_osm in configuration namelist', lwp ) 
     1373902  IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_osm in configuration namelist', lwp ) 
    13811374     IF(lwm) WRITE ( numond, namzdf_osm ) 
    13821375 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfphy.F90

    r9019 r9104  
    8383      !!---------------------------------------------------------------------- 
    8484      ! 
    85       IF( ln_timing )   CALL timing_start('zdf_phy_init') 
    86       ! 
    8785      !                           !==  Namelist  ==! 
    8886      REWIND( numnam_ref )              ! Namelist namzdf in reference namelist : Vertical mixing parameters 
     
    9290      REWIND( numnam_cfg )              ! Namelist namzdf in reference namelist : Vertical mixing parameters 
    9391      READ  ( numnam_cfg, namzdf, IOSTAT = ios, ERR = 902 ) 
    94 902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namzdf in configuration namelist', lwp ) 
     92902   IF( ios > 0 )   CALL ctl_nam ( ios , 'namzdf in configuration namelist', lwp ) 
    9593      IF(lwm)   WRITE ( numond, namzdf ) 
    9694      ! 
     
    206204      !!gm move it here ? 
    207205      ! 
    208       IF( ln_timing )   CALL timing_stop('zdf_phy_init') 
    209       ! 
    210206   END SUBROUTINE zdf_phy_init 
    211207 
     
    293289      !                                         !* Lateral boundary conditions (sign unchanged) 
    294290      IF( l_zdfsh2 ) THEN 
    295          CALL lbc_lnk( avm_k, 'W', 1. )               ! needed to compute the shear production term 
    296          CALL lbc_lnk( avt_k, 'W', 1. )               !!gm a priori useless ==>> to be tested 
    297       ENDIF 
    298       CALL lbc_lnk( avm  , 'W', 1. )                  ! needed to compute avm at u- and v-points 
    299       CALL lbc_lnk( avt  , 'W', 1. )                  !!gm  a priori only avm_k and avm are required 
    300       CALL lbc_lnk( avs  , 'W', 1. )                  !!gm  for calculation, kept here for output only 
     291         CALL lbc_lnk_multi( avm_k, 'W', 1. , avt_k, 'W', 1.   & 
     292            &                avm  , 'W', 1. , avt  , 'W', 1. , avs , 'W', 1. ) 
     293      ELSE 
     294         CALL lbc_lnk( avm  , 'W', 1. , avt  , 'W', 1. , avs , 'W', 1. ) 
     295      ENDIF 
    301296      ! 
    302297      IF( l_zdfdrg ) THEN     ! drag  have been updated (non-linear cases) 
    303          IF( ln_isfcav )   CALL lbc_lnk( rCdU_top, 'T', 1. )   ! top    drag 
    304                            CALL lbc_lnk( rCdU_bot, 'T', 1. )   ! bottom drag 
     298         IF( ln_isfcav ) THEN   ;  CALL lbc_lnk_multi( rCdU_top, 'T', 1. , rCdU_bot, 'T', 1. )   ! top & bot drag 
     299         ELSE                   ;  CALL lbc_lnk      ( rCdU_bot, 'T', 1. )                       ! bottom drag only 
    305300      ENDIF 
    306301      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90

    r9019 r9104  
    2828   USE in_out_manager ! I/O manager 
    2929   USE iom            ! I/O manager library 
    30    USE timing         ! Timing 
    3130   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    3231 
     
    7271      !! ** Action  :   increase by 1 the nstop flag is setting problem encounter 
    7372      !!---------------------------------------------------------------------- 
    74       INTEGER :: ji, jj, jk   ! dummy loop indices 
    75       INTEGER ::   ios        ! Local integer output status for namelist read 
     73      INTEGER ::   ji, jj, jk   ! dummy loop indices 
     74      INTEGER ::   ios          ! Local integer output status for namelist read 
    7675      !! 
    7776      NAMELIST/namzdf_ric/ rn_avmri, rn_alp   , nn_ric  , rn_ekmfc,  & 
     
    8584      REWIND( numnam_cfg )              ! Namelist namzdf_ric in configuration namelist : Vertical diffusion Kz depends on Richardson number 
    8685      READ  ( numnam_cfg, namzdf_ric, IOSTAT = ios, ERR = 902 ) 
    87 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_ric in configuration namelist', lwp ) 
     86902   IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_ric in configuration namelist', lwp ) 
    8887      IF(lwm) WRITE ( numond, namzdf_ric ) 
    8988      ! 
     
    157156      REAL(wp), DIMENSION(jpi,jpj) ::   zh_ekm  ! 2D workspace 
    158157      !!---------------------------------------------------------------------- 
    159       ! 
    160       IF( ln_timing )   CALL timing_start('zdf_ric') 
    161158      ! 
    162159      !                       !==  avm and avt = F(Richardson number)  ==! 
     
    196193         END DO 
    197194      ENDIF 
    198       ! 
    199       IF( ln_timing )   CALL timing_stop('zdf_ric') 
    200195      ! 
    201196   END SUBROUTINE zdf_ric 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfsh2.F90

    r9019 r9104  
    1515   USE in_out_manager ! I/O manager 
    1616   USE lib_mpp        ! MPP library 
    17    USE timing         ! Timing 
    1817 
    1918   IMPLICIT NONE 
     
    5655      !!-------------------------------------------------------------------- 
    5756      ! 
    58       IF( ln_timing )   CALL timing_start('zdf_sh2') 
    59       ! 
    6057      DO jk = 2, jpkm1 
    6158         DO jj = 1, jpjm1        !* 2 x shear production at uw- and vw-points (energy conserving form) 
     
    7774      END DO  
    7875      ! 
    79       IF( ln_timing )   CALL timing_stop('zdf_sh2')      
    80       ! 
    8176   END SUBROUTINE zdf_sh2 
    8277 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r9019 r9104  
    5151   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    5252   USE prtctl         ! Print control 
    53    USE timing         ! Timing 
    5453   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    5554 
     
    205204      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zpelc, zdiag, zd_up, zd_lw 
    206205      !!-------------------------------------------------------------------- 
    207       ! 
    208       IF( ln_timing )   CALL timing_start('tke_tke') 
    209206      ! 
    210207      zbbrau = rn_ebb / rau0       ! Local constant initialisation 
     
    430427         END DO 
    431428      ENDIF 
    432       ! 
    433       IF( ln_timing )   CALL timing_stop('tke_tke') 
    434429      ! 
    435430   END SUBROUTINE tke_tke 
     
    483478      !!-------------------------------------------------------------------- 
    484479      ! 
    485       IF( ln_timing )   CALL timing_start('tke_avn') 
    486       ! 
    487480      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    488481      !                     !  Mixing length 
     
    625618      ENDIF 
    626619      ! 
    627       IF( ln_timing )   CALL timing_stop('tke_avn') 
    628       ! 
    629620   END SUBROUTINE tke_avn 
    630621 
     
    661652      REWIND( numnam_cfg )              ! Namelist namzdf_tke in configuration namelist : Turbulent Kinetic Energy 
    662653      READ  ( numnam_cfg, namzdf_tke, IOSTAT = ios, ERR = 902 ) 
    663 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_tke in configuration namelist', lwp ) 
     654902   IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_tke in configuration namelist', lwp ) 
    664655      IF(lwm) WRITE ( numond, namzdf_tke ) 
    665656      ! 
     
    767758            ! 
    768759            IF( MIN( id1, id2, id3, id4 ) > 0 ) THEN      ! fields exist 
    769                CALL iom_get( numror, jpdom_autoglo, 'en', en ) 
     760               CALL iom_get( numror, jpdom_autoglo, 'en'   , en    ) 
    770761               CALL iom_get( numror, jpdom_autoglo, 'avt_k', avt_k ) 
    771762               CALL iom_get( numror, jpdom_autoglo, 'avm_k', avm_k ) 
Note: See TracChangeset for help on using the changeset viewer.