- Timestamp:
- 2021-05-10T18:36:42+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/OCE/ZDF/zdfosm.F90
r14824 r14828 81 81 USE prtctl ! Print control 82 82 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 83 USE timing, ONLY : timing_start, timing_stop ! Timer84 83 ! 85 84 IMPLICIT NONE … … 402 401 REAL(wp), PARAMETER :: pp_large = -1e10_wp 403 402 ! 404 IF( ln_timing ) CALL timing_start('zdf_osm')405 !406 403 nbld(:,:) = 0 407 404 nmld(:,:) = 0 … … 1052 1049 END IF 1053 1050 END IF 1054 IF( ln_timing ) CALL timing_stop('zdf_osm') 1055 1051 ! 1056 1052 END SUBROUTINE zdf_osm 1057 1053 … … 1085 1081 REAL(wp) :: zthermal, zbeta ! Thermal/haline expansion/contraction coefficients 1086 1082 !!---------------------------------------------------------------------- 1087 !1088 IF( ln_timing ) CALL timing_start('zdf_osm_va')1089 1083 ! 1090 1084 ! Averages over depth of boundary layer … … 1159 1153 END IF 1160 1154 ! 1161 IF( ln_timing ) CALL timing_stop('zdf_osm_va')1162 !1163 1155 END SUBROUTINE zdf_osm_vertical_average 1164 1156 … … 1180 1172 INTEGER :: ji, jj ! Loop indices 1181 1173 REAL(wp) :: ztmp, zfwd ! Auxiliary variables 1182 !1183 IF( ln_timing ) CALL timing_start('zdf_osm_vr')1184 1174 ! 1185 1175 zfwd = 1.0_wp … … 1190 1180 pv(ji,jj) = pv(ji,jj) * scos_wind(ji,jj) - zfwd * ztmp * ssin_wind(ji,jj) 1191 1181 END_2D 1192 !1193 IF( ln_timing ) CALL timing_stop('zdf_osm_vr')1194 1182 ! 1195 1183 END SUBROUTINE zdf_osm_velocity_rotation_2d … … 1217 1205 REAL(wp) :: ztmp, zfwd ! Auxiliary variables 1218 1206 LOGICAL :: llkbot ! Auxiliary variable 1219 !1220 IF( ln_timing ) CALL timing_start('zdf_osm_vr')1221 1207 ! 1222 1208 zfwd = 1.0_wp … … 1242 1228 END_3D 1243 1229 ! 1244 IF( ln_timing ) CALL timing_stop('zdf_osm_vr')1245 !1246 1230 END SUBROUTINE zdf_osm_velocity_rotation_3d 1247 1231 … … 1282 1266 REAL(wp), PARAMETER :: pp_ek = 4.0_wp 1283 1267 REAL(wp), PARAMETER :: pp_large = -1e10_wp 1284 !1285 IF( ln_timing ) CALL timing_start('zdf_osm_os')1286 1268 ! 1287 1269 ! Initialise arrays … … 1405 1387 END_2D 1406 1388 ! 1407 IF( ln_timing ) CALL timing_stop('zdf_osm_os')1408 !1409 1389 END SUBROUTINE zdf_osm_osbl_state 1410 1390 … … 1427 1407 ! 1428 1408 REAL(wp), PARAMETER :: pp_large = -1e10_wp 1429 !1430 IF( ln_timing ) CALL timing_start('zdf_osm_eg')1431 1409 ! 1432 1410 pdtdz(:,:) = pp_large … … 1450 1428 END_2D 1451 1429 ! 1452 IF( ln_timing ) CALL timing_stop('zdf_osm_eg')1453 !1454 1430 END SUBROUTINE zdf_osm_external_gradients 1455 1431 … … 1482 1458 REAL(wp), PARAMETER :: pp_ddh = 2.5_wp, pp_ddh_2 = 3.5_wp ! Also in pycnocline_depth 1483 1459 REAL(wp), PARAMETER :: pp_large = -1e10_wp 1484 !1485 IF( ln_timing ) CALL timing_start('zdf_osm_cd')1486 1460 ! 1487 1461 pdhdt(:,:) = pp_large … … 1615 1589 END_2D 1616 1590 ! 1617 IF( ln_timing ) CALL timing_stop('zdf_osm_cd')1618 !1619 1591 END SUBROUTINE zdf_osm_calculate_dhdt 1620 1592 … … 1643 1615 REAL(wp) :: zhbl_s, zvel_max, zdb 1644 1616 REAL(wp) :: zthermal, zbeta 1645 !1646 IF( ln_timing ) CALL timing_start('zdf_osm_th')1647 1617 ! 1648 1618 DO_2D( 0, 0, 0, 0 ) … … 1718 1688 END_2D 1719 1689 ! 1720 IF( ln_timing ) CALL timing_stop('zdf_osm_th')1721 !1722 1690 END SUBROUTINE zdf_osm_timestep_hbl 1723 1691 … … 1753 1721 ! 1754 1722 REAL, PARAMETER :: pp_ddh = 2.5_wp, pp_ddh_2 = 3.5_wp ! Also in pycnocline_depth 1755 !1756 IF( ln_timing ) CALL timing_start('zdf_osm_pt')1757 1723 ! 1758 1724 DO_2D( 0, 0, 0, 0 ) … … 1887 1853 END_2D 1888 1854 ! 1889 IF( ln_timing ) CALL timing_stop('zdf_osm_pt')1890 !1891 1855 END SUBROUTINE zdf_osm_pycnocline_thickness 1892 1856 … … 1920 1884 REAL(wp), PARAMETER :: pp_gamma_b = 2.25_wp 1921 1885 REAL(wp), PARAMETER :: pp_large = -1e10_wp 1922 !1923 IF( ln_timing ) CALL timing_start('zdf_osm_pscp')1924 1886 ! 1925 1887 pdbdz(:,:,:) = pp_large … … 1997 1959 END IF 1998 1960 ! 1999 IF( ln_timing ) CALL timing_stop('zdf_osm_pscp')2000 !2001 1961 END SUBROUTINE zdf_osm_pycnocline_buoyancy_profiles 2002 1962 … … 2043 2003 REAL(wp), PARAMETER :: pp_dif_pyc = 0.15_wp, pp_vis_pyc = 0.142_wp 2044 2004 REAL(wp), PARAMETER :: pp_vispyc_shr = 0.15_wp 2045 !2046 IF( ln_timing ) CALL timing_start('zdf_osm_dv')2047 2005 ! 2048 2006 zb_coup(:,:) = 0.0_wp … … 2197 2155 END_2D 2198 2156 IF( iom_use("pb_coup") ) CALL iom_put( "pb_coup", tmask(:,:,1) * zb_coup(:,:) ) ! BBL-coupling velocity scale 2199 IF( ln_timing ) CALL timing_stop('zdf_osm_dv')2200 2157 ! 2201 2158 END SUBROUTINE zdf_osm_diffusivity_viscosity … … 2254 2211 REAL(wp) :: zdvdz_pyc ! v-shear across the pycnocline 2255 2212 !!---------------------------------------------------------------------- 2256 !2257 IF( ln_timing ) CALL timing_start('zdf_osm_ft')2258 2213 ! 2259 2214 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 2721 2676 END IF 2722 2677 ! 2723 IF( ln_timing ) CALL timing_stop('zdf_osm_ft')2724 !2725 2678 END SUBROUTINE zdf_osm_fgr_terms 2726 2679 … … 2762 2715 REAL(wp), DIMENSION(A2D(1)) :: zmld_midu 2763 2716 REAL(wp), DIMENSION(A2D(1)) :: zmld_midv 2764 !2765 IF( ln_timing ) CALL timing_start('zdf_osm_zhg')2766 2717 ! 2767 2718 ! == MLD used for MLE ==! … … 2822 2773 END_2D 2823 2774 ! 2824 IF( ln_timing ) CALL timing_stop('zdf_osm_zhg')2825 !2826 2775 END SUBROUTINE zdf_osm_zmld_horizontal_gradients 2827 2776 … … 2862 2811 REAL(wp) :: zpe_mle_ref 2863 2812 REAL(wp) :: zdbdz_mle_int 2864 !2865 IF( ln_timing ) CALL timing_start('zdf_osm_osf')2866 2813 ! 2867 2814 znd_param(A2D(0)) = 0.0_wp … … 2943 2890 END_2D 2944 2891 ! 2945 IF( ln_timing ) CALL timing_stop('zdf_osm_osf')2946 !2947 2892 END SUBROUTINE zdf_osm_osbl_state_fk 2948 2893 … … 2982 2927 REAL(wp) :: zbuoy 2983 2928 REAL(wp) :: zdb_mle 2984 !2985 IF( ln_timing ) CALL timing_start('zdf_osm_mp')2986 2929 ! 2987 2930 ! Calculate vertical buoyancy, heat and salinity fluxes due to MLE … … 3025 2968 END_2D 3026 2969 ! 3027 IF( ln_timing ) CALL timing_stop('zdf_osm_mp')3028 !3029 2970 END SUBROUTINE zdf_osm_mle_parameters 3030 2971 … … 3059 3000 & rn_osm_mle_rho_c, rn_osm_mle_thresh, rn_osm_mle_tau, ln_osm_hmle_limit, rn_osm_hmle_limit 3060 3001 ! 3061 IF( ln_timing ) CALL timing_start('zdf_osm_init')3062 3002 READ ( numnam_ref, namzdf_osm, IOSTAT = ios, ERR = 901) 3063 3003 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_osm in reference namelist' ) … … 3256 3196 IF ( ln_dia_osm ) osmdia2d(:,:) = 0.0_wp ! Initialise auxiliary array for diagnostic output 3257 3197 ! 3258 IF( ln_timing ) CALL timing_stop('zdf_osm_init')3259 !3260 3198 END SUBROUTINE zdf_osm_init 3261 3199 … … 3282 3220 REAL(wp) :: rho_c = 0.01_wp ! Density criterion for mixed layer depth 3283 3221 INTEGER, DIMENSION(jpi,jpj) :: imld_rst ! Level of mixed-layer depth (pycnocline top) 3284 !3285 IF( ln_timing ) CALL timing_start('osm_rst')3286 3222 ! 3287 3223 !!----------------------------------------------------------------------------- … … 3370 3306 WRITE(numout,*) ' ===>>>> : wn not in restart file, set to zero initially' 3371 3307 ! 3372 IF( ln_timing ) CALL timing_stop('osm_rst')3373 !3374 3308 END SUBROUTINE osm_rst 3375 3309 … … 3390 3324 INTEGER :: ji, jj, jk 3391 3325 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrdt, ztrds ! 3D workspace 3392 !3393 IF( ln_timing ) CALL timing_start('tra_osm')3394 3326 ! 3395 3327 IF ( kt == nit000 ) THEN … … 3429 3361 END IF 3430 3362 ! 3431 IF( ln_timing ) CALL timing_stop('tra_osm')3432 !3433 3363 END SUBROUTINE tra_osm 3434 3364 … … 3446 3376 INTEGER, INTENT(in) :: kt 3447 3377 ! 3448 IF( ln_timing ) CALL timing_start('trc_osm')3449 !3450 3378 WRITE(*,*) 'trc_osm: Not written yet', kt 3451 !3452 IF( ln_timing ) CALL timing_stop('trc_osm')3453 3379 ! 3454 3380 END SUBROUTINE trc_osm … … 3470 3396 INTEGER :: ji, jj, jk ! dummy loop indices 3471 3397 !!---------------------------------------------------------------------- 3472 !3473 IF( ln_timing ) CALL timing_start('dyn_osm')3474 3398 ! 3475 3399 IF ( kt == nit000 ) THEN … … 3490 3414 ! Code for saving tracer trends removed 3491 3415 ! 3492 IF( ln_timing ) CALL timing_stop('dyn_osm')3493 !3494 3416 END SUBROUTINE dyn_osm 3495 3417
Note: See TracChangeset
for help on using the changeset viewer.