Changeset 9104
- Timestamp:
- 2017-12-15T18:56:13+01:00 (5 years ago)
- 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 23 23 USE prtctl ! Print control 24 24 USE lib_mpp ! MPP library 25 USE timing ! Timing26 25 27 26 IMPLICIT NONE … … 82 81 REAL(wp), DIMENSION(jpi,jpj) :: zrau, zmsks, zmskf, zmskd1, zmskd2, zmskd3 83 82 !!---------------------------------------------------------------------- 84 !85 IF( ln_timing ) CALL timing_start('zdf_ddm')86 83 ! 87 84 ! ! =============== … … 170 167 ENDIF 171 168 ! 172 IF( ln_timing ) CALL timing_stop('zdf_ddm')173 !174 169 END SUBROUTINE zdf_ddm 175 170 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90
r9019 r9104 62 62 !!---------------------------------------------------------------------- 63 63 ! 64 IF( ln_timing ) CALL timing_start('zdf_evd')65 !66 64 IF( kt == nit000 ) THEN 67 65 IF(lwp) WRITE(numout,*) … … 121 119 IF( l_trdtra ) CALL trd_tra( kt, 'TRA', jp_tem, jptra_evd, zavt_evd ) 122 120 ! 123 IF( ln_timing ) CALL timing_stop('zdf_evd')124 !125 121 END SUBROUTINE zdf_evd 126 122 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
r9089 r9104 850 850 REWIND( numnam_ref ) ! Namelist namzdf_gls in reference namelist : Vertical eddy diffivity and viscosity using gls turbulent closure scheme 851 851 READ ( numnam_ref, namzdf_gls, IOSTAT = ios, ERR = 901) 852 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_gls in reference namelist', lwp )852 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_gls in reference namelist', lwp ) 853 853 854 854 REWIND( numnam_cfg ) ! Namelist namzdf_gls in configuration namelist : Vertical eddy diffivity and viscosity using gls turbulent closure scheme 855 855 READ ( numnam_cfg, namzdf_gls, IOSTAT = ios, ERR = 902 ) 856 902 IF( ios /= 0 )CALL ctl_nam ( ios , 'namzdf_gls in configuration namelist', lwp )856 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_gls in configuration namelist', lwp ) 857 857 IF(lwm) WRITE ( numond, namzdf_gls ) 858 858 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfiwm.F90
r9019 r9104 22 22 USE eosbn2 ! ocean equation of state 23 23 USE phycst ! physical constants 24 ! 24 25 USE prtctl ! Print control 25 26 USE in_out_manager ! I/O manager … … 27 28 USE lib_mpp ! MPP library 28 29 USE wrk_nemo ! work arrays 29 USE timing ! Timing30 30 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 31 31 … … 138 138 !!---------------------------------------------------------------------- 139 139 ! 140 IF( ln_timing ) CALL timing_start('zdf_iwm')141 !142 140 ! !* Set to zero the 1st and last vertical levels of appropriate variables 143 141 zemx_iwm (:,:,1) = 0._wp ; zemx_iwm (:,:,jpk) = 0._wp … … 370 368 IF(ln_ctl) CALL prt_ctl(tab3d_1=zav_wave , clinfo1=' iwm - av_wave: ', tab3d_2=avt, clinfo2=' avt: ', ovlap=1, kdim=jpk) 371 369 ! 372 IF( ln_timing ) CALL timing_stop('zdf_iwm')373 !374 370 END SUBROUTINE zdf_iwm 375 371 … … 409 405 !!---------------------------------------------------------------------- 410 406 ! 411 IF( ln_timing ) CALL timing_start('zdf_iwm_init')412 !413 407 REWIND( numnam_ref ) ! Namelist namzdf_iwm in reference namelist : Wave-driven mixing 414 408 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 )409 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_iwm in reference namelist', lwp ) 416 410 ! 417 411 REWIND( numnam_cfg ) ! Namelist namzdf_iwm in configuration namelist : Wave-driven mixing 418 412 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 )413 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_iwm in configuration namelist', lwp ) 420 414 IF(lwm) WRITE ( numond, namzdf_iwm_new ) 421 415 ! … … 479 473 ENDIF 480 474 ! 481 IF( ln_timing ) CALL timing_stop('zdf_iwm_init')482 !483 475 END SUBROUTINE zdf_iwm_init 484 476 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90
r9019 r9104 15 15 USE trc_oce , ONLY: l_offline ! ocean space and time domain variables 16 16 USE zdf_oce ! ocean vertical physics 17 ! 17 18 USE in_out_manager ! I/O manager 18 19 USE prtctl ! Print control … … 20 21 USE iom ! I/O library 21 22 USE lib_mpp ! MPP library 22 USE timing ! Timing23 23 24 24 IMPLICIT NONE … … 82 82 !!---------------------------------------------------------------------- 83 83 ! 84 IF( ln_timing ) CALL timing_start('zdf_mxl')85 !86 84 IF( kt == nit000 ) THEN 87 85 IF(lwp) WRITE(numout,*) … … 91 89 IF( zdf_mxl_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'zdf_mxl : unable to allocate arrays' ) 92 90 ENDIF 93 91 ! 94 92 ! w-level of the mixing and mixed layers 95 93 nmln(:,:) = nlb10 ! Initialization to the number of w ocean point … … 138 136 ENDIF 139 137 ENDIF 140 138 ! 141 139 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')144 140 ! 145 141 END SUBROUTINE zdf_mxl -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfosm.F90
r9091 r9104 1280 1280 END DO 1281 1281 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 1287 1282 ! 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. ) 1290 1285 DO jk = 2, jpkm1 1291 1286 DO jj = 2, jpjm1 … … 1303 1298 END DO 1304 1299 ! 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. ) 1310 1303 1311 1304 IF(ln_dia_osm) THEN … … 1374 1367 REWIND( numnam_ref ) ! Namelist namzdf_osm in reference namelist : Osmosis ML model 1375 1368 READ ( numnam_ref, namzdf_osm, IOSTAT = ios, ERR = 901) 1376 901 1369 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_osm in reference namelist', lwp ) 1377 1370 1378 1371 REWIND( numnam_cfg ) ! Namelist namzdf_tke in configuration namelist : Turbulent Kinetic Energy 1379 1372 READ ( numnam_cfg, namzdf_osm, IOSTAT = ios, ERR = 902 ) 1380 902 IF( ios /=0 ) CALL ctl_nam ( ios , 'namzdf_osm in configuration namelist', lwp )1373 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_osm in configuration namelist', lwp ) 1381 1374 IF(lwm) WRITE ( numond, namzdf_osm ) 1382 1375 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfphy.F90
r9019 r9104 83 83 !!---------------------------------------------------------------------- 84 84 ! 85 IF( ln_timing ) CALL timing_start('zdf_phy_init')86 !87 85 ! !== Namelist ==! 88 86 REWIND( numnam_ref ) ! Namelist namzdf in reference namelist : Vertical mixing parameters … … 92 90 REWIND( numnam_cfg ) ! Namelist namzdf in reference namelist : Vertical mixing parameters 93 91 READ ( numnam_cfg, namzdf, IOSTAT = ios, ERR = 902 ) 94 902 IF( ios /=0 ) CALL ctl_nam ( ios , 'namzdf in configuration namelist', lwp )92 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf in configuration namelist', lwp ) 95 93 IF(lwm) WRITE ( numond, namzdf ) 96 94 ! … … 206 204 !!gm move it here ? 207 205 ! 208 IF( ln_timing ) CALL timing_stop('zdf_phy_init')209 !210 206 END SUBROUTINE zdf_phy_init 211 207 … … 293 289 ! !* Lateral boundary conditions (sign unchanged) 294 290 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 301 296 ! 302 297 IF( l_zdfdrg ) THEN ! drag have been updated (non-linear cases) 303 IF( ln_isfcav ) CALL lbc_lnk( rCdU_top, 'T', 1. ) ! topdrag304 CALL lbc_lnk( rCdU_bot, 'T', 1. ) ! bottom drag298 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 305 300 ENDIF 306 301 ! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90
r9019 r9104 28 28 USE in_out_manager ! I/O manager 29 29 USE iom ! I/O manager library 30 USE timing ! Timing31 30 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 32 31 … … 72 71 !! ** Action : increase by 1 the nstop flag is setting problem encounter 73 72 !!---------------------------------------------------------------------- 74 INTEGER :: ji, jj, jk ! dummy loop indices75 INTEGER :: ios ! Local integer output status for namelist read73 INTEGER :: ji, jj, jk ! dummy loop indices 74 INTEGER :: ios ! Local integer output status for namelist read 76 75 !! 77 76 NAMELIST/namzdf_ric/ rn_avmri, rn_alp , nn_ric , rn_ekmfc, & … … 85 84 REWIND( numnam_cfg ) ! Namelist namzdf_ric in configuration namelist : Vertical diffusion Kz depends on Richardson number 86 85 READ ( numnam_cfg, namzdf_ric, IOSTAT = ios, ERR = 902 ) 87 902 IF( ios /=0 ) CALL ctl_nam ( ios , 'namzdf_ric in configuration namelist', lwp )86 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_ric in configuration namelist', lwp ) 88 87 IF(lwm) WRITE ( numond, namzdf_ric ) 89 88 ! … … 157 156 REAL(wp), DIMENSION(jpi,jpj) :: zh_ekm ! 2D workspace 158 157 !!---------------------------------------------------------------------- 159 !160 IF( ln_timing ) CALL timing_start('zdf_ric')161 158 ! 162 159 ! !== avm and avt = F(Richardson number) ==! … … 196 193 END DO 197 194 ENDIF 198 !199 IF( ln_timing ) CALL timing_stop('zdf_ric')200 195 ! 201 196 END SUBROUTINE zdf_ric -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfsh2.F90
r9019 r9104 15 15 USE in_out_manager ! I/O manager 16 16 USE lib_mpp ! MPP library 17 USE timing ! Timing18 17 19 18 IMPLICIT NONE … … 56 55 !!-------------------------------------------------------------------- 57 56 ! 58 IF( ln_timing ) CALL timing_start('zdf_sh2')59 !60 57 DO jk = 2, jpkm1 61 58 DO jj = 1, jpjm1 !* 2 x shear production at uw- and vw-points (energy conserving form) … … 77 74 END DO 78 75 ! 79 IF( ln_timing ) CALL timing_stop('zdf_sh2')80 !81 76 END SUBROUTINE zdf_sh2 82 77 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r9019 r9104 51 51 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 52 52 USE prtctl ! Print control 53 USE timing ! Timing54 53 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 55 54 … … 205 204 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpelc, zdiag, zd_up, zd_lw 206 205 !!-------------------------------------------------------------------- 207 !208 IF( ln_timing ) CALL timing_start('tke_tke')209 206 ! 210 207 zbbrau = rn_ebb / rau0 ! Local constant initialisation … … 430 427 END DO 431 428 ENDIF 432 !433 IF( ln_timing ) CALL timing_stop('tke_tke')434 429 ! 435 430 END SUBROUTINE tke_tke … … 483 478 !!-------------------------------------------------------------------- 484 479 ! 485 IF( ln_timing ) CALL timing_start('tke_avn')486 !487 480 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 488 481 ! ! Mixing length … … 625 618 ENDIF 626 619 ! 627 IF( ln_timing ) CALL timing_stop('tke_avn')628 !629 620 END SUBROUTINE tke_avn 630 621 … … 661 652 REWIND( numnam_cfg ) ! Namelist namzdf_tke in configuration namelist : Turbulent Kinetic Energy 662 653 READ ( numnam_cfg, namzdf_tke, IOSTAT = ios, ERR = 902 ) 663 902 IF( ios /=0 ) CALL ctl_nam ( ios , 'namzdf_tke in configuration namelist', lwp )654 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_tke in configuration namelist', lwp ) 664 655 IF(lwm) WRITE ( numond, namzdf_tke ) 665 656 ! … … 767 758 ! 768 759 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 ) 770 761 CALL iom_get( numror, jpdom_autoglo, 'avt_k', avt_k ) 771 762 CALL iom_get( numror, jpdom_autoglo, 'avm_k', avm_k )
Note: See TracChangeset
for help on using the changeset viewer.