Changeset 14913
- Timestamp:
- 2021-05-27T13:18:26+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg
r14856 r14913 42 42 &namtile ! parameters of the tiling 43 43 !----------------------------------------------------------------------- 44 ln_tile = .false. ! Use tiling (T) or not (F)45 nn_ltile_i = 10 ! Length of tiles in i46 nn_ltile_j = 10 ! Length of tiles in j47 44 / 48 45 !----------------------------------------------------------------------- -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/cfgs/SHARED/namelist_ref
r14822 r14913 99 99 !----------------------------------------------------------------------- 100 100 ln_tile = .false. ! Use tiling (T) or not (F) 101 nn_ltile_i = 10! Length of tiles in i101 nn_ltile_i = 99999 ! Length of tiles in i 102 102 nn_ltile_j = 10 ! Length of tiles in j 103 103 / -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/ICE/icestp.F90
r14072 r14913 460 460 qcn_ice (ji,jj,jl) = 0._wp ! conductive flux (ln_cndflx=T & ln_cndemule=T) 461 461 qtr_ice_bot(ji,jj,jl) = 0._wp ! part of solar radiation transmitted through the ice needed at least for outputs 462 qml_ice (ji,jj,jl) = 0._wp ! surface melt heat flux 462 463 ! Melt pond surface melt diagnostics (mv - more efficient: grouped into one water volume flux) 463 464 dh_i_sum_2d(ji,jj,jl) = 0._wp -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/ICE/icethd.F90
r14822 r14913 536 536 CALL tab_1d_2d( npti, nptidx(1:npti), qcn_ice_bot_1d(1:npti), qcn_ice_bot(:,:,kl) ) 537 537 CALL tab_1d_2d( npti, nptidx(1:npti), qcn_ice_top_1d(1:npti), qcn_ice_top(:,:,kl) ) 538 CALL tab_1d_2d( npti, nptidx(1:npti), qml_ice_1d (1:npti), qml_ice (:,:,kl) ) 538 539 ! extensive variables 539 540 CALL tab_1d_2d( npti, nptidx(1:npti), v_i_1d (1:npti), v_i (:,:,kl) ) -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/OCE/ZDF/zdfiwm.F90
r14856 r14913 144 144 ! Set to zero the 1st and last vertical levels of appropriate variables 145 145 IF( iom_use("emix_iwm") ) THEN 146 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 147 zemx_iwm (ji,jj,1) = 0._wp ; zemx_iwm (ji,jj,jpk) = 0._wp 148 END_2D 146 zemx_iwm(:,:,:) = 0._wp 149 147 ENDIF 150 148 IF( iom_use("av_ratio") ) THEN 151 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 152 zav_ratio(ji,jj,1) = 0._wp ; zav_ratio(ji,jj,jpk) = 0._wp 153 END_2D 149 zav_ratio(:,:,:) = 0._wp 154 150 ENDIF 155 151 IF( iom_use("av_wave") .OR. sn_cfctl%l_prtctl ) THEN 156 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 157 zav_wave (ji,jj,1) = 0._wp ; zav_wave (ji,jj,jpk) = 0._wp 158 END_2D 152 zav_wave(:,:,:) = 0._wp 159 153 ENDIF 160 154 ! … … 366 360 IF( iom_use("bflx_iwm") .OR. iom_use("pcmap_iwm") ) THEN 367 361 ALLOCATE( z2d(A2D(nn_hls)) , z3d(A2D(nn_hls),jpk) ) 362 ! Initialisation for iom_put 368 363 z2d(:,:) = 0._wp ; z3d(:,:,:) = 0._wp 369 370 ! Initialisation for iom_put371 DO_2D( 0, 0, 0, 0 )372 z3d(ji,jj,1) = 0._wp ; z3d(ji,jj,jpk) = 0._wp373 END_2D374 364 375 365 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 376 366 z3d(ji,jj,jk) = MAX( 0._wp, rn2(ji,jj,jk) ) * zav_wave(ji,jj,jk) 377 END_3D378 DO_2D( 0, 0, 0, 0 )379 z2d(ji,jj) = 0._wp380 END_2D381 DO_3D( 0, 0, 0, 0, 2, jpkm1 )382 367 z2d(ji,jj) = z2d(ji,jj) + e3w(ji,jj,jk,Kmm) * z3d(ji,jj,jk) * wmask(ji,jj,jk) 383 368 END_3D -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/OCE/ZDF/zdfosm.F90
r14912 r14913 264 264 zdf_osm_alloc = zdf_osm_alloc + ierr 265 265 ! 266 ALLOCATE( etmean(A2D( (nn_hls-1)),jpk), dh(jpi,jpj), r1_ft(A2D((nn_hls-1))), STAT=ierr )266 ALLOCATE( etmean(A2D(nn_hls-1),jpk), dh(jpi,jpj), r1_ft(A2D(nn_hls-1)), STAT=ierr ) 267 267 zdf_osm_alloc = zdf_osm_alloc + ierr 268 268 ! 269 ALLOCATE( nbld(jpi,jpj), nmld(A2D( (nn_hls-1))), STAT=ierr )269 ALLOCATE( nbld(jpi,jpj), nmld(A2D(nn_hls-1)), STAT=ierr ) 270 270 zdf_osm_alloc = zdf_osm_alloc + ierr 271 271 ! 272 ALLOCATE( n_ddh(A2D( (nn_hls-1))), STAT=ierr )272 ALLOCATE( n_ddh(A2D(nn_hls-1)), STAT=ierr ) 273 273 zdf_osm_alloc = zdf_osm_alloc + ierr 274 274 ! 275 ALLOCATE( l_conv(A2D( (nn_hls-1))), l_shear(A2D((nn_hls-1))), l_coup(A2D((nn_hls-1))), l_pyc(A2D((nn_hls-1))), &276 & l_flux(A2D( (nn_hls-1))), l_mle(A2D((nn_hls-1))),STAT=ierr )275 ALLOCATE( l_conv(A2D(nn_hls-1)), l_shear(A2D(nn_hls-1)), l_coup(A2D(nn_hls-1)), l_pyc(A2D(nn_hls-1)), & 276 & l_flux(A2D(nn_hls-1)), l_mle(A2D(nn_hls-1)), STAT=ierr ) 277 277 zdf_osm_alloc = zdf_osm_alloc + ierr 278 278 ! 279 ALLOCATE( swth0(A2D( (nn_hls-1))), sws0(A2D((nn_hls-1))), swb0(A2D((nn_hls-1))), suw0(A2D((nn_hls-1))), &280 & sustar(A2D( (nn_hls-1))), scos_wind(A2D((nn_hls-1))), ssin_wind(A2D((nn_hls-1))), swthav(A2D((nn_hls-1))), &281 & swsav(A2D( (nn_hls-1))), swbav(A2D((nn_hls-1))), sustke(A2D((nn_hls-1))), dstokes(A2D((nn_hls-1))), &282 & swstrl(A2D( (nn_hls-1))), swstrc(A2D((nn_hls-1))), sla(A2D((nn_hls-1))), svstr(A2D((nn_hls-1))), &283 & shol(A2D( (nn_hls-1))), STAT=ierr )279 ALLOCATE( swth0(A2D(nn_hls-1)), sws0(A2D(nn_hls-1)), swb0(A2D(nn_hls-1)), suw0(A2D(nn_hls-1)), & 280 & sustar(A2D(nn_hls-1)), scos_wind(A2D(nn_hls-1)), ssin_wind(A2D(nn_hls-1)), swthav(A2D(nn_hls-1)), & 281 & swsav(A2D(nn_hls-1)), swbav(A2D(nn_hls-1)), sustke(A2D(nn_hls-1)), dstokes(A2D(nn_hls-1)), & 282 & swstrl(A2D(nn_hls-1)), swstrc(A2D(nn_hls-1)), sla(A2D(nn_hls-1)), svstr(A2D(nn_hls-1)), & 283 & shol(A2D(nn_hls-1)), STAT=ierr ) 284 284 zdf_osm_alloc = zdf_osm_alloc + ierr 285 285 ! … … 359 359 REAL(wp) :: zesh2, zri, zfri ! Interior Richardson mixing 360 360 !! Scales 361 REAL(wp), DIMENSION(A2D( (nn_hls-1))):: zrad0 ! Surface solar temperature flux (deg m/s)362 REAL(wp), DIMENSION(A2D( (nn_hls-1))):: zradh ! Radiative flux at bl base (Buoyancy units)363 REAL(wp) 364 REAL(wp) 365 REAL(wp), DIMENSION(A2D( (nn_hls-1))):: zwb0tot ! Total surface buoyancy flux including insolation366 REAL(wp), DIMENSION(A2D( (nn_hls-1))):: zwb_ent ! Buoyancy entrainment flux367 REAL(wp), DIMENSION(A2D( (nn_hls-1))):: zwb_min368 REAL(wp), DIMENSION(A2D( (nn_hls-1))):: zwb_fk_b ! MLE buoyancy flux averaged over OSBL369 REAL(wp), DIMENSION(A2D( (nn_hls-1))):: zwb_fk ! Max MLE buoyancy flux370 REAL(wp), DIMENSION(A2D( (nn_hls-1))):: zdiff_mle ! Extra MLE vertical diff371 REAL(wp), DIMENSION(A2D( (nn_hls-1))):: zvel_mle ! Velocity scale for dhdt with stable ML and FK361 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zrad0 ! Surface solar temperature flux (deg m/s) 362 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zradh ! Radiative flux at bl base (Buoyancy units) 363 REAL(wp) :: zradav ! Radiative flux, bl average (Buoyancy Units) 364 REAL(wp) :: zvw0 ! Surface v-momentum flux 365 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zwb0tot ! Total surface buoyancy flux including insolation 366 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zwb_ent ! Buoyancy entrainment flux 367 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zwb_min 368 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zwb_fk_b ! MLE buoyancy flux averaged over OSBL 369 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zwb_fk ! Max MLE buoyancy flux 370 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zdiff_mle ! Extra MLE vertical diff 371 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zvel_mle ! Velocity scale for dhdt with stable ML and FK 372 372 !! Mixed-layer variables 373 INTEGER, DIMENSION(A2D( (nn_hls-1))) :: jk_nlev! Number of levels374 INTEGER, DIMENSION(A2D( (nn_hls-1))) :: jk_ext ! Offset for external level375 !! 376 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zhbl ! BL depth - grid377 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zhml ! ML depth - grid378 !! 379 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zhmle ! MLE depth - grid380 REAL(wp), DIMENSION(A2D(nn_hls)) 381 !! 382 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zdh ! Pycnocline depth - grid383 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zdhdt ! BL depth tendency384 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zdtdz_bl_ext, zdsdz_bl_ext ! External temperature/salinity gradients385 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zdbdz_bl_ext ! External buoyancy gradients386 REAL(wp), DIMENSION(A2D(nn_hls)) 387 !! 388 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zdbds_mle ! Magnitude of horizontal buoyancy gradient373 INTEGER, DIMENSION(A2D(nn_hls-1)) :: jk_nlev ! Number of levels 374 INTEGER, DIMENSION(A2D(nn_hls-1)) :: jk_ext ! Offset for external level 375 !! 376 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zhbl ! BL depth - grid 377 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zhml ! ML depth - grid 378 !! 379 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zhmle ! MLE depth - grid 380 REAL(wp), DIMENSION(A2D(nn_hls)) :: zmld ! ML depth on grid 381 !! 382 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zdh ! Pycnocline depth - grid 383 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zdhdt ! BL depth tendency 384 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zdtdz_bl_ext, zdsdz_bl_ext ! External temperature/salinity gradients 385 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zdbdz_bl_ext ! External buoyancy gradients 386 REAL(wp), DIMENSION(A2D(nn_hls)) :: zdtdx, zdtdy, zdsdx, zdsdy ! Horizontal gradients for Fox-Kemper parametrization 387 !! 388 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zdbds_mle ! Magnitude of horizontal buoyancy gradient 389 389 !! Flux-gradient relationship variables 390 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zshear ! Shear production391 !! 392 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zhbl_t ! Holds boundary layer depth updated by full timestep390 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zshear ! Shear production 391 !! 392 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zhbl_t ! Holds boundary layer depth updated by full timestep 393 393 !! For calculating Ri#-dependent mixing 394 394 REAL(wp), DIMENSION(A2D(nn_hls)) :: z2du ! u-shear^2 … … 399 399 REAL(wp) :: zz0, zz1, zfac 400 400 REAL(wp) :: zus_x, zus_y ! Temporary Stokes drift 401 REAL(wp), DIMENSION(A2D( (nn_hls-1)),jpk):: zviscos ! Viscosity402 REAL(wp), DIMENSION(A2D( (nn_hls-1)),jpk):: zdiffut ! t-diffusivity401 REAL(wp), DIMENSION(A2D(nn_hls-1),jpk) :: zviscos ! Viscosity 402 REAL(wp), DIMENSION(A2D(nn_hls-1),jpk) :: zdiffut ! t-diffusivity 403 403 REAL(wp) :: zabsstke 404 404 REAL(wp) :: zsqrtpi, z_two_thirds, zthickness … … 644 644 ! 645 645 ! Averages over well-mixed and boundary layer, note BL averages use jk_ext=2 everywhere 646 jk_nlev(:,:) = nbld(A2D( (nn_hls-1)))646 jk_nlev(:,:) = nbld(A2D(nn_hls-1)) 647 647 jk_ext(:,:) = 1 ! ag 19/03 648 648 CALL zdf_osm_vertical_average( Kbb, Kmm, jk_nlev, av_t_bl, av_s_bl, & 649 649 & av_b_bl, av_u_bl, av_v_bl, jk_ext, av_dt_bl, & 650 650 & av_ds_bl, av_db_bl, av_du_bl, av_dv_bl ) 651 jk_nlev(:,:) = nmld(A2D( (nn_hls-1))) - 1652 jk_ext(:,:) = nbld(A2D( (nn_hls-1))) - nmld(A2D((nn_hls-1))) + jk_ext(:,:) + 1 ! ag 19/03651 jk_nlev(:,:) = nmld(A2D(nn_hls-1)) - 1 652 jk_ext(:,:) = nbld(A2D(nn_hls-1)) - nmld(A2D(nn_hls-1)) + jk_ext(:,:) + 1 ! ag 19/03 653 653 CALL zdf_osm_vertical_average( Kbb, Kmm, jk_nlev, av_t_ml, av_s_ml, & 654 654 & av_b_ml, av_u_ml, av_v_ml, jk_ext, av_dt_ml, & … … 672 672 IF ( hmle(ji,jj) >= gdepw(ji,jj,jk,Kmm) ) mld_prof(ji,jj) = MIN( mbkt(ji,jj), jk) 673 673 END_3D 674 jk_nlev(:,:) = mld_prof(A2D( (nn_hls-1)))674 jk_nlev(:,:) = mld_prof(A2D(nn_hls-1)) 675 675 CALL zdf_osm_vertical_average( Kbb, Kmm, jk_nlev, av_t_mle, av_s_mle, & 676 676 & av_b_mle, av_u_mle, av_v_mle ) … … 700 700 ! 701 701 !! External gradient below BL needed both with and w/o FK 702 jk_ext(:,:) = nbld(A2D( (nn_hls-1))) + 1702 jk_ext(:,:) = nbld(A2D(nn_hls-1)) + 1 703 703 CALL zdf_osm_external_gradients( Kmm, jk_ext, zdtdz_bl_ext, zdsdz_bl_ext, zdbdz_bl_ext ) ! ag 19/03 704 704 ! … … 721 721 ! 722 722 ! Recalculate bl averages using jk_ext & ml averages .... note no rotation of u & v here.. 723 jk_nlev(:,:) = nbld(A2D( (nn_hls-1)))723 jk_nlev(:,:) = nbld(A2D(nn_hls-1)) 724 724 jk_ext(:,:) = 1 ! ag 19/03 725 725 CALL zdf_osm_vertical_average( Kbb, Kmm, jk_nlev, av_t_bl, av_s_bl, & 726 726 & av_b_bl, av_u_bl, av_v_bl, jk_ext, av_dt_bl, & 727 727 & av_ds_bl, av_db_bl, av_du_bl, av_dv_bl ) 728 jk_nlev(:,:) = nmld(A2D( (nn_hls-1))) - 1729 jk_ext(:,:) = nbld(A2D( (nn_hls-1))) - nmld(A2D((nn_hls-1))) + jk_ext(:,:) + 1 ! ag 19/03728 jk_nlev(:,:) = nmld(A2D(nn_hls-1)) - 1 729 jk_ext(:,:) = nbld(A2D(nn_hls-1)) - nmld(A2D(nn_hls-1)) + jk_ext(:,:) + 1 ! ag 19/03 730 730 CALL zdf_osm_vertical_average( Kbb, Kmm, jk_nlev, av_t_ml, av_s_ml, & 731 731 & av_b_ml, av_u_ml, av_v_ml, jk_ext, av_dt_ml, & … … 768 768 ! 769 769 ! Recalculate BL averages and differences using new BL depth 770 jk_nlev(:,:) = nbld(A2D( (nn_hls-1)))770 jk_nlev(:,:) = nbld(A2D(nn_hls-1)) 771 771 jk_ext(:,:) = 1 ! ag 19/03 772 772 CALL zdf_osm_vertical_average( Kbb, Kmm, jk_nlev, av_t_bl, av_s_bl, & … … 800 800 ! jk_ext = nbld - nmld + 1 801 801 ! Recalculate ML averages and differences using new ML depth 802 jk_nlev(:,:) = nmld(A2D( (nn_hls-1))) - 1803 jk_ext(:,:) = nbld(A2D( (nn_hls-1))) - nmld(A2D((nn_hls-1))) + jk_ext(:,:) + 1 ! ag 19/03802 jk_nlev(:,:) = nmld(A2D(nn_hls-1)) - 1 803 jk_ext(:,:) = nbld(A2D(nn_hls-1)) - nmld(A2D(nn_hls-1)) + jk_ext(:,:) + 1 ! ag 19/03 804 804 CALL zdf_osm_vertical_average( Kbb, Kmm, jk_nlev, av_t_ml, av_s_ml, & 805 805 & av_b_ml, av_u_ml, av_v_ml, jk_ext, av_dt_ml, & 806 806 & av_ds_ml, av_db_ml, av_du_ml, av_dv_ml ) 807 807 ! 808 jk_ext(:,:) = nbld(A2D( (nn_hls-1))) + 1808 jk_ext(:,:) = nbld(A2D(nn_hls-1)) + 1 809 809 CALL zdf_osm_external_gradients( Kmm, jk_ext, zdtdz_bl_ext, zdsdz_bl_ext, zdbdz_bl_ext ) 810 810 ! Rotate mean currents and changes onto wind aligned co-ordinates … … 834 834 ! 835 835 ! Rotate non-gradient velocity terms back to model reference frame 836 jk_nlev(:,:) = nbld(A2D( (nn_hls-1)))836 jk_nlev(:,:) = nbld(A2D(nn_hls-1)) 837 837 CALL zdf_osm_velocity_rotation( ghamu, ghamv, .FALSE., 2, jk_nlev ) 838 838 ! … … 1038 1038 !! knlev+kp_ext 1039 1039 !!---------------------------------------------------------------------- 1040 INTEGER, 1041 INTEGER, DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: knlev ! Number of levels to average over.1042 REAL(wp), DIMENSION(jpi,jpj), 1043 REAL(wp), DIMENSION(jpi,jpj), 1044 REAL(wp), DIMENSION(jpi,jpj), 1045 INTEGER, DIMENSION(A2D( (nn_hls-1))), INTENT(in ), OPTIONAL :: kp_ext ! External-level offsets1046 REAL(wp), DIMENSION(jpi,jpj), 1047 REAL(wp), DIMENSION(jpi,jpj), 1048 REAL(wp), DIMENSION(jpi,jpj), 1049 REAL(wp), DIMENSION(jpi,jpj), 1040 INTEGER, INTENT(in ) :: Kbb, Kmm ! Ocean time-level indices 1041 INTEGER, DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: knlev ! Number of levels to average over. 1042 REAL(wp), DIMENSION(jpi,jpj), INTENT( out) :: pt, ps ! Average temperature and salinity 1043 REAL(wp), DIMENSION(jpi,jpj), INTENT( out) :: pb ! Average buoyancy 1044 REAL(wp), DIMENSION(jpi,jpj), INTENT( out) :: pu, pv ! Average current components 1045 INTEGER, DIMENSION(A2D(nn_hls-1)), INTENT(in ), OPTIONAL :: kp_ext ! External-level offsets 1046 REAL(wp), DIMENSION(jpi,jpj), INTENT( out), OPTIONAL :: pdt ! Difference between average temperature, 1047 REAL(wp), DIMENSION(jpi,jpj), INTENT( out), OPTIONAL :: pds ! salinity, 1048 REAL(wp), DIMENSION(jpi,jpj), INTENT( out), OPTIONAL :: pdb ! buoyancy, and 1049 REAL(wp), DIMENSION(jpi,jpj), INTENT( out), OPTIONAL :: pdu, pdv ! velocity components and the OSBL 1050 1050 !! 1051 1051 INTEGER :: jk, jkflt, jkmax, ji, jj ! Loop indices 1052 1052 INTEGER :: ibld_ext ! External-layer index 1053 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zthick ! Layer thickness1053 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zthick ! Layer thickness 1054 1054 REAL(wp) :: zthermal ! Thermal expansion coefficient 1055 1055 REAL(wp) :: zbeta ! Haline contraction coefficient … … 1174 1174 !! 1175 1175 !!---------------------------------------------------------------------- 1176 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) 1177 LOGICAL, OPTIONAL, INTENT(in ) 1178 INTEGER, OPTIONAL, INTENT(in ) 1179 INTEGER, OPTIONAL, INTENT(in ), DIMENSION(A2D( (nn_hls-1))) :: knlev ! Array of maximum depth indices1176 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pu, pv ! Components of current 1177 LOGICAL, OPTIONAL, INTENT(in ) :: fwd ! Forward (default) or reverse rotation 1178 INTEGER, OPTIONAL, INTENT(in ) :: ktop ! Minimum depth index 1179 INTEGER, OPTIONAL, INTENT(in ), DIMENSION(A2D(nn_hls-1)) :: knlev ! Array of maximum depth indices 1180 1180 !! 1181 1181 INTEGER :: ji, jj, jk, jktop, jkmax ! Loop indices … … 1221 1221 !! 1222 1222 !!---------------------------------------------------------------------- 1223 INTEGER, 1224 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT( out) :: pwb_ent ! Buoyancy fluxes at base1225 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT( out) :: pwb_min ! of well-mixed layer1226 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT( out) :: pshear ! Production of TKE due to shear across the pycnocline1227 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phbl ! BL depth1228 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phml ! ML depth1229 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdh ! Pycnocline depth1223 INTEGER, INTENT(in ) :: Kmm ! Ocean time-level index 1224 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT( out) :: pwb_ent ! Buoyancy fluxes at base 1225 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT( out) :: pwb_min ! of well-mixed layer 1226 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT( out) :: pshear ! Production of TKE due to shear across the pycnocline 1227 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phbl ! BL depth 1228 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phml ! ML depth 1229 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdh ! Pycnocline depth 1230 1230 !! 1231 1231 INTEGER :: jj, ji ! Loop indices 1232 1232 !! 1233 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zekman1234 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zri_p, zri_b ! Richardson numbers1235 REAL(wp) 1236 REAL(wp) 1233 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zekman 1234 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zri_p, zri_b ! Richardson numbers 1235 REAL(wp) :: zshear_u, zshear_v, zwb_shr 1236 REAL(wp) :: zwcor, zrf_conv, zrf_shear, zrf_langmuir, zr_stokes 1237 1237 !! 1238 1238 REAL(wp), PARAMETER :: pp_a_shr = 0.4_wp, pp_b_shr = 6.5_wp, pp_a_wb_s = 0.8_wp … … 1269 1269 pshear(ji,jj) = 0.0_wp 1270 1270 END_2D 1271 zekman(:,:) = EXP( -1.0_wp * pp_ek * ABS( ff_t(A2D( (nn_hls-1))) ) * phbl(A2D((nn_hls-1))) / &1272 & MAX( sustar(A2D( (nn_hls-1))), 1.e-8 ) )1271 zekman(:,:) = EXP( -1.0_wp * pp_ek * ABS( ff_t(A2D(nn_hls-1)) ) * phbl(A2D(nn_hls-1)) / & 1272 & MAX( sustar(A2D(nn_hls-1)), 1.e-8 ) ) 1273 1273 ! 1274 1274 DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) … … 1384 1384 !! 1385 1385 !!---------------------------------------------------------------------- 1386 INTEGER, 1387 INTEGER, DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: kbase ! OSBL base layer index1388 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT( out) :: pdtdz, pdsdz ! External gradients of temperature, salinity1389 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT( out) :: pdbdz ! and buoyancy1386 INTEGER, INTENT(in ) :: Kmm ! Ocean time-level index 1387 INTEGER, DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: kbase ! OSBL base layer index 1388 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT( out) :: pdtdz, pdsdz ! External gradients of temperature, salinity 1389 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT( out) :: pdbdz ! and buoyancy 1390 1390 !! 1391 1391 INTEGER :: ji, jj, jkb, jkb1 … … 1429 1429 !! 1430 1430 !!---------------------------------------------------------------------- 1431 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT( out) :: pdhdt ! Rate of change of hbl1432 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phbl ! BL depth1433 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdh ! Pycnocline depth1434 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux1435 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_min1436 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdbdz_bl_ext ! External buoyancy gradients1437 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT( out) :: pwb_fk_b ! MLE buoyancy flux averaged over OSBL1438 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_fk ! Max MLE buoyancy flux1439 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pvel_mle ! Vvelocity scale for dhdt with stable ML and FK1431 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT( out) :: pdhdt ! Rate of change of hbl 1432 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phbl ! BL depth 1433 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdh ! Pycnocline depth 1434 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux 1435 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_min 1436 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdbdz_bl_ext ! External buoyancy gradients 1437 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT( out) :: pwb_fk_b ! MLE buoyancy flux averaged over OSBL 1438 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_fk ! Max MLE buoyancy flux 1439 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pvel_mle ! Vvelocity scale for dhdt with stable ML and FK 1440 1440 !! 1441 1441 INTEGER :: jj, ji … … 1598 1598 !! 1599 1599 !!---------------------------------------------------------------------- 1600 INTEGER, 1601 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(inout) :: pdhdt ! Rates of change of hbl1602 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(inout) :: phbl ! BL depth1603 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phbl_t ! BL depth1604 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux1605 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_fk_b ! MLE buoyancy flux averaged over OSBL1600 INTEGER, INTENT(in ) :: Kmm ! Ocean time-level index 1601 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(inout) :: pdhdt ! Rates of change of hbl 1602 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(inout) :: phbl ! BL depth 1603 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phbl_t ! BL depth 1604 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux 1605 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_fk_b ! MLE buoyancy flux averaged over OSBL 1606 1606 !! 1607 1607 INTEGER :: jk, jj, ji, jm … … 1698 1698 !! 1699 1699 !!---------------------------------------------------------------------- 1700 INTEGER, 1701 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(inout) :: pdh ! Pycnocline thickness1702 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(inout) :: phml ! ML depth1703 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdhdt ! BL depth tendency1704 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phbl ! BL depth1705 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux1706 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdbdz_bl_ext ! External buoyancy gradients1707 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_fk_b ! MLE buoyancy flux averaged over OSBL1700 INTEGER, INTENT(in ) :: Kmm ! Ocean time-level index 1701 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(inout) :: pdh ! Pycnocline thickness 1702 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(inout) :: phml ! ML depth 1703 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdhdt ! BL depth tendency 1704 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phbl ! BL depth 1705 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux 1706 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdbdz_bl_ext ! External buoyancy gradients 1707 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_fk_b ! MLE buoyancy flux averaged over OSBL 1708 1708 !! 1709 1709 INTEGER :: jj, ji … … 1858 1858 !! 1859 1859 !!---------------------------------------------------------------------- 1860 INTEGER, 1861 INTEGER, DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: kp_ext ! External-level offsets1862 REAL(wp), DIMENSION(A2D( (nn_hls-1)),jpk), INTENT( out) :: pdbdz ! Gradients in the pycnocline1863 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT( out) :: palpha1864 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdh ! Pycnocline thickness1865 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phbl ! BL depth1866 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdbdz_bl_ext ! External buoyancy gradients1867 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phml ! ML depth1868 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdhdt ! Rates of change of hbl1860 INTEGER, INTENT(in ) :: Kmm ! Ocean time-level index 1861 INTEGER, DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: kp_ext ! External-level offsets 1862 REAL(wp), DIMENSION(A2D(nn_hls-1),jpk), INTENT( out) :: pdbdz ! Gradients in the pycnocline 1863 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT( out) :: palpha 1864 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdh ! Pycnocline thickness 1865 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phbl ! BL depth 1866 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdbdz_bl_ext ! External buoyancy gradients 1867 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phml ! ML depth 1868 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdhdt ! Rates of change of hbl 1869 1869 !! 1870 1870 INTEGER :: jk, jj, ji … … 1969 1969 !! 1970 1970 !!---------------------------------------------------------------------- 1971 INTEGER, 1972 REAL(wp), DIMENSION(A2D( (nn_hls-1)),jpk), INTENT(inout) :: pdiffut ! t-diffusivity1973 REAL(wp), DIMENSION(A2D( (nn_hls-1)),jpk), INTENT(inout) :: pviscos ! Viscosity1974 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phbl ! BL depth1975 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phml ! ML depth1976 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdh ! Pycnocline depth1977 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdhdt ! BL depth tendency1978 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pshear ! Shear production1979 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux1980 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_min1971 INTEGER, INTENT(in ) :: Kbb, Kmm ! Ocean time-level indices 1972 REAL(wp), DIMENSION(A2D(nn_hls-1),jpk), INTENT(inout) :: pdiffut ! t-diffusivity 1973 REAL(wp), DIMENSION(A2D(nn_hls-1),jpk), INTENT(inout) :: pviscos ! Viscosity 1974 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phbl ! BL depth 1975 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phml ! ML depth 1976 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdh ! Pycnocline depth 1977 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdhdt ! BL depth tendency 1978 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pshear ! Shear production 1979 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux 1980 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_min 1981 1981 !! 1982 1982 INTEGER :: ji, jj, jk ! Loop indices 1983 1983 !! Scales used to calculate eddy diffusivity and viscosity profiles 1984 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zdifml_sc, zvisml_sc1985 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zdifpyc_n_sc, zdifpyc_s_sc1986 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zvispyc_n_sc, zvispyc_s_sc1987 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zbeta_d_sc, zbeta_v_sc1988 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zb_coup, zc_coup_vis, zc_coup_dif1984 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zdifml_sc, zvisml_sc 1985 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zdifpyc_n_sc, zdifpyc_s_sc 1986 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zvispyc_n_sc, zvispyc_s_sc 1987 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zbeta_d_sc, zbeta_v_sc 1988 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zb_coup, zc_coup_vis, zc_coup_dif 1989 1989 !! 1990 1990 REAL(wp) :: zvel_sc_pyc, zvel_sc_ml, zstab_fac, zz_b … … 2164 2164 !! 2165 2165 !!---------------------------------------------------------------------- 2166 INTEGER, 2167 INTEGER, DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: kp_ext ! Offset for external level2168 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phbl ! BL depth2169 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phml ! ML depth2170 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdh ! Pycnocline depth2171 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdhdt ! BL depth tendency2172 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pshear ! Shear production2173 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdtdz_bl_ext ! External temperature gradients2174 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdsdz_bl_ext ! External salinity gradients2175 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdbdz_bl_ext ! External buoyancy gradients2176 REAL(wp), DIMENSION(A2D( (nn_hls-1)),jpk), INTENT(in ) :: pdiffut ! t-diffusivity2177 REAL(wp), DIMENSION(A2D( (nn_hls-1)),jpk), INTENT(in ) :: pviscos ! Viscosity2178 !! 2179 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zalpha_pyc !2180 REAL(wp), DIMENSION(A2D( (nn_hls-1)),jpk) :: zdbdz_pyc ! Parametrised gradient of buoyancy in the pycnocline2166 INTEGER, INTENT(in ) :: Kmm ! Time-level index 2167 INTEGER, DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: kp_ext ! Offset for external level 2168 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phbl ! BL depth 2169 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phml ! ML depth 2170 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdh ! Pycnocline depth 2171 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdhdt ! BL depth tendency 2172 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pshear ! Shear production 2173 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdtdz_bl_ext ! External temperature gradients 2174 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdsdz_bl_ext ! External salinity gradients 2175 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdbdz_bl_ext ! External buoyancy gradients 2176 REAL(wp), DIMENSION(A2D(nn_hls-1),jpk), INTENT(in ) :: pdiffut ! t-diffusivity 2177 REAL(wp), DIMENSION(A2D(nn_hls-1),jpk), INTENT(in ) :: pviscos ! Viscosity 2178 !! 2179 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zalpha_pyc ! 2180 REAL(wp), DIMENSION(A2D(nn_hls-1),jpk) :: zdbdz_pyc ! Parametrised gradient of buoyancy in the pycnocline 2181 2181 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: z3ddz_pyc_1, z3ddz_pyc_2 ! Pycnocline gradient/shear profiles 2182 2182 !! 2183 INTEGER 2184 INTEGER 2185 REAL(wp) 2186 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zsc_wth_1,zsc_ws_1 ! Temporary scales2187 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zsc_uw_1, zsc_uw_2 ! Temporary scales2188 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zsc_vw_1, zsc_vw_2 ! Temporary scales2189 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: ztau_sc_u ! Dissipation timescale at base of WML2190 REAL(wp) 2191 REAL(wp) 2192 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: za_cubic, zb_cubic ! Coefficients in cubic polynomial specifying2193 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zc_cubic, zd_cubic ! diffusivity in pycnocline2194 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zwt_pyc_sc_1, zws_pyc_sc_1 !2195 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zzeta_pyc !2196 REAL(wp) 2197 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zuw_bse,zvw_bse ! Momentum, heat, and salinity fluxes2198 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zwth_ent,zws_ent ! at the top of the pycnocline2199 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: zsc_wth_pyc, zsc_ws_pyc ! Scales for pycnocline transport term2200 REAL(wp) 2201 REAL(wp) 2202 !! 2203 REAL(wp) 2204 REAL(wp) 2205 !! 2206 REAL(wp) 2207 !! 2208 REAL(wp) 2209 REAL(wp) 2183 INTEGER :: ji, jj, jk, jkm_bld, jkf_mld, jkm_mld ! Loop indices 2184 INTEGER :: istat ! Memory allocation status 2185 REAL(wp) :: zznd_d, zznd_ml, zznd_pyc, znd ! Temporary non-dimensional depths 2186 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zsc_wth_1,zsc_ws_1 ! Temporary scales 2187 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zsc_uw_1, zsc_uw_2 ! Temporary scales 2188 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zsc_vw_1, zsc_vw_2 ! Temporary scales 2189 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: ztau_sc_u ! Dissipation timescale at base of WML 2190 REAL(wp) :: zbuoy_pyc_sc, zdelta_pyc ! 2191 REAL(wp) :: zl_c,zl_l,zl_eps ! Used to calculate turbulence length scale 2192 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: za_cubic, zb_cubic ! Coefficients in cubic polynomial specifying 2193 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zc_cubic, zd_cubic ! diffusivity in pycnocline 2194 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zwt_pyc_sc_1, zws_pyc_sc_1 ! 2195 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zzeta_pyc ! 2196 REAL(wp) :: zomega, zvw_max ! 2197 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zuw_bse,zvw_bse ! Momentum, heat, and salinity fluxes 2198 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zwth_ent,zws_ent ! at the top of the pycnocline 2199 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: zsc_wth_pyc, zsc_ws_pyc ! Scales for pycnocline transport term 2200 REAL(wp) :: ztmp ! 2201 REAL(wp) :: ztgrad, zsgrad, zbgrad ! Variables used to calculate pycnocline 2202 !! ! gradients 2203 REAL(wp) :: zugrad, zvgrad ! Variables for calculating pycnocline shear 2204 REAL(wp) :: zdtdz_pyc ! Parametrized gradient of temperature in 2205 !! ! pycnocline 2206 REAL(wp) :: zdsdz_pyc ! Parametrised gradient of salinity in 2207 !! ! pycnocline 2208 REAL(wp) :: zdudz_pyc ! u-shear across the pycnocline 2209 REAL(wp) :: zdvdz_pyc ! v-shear across the pycnocline 2210 2210 !!---------------------------------------------------------------------- 2211 2211 ! … … 2229 2229 ! Stokes term in scalar flux, flux-gradient relationship 2230 2230 ! ------------------------------------------------------ 2231 WHERE ( l_conv(A2D( (nn_hls-1))) )2232 zsc_wth_1(:,:) = swstrl(A2D( (nn_hls-1)))**3 * swth0(A2D((nn_hls-1))) / &2233 & ( svstr(A2D( (nn_hls-1)))**3 + 0.5_wp * swstrc(A2D((nn_hls-1)))**3 + epsln )2234 zsc_ws_1(:,:) = swstrl(A2D( (nn_hls-1)))**3 * sws0(A2D((nn_hls-1))) / &2235 & ( svstr(A2D( (nn_hls-1)))**3 + 0.5_wp * swstrc(A2D((nn_hls-1)))**3 + epsln )2231 WHERE ( l_conv(A2D(nn_hls-1)) ) 2232 zsc_wth_1(:,:) = swstrl(A2D(nn_hls-1))**3 * swth0(A2D(nn_hls-1)) / & 2233 & ( svstr(A2D(nn_hls-1))**3 + 0.5_wp * swstrc(A2D(nn_hls-1))**3 + epsln ) 2234 zsc_ws_1(:,:) = swstrl(A2D(nn_hls-1))**3 * sws0(A2D(nn_hls-1)) / & 2235 & ( svstr(A2D(nn_hls-1))**3 + 0.5_wp * swstrc(A2D(nn_hls-1))**3 + epsln ) 2236 2236 ELSEWHERE 2237 zsc_wth_1(:,:) = 2.0_wp * swthav(A2D( (nn_hls-1)))2238 zsc_ws_1(:,:) = 2.0_wp * swsav(A2D( (nn_hls-1)))2237 zsc_wth_1(:,:) = 2.0_wp * swthav(A2D(nn_hls-1)) 2238 zsc_ws_1(:,:) = 2.0_wp * swsav(A2D(nn_hls-1)) 2239 2239 ENDWHERE 2240 2240 DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, MAX( jkm_mld, jkm_bld ) ) … … 2266 2266 ! svstr since term needs to go to zero as swstrl goes to zero) 2267 2267 ! --------------------------------------------------------------------- 2268 WHERE ( l_conv(A2D( (nn_hls-1))) )2269 zsc_uw_1(:,:) = ( swstrl(A2D( (nn_hls-1)))**3 + &2270 & 0.5_wp * swstrc(A2D( (nn_hls-1)))**3 )**pthird * sustke(A2D((nn_hls-1))) / &2271 & MAX( ( 1.0_wp - 1.0_wp * 6.5_wp * sla(A2D( (nn_hls-1)))**( 8.0_wp / 3.0_wp ) ), 0.2_wp )2272 zsc_uw_2(:,:) = ( swstrl(A2D( (nn_hls-1)))**3 + &2273 & 0.5_wp * swstrc(A2D( (nn_hls-1)))**3 )**pthird * sustke(A2D((nn_hls-1))) / &2274 & MIN( sla(A2D( (nn_hls-1)))**( 8.0_wp / 3.0_wp ) + epsln, 0.12_wp )2275 zsc_vw_1(:,:) = ff_t(A2D( (nn_hls-1))) * phml(A2D((nn_hls-1))) * sustke(A2D((nn_hls-1)))**3 * &2276 & MIN( sla(A2D( (nn_hls-1)))**( 8.0_wp / 3.0_wp ), 0.12_wp ) / &2277 & ( ( svstr(A2D( (nn_hls-1)))**3 + 0.5_wp * swstrc(A2D((nn_hls-1)))**3 )**( 2.0_wp / 3.0_wp ) + epsln )2268 WHERE ( l_conv(A2D(nn_hls-1)) ) 2269 zsc_uw_1(:,:) = ( swstrl(A2D(nn_hls-1))**3 + & 2270 & 0.5_wp * swstrc(A2D(nn_hls-1))**3 )**pthird * sustke(A2D(nn_hls-1)) / & 2271 & MAX( ( 1.0_wp - 1.0_wp * 6.5_wp * sla(A2D(nn_hls-1))**( 8.0_wp / 3.0_wp ) ), 0.2_wp ) 2272 zsc_uw_2(:,:) = ( swstrl(A2D(nn_hls-1))**3 + & 2273 & 0.5_wp * swstrc(A2D(nn_hls-1))**3 )**pthird * sustke(A2D(nn_hls-1)) / & 2274 & MIN( sla(A2D(nn_hls-1))**( 8.0_wp / 3.0_wp ) + epsln, 0.12_wp ) 2275 zsc_vw_1(:,:) = ff_t(A2D(nn_hls-1)) * phml(A2D(nn_hls-1)) * sustke(A2D(nn_hls-1))**3 * & 2276 & MIN( sla(A2D(nn_hls-1))**( 8.0_wp / 3.0_wp ), 0.12_wp ) / & 2277 & ( ( svstr(A2D(nn_hls-1))**3 + 0.5_wp * swstrc(A2D(nn_hls-1))**3 )**( 2.0_wp / 3.0_wp ) + epsln ) 2278 2278 ELSEWHERE 2279 zsc_uw_1(:,:) = sustar(A2D( (nn_hls-1)))**22280 zsc_vw_1(:,:) = ff_t(A2D( (nn_hls-1))) * phbl(A2D((nn_hls-1))) * sustke(A2D((nn_hls-1)))**3 * &2281 & MIN( sla(A2D( (nn_hls-1)))**( 8.0_wp / 3.0_wp ), 0.12_wp ) / ( svstr(A2D((nn_hls-1)))**2 + epsln )2279 zsc_uw_1(:,:) = sustar(A2D(nn_hls-1))**2 2280 zsc_vw_1(:,:) = ff_t(A2D(nn_hls-1)) * phbl(A2D(nn_hls-1)) * sustke(A2D(nn_hls-1))**3 * & 2281 & MIN( sla(A2D(nn_hls-1))**( 8.0_wp / 3.0_wp ), 0.12_wp ) / ( svstr(A2D(nn_hls-1))**2 + epsln ) 2282 2282 ENDWHERE 2283 2283 DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, MAX( jkm_mld, jkm_bld ) ) … … 2303 2303 ! (X0.3) and pressure (X0.5)] 2304 2304 ! ---------------------------------------------------------------------- 2305 WHERE ( l_conv(A2D( (nn_hls-1))) )2306 zsc_wth_1(:,:) = swbav(A2D( (nn_hls-1))) * swth0(A2D((nn_hls-1))) * ( 1.0_wp + EXP( 0.2_wp * shol(A2D((nn_hls-1))) ) ) * &2307 & phml(A2D( (nn_hls-1))) / ( svstr(A2D((nn_hls-1)))**3 + 0.5_wp * swstrc(A2D((nn_hls-1)))**3 + epsln )2308 zsc_ws_1(:,:) = swbav(A2D( (nn_hls-1))) * sws0(A2D((nn_hls-1))) * ( 1.0_wp + EXP( 0.2_wp * shol(A2D((nn_hls-1))) ) ) * &2309 & phml(A2D( (nn_hls-1))) / ( svstr(A2D((nn_hls-1)))**3 + 0.5_wp * swstrc(A2D((nn_hls-1)))**3 + epsln )2305 WHERE ( l_conv(A2D(nn_hls-1)) ) 2306 zsc_wth_1(:,:) = swbav(A2D(nn_hls-1)) * swth0(A2D(nn_hls-1)) * ( 1.0_wp + EXP( 0.2_wp * shol(A2D(nn_hls-1)) ) ) * & 2307 & phml(A2D(nn_hls-1)) / ( svstr(A2D(nn_hls-1))**3 + 0.5_wp * swstrc(A2D(nn_hls-1))**3 + epsln ) 2308 zsc_ws_1(:,:) = swbav(A2D(nn_hls-1)) * sws0(A2D(nn_hls-1)) * ( 1.0_wp + EXP( 0.2_wp * shol(A2D(nn_hls-1)) ) ) * & 2309 & phml(A2D(nn_hls-1)) / ( svstr(A2D(nn_hls-1))**3 + 0.5_wp * swstrc(A2D(nn_hls-1))**3 + epsln ) 2310 2310 ELSEWHERE 2311 2311 zsc_wth_1(:,:) = 0.0_wp … … 2379 2379 ! 2380 2380 zsc_vw_1(:,:) = 0.0_wp 2381 WHERE ( l_conv(A2D( (nn_hls-1))) )2382 zsc_uw_1(:,:) = -1.0_wp * swb0(A2D( (nn_hls-1))) * sustar(A2D((nn_hls-1)))**2 * phml(A2D((nn_hls-1))) / &2383 & ( svstr(A2D( (nn_hls-1)))**3 + 0.5_wp * swstrc(A2D((nn_hls-1)))**3 + epsln )2384 zsc_uw_2(:,:) = swb0(A2D( (nn_hls-1))) * sustke(A2D((nn_hls-1))) * phml(A2D((nn_hls-1))) / &2385 & ( svstr(A2D( (nn_hls-1)))**3 + 0.5_wp * swstrc(A2D((nn_hls-1)))**3 + epsln )**( 2.0_wp / 3.0_wp )2381 WHERE ( l_conv(A2D(nn_hls-1)) ) 2382 zsc_uw_1(:,:) = -1.0_wp * swb0(A2D(nn_hls-1)) * sustar(A2D(nn_hls-1))**2 * phml(A2D(nn_hls-1)) / & 2383 & ( svstr(A2D(nn_hls-1))**3 + 0.5_wp * swstrc(A2D(nn_hls-1))**3 + epsln ) 2384 zsc_uw_2(:,:) = swb0(A2D(nn_hls-1)) * sustke(A2D(nn_hls-1)) * phml(A2D(nn_hls-1)) / & 2385 & ( svstr(A2D(nn_hls-1))**3 + 0.5_wp * swstrc(A2D(nn_hls-1))**3 + epsln )**( 2.0_wp / 3.0_wp ) 2386 2386 ELSEWHERE 2387 2387 zsc_uw_1(:,:) = 0.0_wp … … 2443 2443 ! (X0.3) ] 2444 2444 ! ----------------------------------------------------------------------- 2445 WHERE ( l_conv(A2D( (nn_hls-1))) )2446 zsc_wth_1(:,:) = swth0(A2D( (nn_hls-1))) / ( 1.0_wp - 0.56_wp * EXP( shol(A2D((nn_hls-1))) ) )2447 zsc_ws_1(:,:) = sws0(A2D( (nn_hls-1))) / ( 1.0_wp - 0.56_wp * EXP( shol(A2D((nn_hls-1))) ) )2448 WHERE ( l_pyc(A2D( (nn_hls-1))) ) ! Pycnocline scales2449 zsc_wth_pyc(:,:) = -0.003_wp * swstrc(A2D( (nn_hls-1))) * ( 1.0_wp - pdh(A2D((nn_hls-1))) / phbl(A2D((nn_hls-1))) ) * &2450 & av_dt_ml(A2D( (nn_hls-1)))2451 zsc_ws_pyc(:,:) = -0.003_wp * swstrc(A2D( (nn_hls-1))) * ( 1.0_wp - pdh(A2D((nn_hls-1))) / phbl(A2D((nn_hls-1))) ) * &2452 & av_ds_ml(A2D( (nn_hls-1)))2445 WHERE ( l_conv(A2D(nn_hls-1)) ) 2446 zsc_wth_1(:,:) = swth0(A2D(nn_hls-1)) / ( 1.0_wp - 0.56_wp * EXP( shol(A2D(nn_hls-1)) ) ) 2447 zsc_ws_1(:,:) = sws0(A2D(nn_hls-1)) / ( 1.0_wp - 0.56_wp * EXP( shol(A2D(nn_hls-1)) ) ) 2448 WHERE ( l_pyc(A2D(nn_hls-1)) ) ! Pycnocline scales 2449 zsc_wth_pyc(:,:) = -0.003_wp * swstrc(A2D(nn_hls-1)) * ( 1.0_wp - pdh(A2D(nn_hls-1)) / phbl(A2D(nn_hls-1)) ) * & 2450 & av_dt_ml(A2D(nn_hls-1)) 2451 zsc_ws_pyc(:,:) = -0.003_wp * swstrc(A2D(nn_hls-1)) * ( 1.0_wp - pdh(A2D(nn_hls-1)) / phbl(A2D(nn_hls-1)) ) * & 2452 & av_ds_ml(A2D(nn_hls-1)) 2453 2453 END WHERE 2454 2454 ELSEWHERE 2455 zsc_wth_1(:,:) = 2.0_wp * swthav(A2D( (nn_hls-1)))2456 zsc_ws_1(:,:) = sws0(A2D( (nn_hls-1)))2455 zsc_wth_1(:,:) = 2.0_wp * swthav(A2D(nn_hls-1)) 2456 zsc_ws_1(:,:) = sws0(A2D(nn_hls-1)) 2457 2457 END WHERE 2458 2458 DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, MAX( jkm_mld, jkm_bld ) ) … … 2491 2491 END_3D 2492 2492 ! 2493 WHERE ( l_conv(A2D( (nn_hls-1))) )2494 zsc_uw_1(:,:) = sustar(A2D( (nn_hls-1)))**22495 zsc_vw_1(:,:) = ff_t(A2D( (nn_hls-1))) * sustke(A2D((nn_hls-1))) * phml(A2D((nn_hls-1)))2493 WHERE ( l_conv(A2D(nn_hls-1)) ) 2494 zsc_uw_1(:,:) = sustar(A2D(nn_hls-1))**2 2495 zsc_vw_1(:,:) = ff_t(A2D(nn_hls-1)) * sustke(A2D(nn_hls-1)) * phml(A2D(nn_hls-1)) 2496 2496 ELSEWHERE 2497 zsc_uw_1(:,:) = sustar(A2D( (nn_hls-1)))**22497 zsc_uw_1(:,:) = sustar(A2D(nn_hls-1))**2 2498 2498 zsc_uw_2(:,:) = ( 2.25_wp - 3.0_wp * ( 1.0_wp - EXP( -1.25_wp * 2.0_wp ) ) ) * ( 1.0_wp - EXP( -4.0_wp * 2.0_wp ) ) * & 2499 2499 & zsc_uw_1(:,:) 2500 zsc_vw_1(:,:) = ff_t(A2D( (nn_hls-1))) * sustke(A2D((nn_hls-1))) * phbl(A2D((nn_hls-1)))2500 zsc_vw_1(:,:) = ff_t(A2D(nn_hls-1)) * sustke(A2D(nn_hls-1)) * phbl(A2D(nn_hls-1)) 2501 2501 zsc_vw_2(:,:) = -0.11_wp * SIN( 3.14159_wp * ( 2.0_wp + 0.4_wp ) ) * EXP( -1.0_wp * ( 1.5_wp + 2.0_wp )**2 ) * & 2502 2502 & zsc_vw_1(:,:) … … 2702 2702 !! 2703 2703 !!---------------------------------------------------------------------- 2704 INTEGER, 2705 REAL(wp), DIMENSION(A2D(nn_hls)), 2706 REAL(wp), DIMENSION(A2D(nn_hls)), 2707 REAL(wp), DIMENSION(A2D(nn_hls)), 2708 REAL(wp), DIMENSION(A2D(nn_hls)), 2709 REAL(wp), DIMENSION(A2D(nn_hls)), 2710 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(inout) :: pdbds_mle ! Magnitude of horizontal buoyancy gradient2704 INTEGER, INTENT(in ) :: Kmm ! Time-level index 2705 REAL(wp), DIMENSION(A2D(nn_hls)), INTENT( out) :: pmld ! == Estimated FK BLD used for MLE horizontal gradients == ! 2706 REAL(wp), DIMENSION(A2D(nn_hls)), INTENT(inout) :: pdtdx ! Horizontal gradient for Fox-Kemper parametrization 2707 REAL(wp), DIMENSION(A2D(nn_hls)), INTENT(inout) :: pdtdy ! Horizontal gradient for Fox-Kemper parametrization 2708 REAL(wp), DIMENSION(A2D(nn_hls)), INTENT(inout) :: pdsdx ! Horizontal gradient for Fox-Kemper parametrization 2709 REAL(wp), DIMENSION(A2D(nn_hls)), INTENT(inout) :: pdsdy ! Horizontal gradient for Fox-Kemper parametrization 2710 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(inout) :: pdbds_mle ! Magnitude of horizontal buoyancy gradient 2711 2711 !! 2712 2712 INTEGER :: ji, jj, jk ! Dummy loop indices … … 2809 2809 !! 2810 2810 !!---------------------------------------------------------------------- 2811 INTEGER, 2812 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(inout) :: pwb_fk2813 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phbl ! BL depth2814 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phmle ! MLE depth2815 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux2816 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdbds_mle ! Magnitude of horizontal buoyancy gradient2817 !! 2818 INTEGER 2819 REAL(wp), DIMENSION(A2D( (nn_hls-1))) :: znd_param2820 REAL(wp) 2821 REAL(wp) 2822 REAL(wp) 2823 REAL(wp) 2824 REAL(wp) 2825 REAL(wp) 2811 INTEGER, INTENT(in ) :: Kmm ! Time-level index 2812 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(inout) :: pwb_fk 2813 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phbl ! BL depth 2814 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phmle ! MLE depth 2815 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb_ent ! Buoyancy entrainment flux 2816 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdbds_mle ! Magnitude of horizontal buoyancy gradient 2817 !! 2818 INTEGER :: ji, jj, jk ! Dummy loop indices 2819 REAL(wp), DIMENSION(A2D(nn_hls-1)) :: znd_param 2820 REAL(wp) :: zthermal, zbeta 2821 REAL(wp) :: zbuoy 2822 REAL(wp) :: ztmp 2823 REAL(wp) :: zpe_mle_layer 2824 REAL(wp) :: zpe_mle_ref 2825 REAL(wp) :: zdbdz_mle_int 2826 2826 !!---------------------------------------------------------------------- 2827 2827 ! … … 2921 2921 !! 2922 2922 !!---------------------------------------------------------------------- 2923 INTEGER, 2924 REAL(wp), DIMENSION(A2D( (nn_hls))), INTENT(in ) :: pmld ! == Estimated FK BLD used for MLE horiz gradients == !2925 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(inout) :: phmle ! MLE depth2926 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(inout) :: pvel_mle ! Velocity scale for dhdt with stable ML and FK2927 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(inout) :: pdiff_mle ! Extra MLE vertical diff2928 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pdbds_mle ! Magnitude of horizontal buoyancy gradient2929 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: phbl ! BL depth2930 REAL(wp), DIMENSION(A2D( (nn_hls-1))), INTENT(in ) :: pwb0tot ! Total surface buoyancy flux including insolation2923 INTEGER, INTENT(in ) :: Kmm ! Time-level index 2924 REAL(wp), DIMENSION(A2D(nn_hls)), INTENT(in ) :: pmld ! == Estimated FK BLD used for MLE horiz gradients == ! 2925 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(inout) :: phmle ! MLE depth 2926 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(inout) :: pvel_mle ! Velocity scale for dhdt with stable ML and FK 2927 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(inout) :: pdiff_mle ! Extra MLE vertical diff 2928 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pdbds_mle ! Magnitude of horizontal buoyancy gradient 2929 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: phbl ! BL depth 2930 REAL(wp), DIMENSION(A2D(nn_hls-1)), INTENT(in ) :: pwb0tot ! Total surface buoyancy flux including insolation 2931 2931 !! 2932 2932 INTEGER :: ji, jj, jk ! Dummy loop indices -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/OCE/do_loop_substitute.h90
r14856 r14913 61 61 #define DO_2D(L, R, B, T) DO jj = ntsj-(B), ntej+(T) ; DO ji = ntsi-(L), ntei+(R) 62 62 #define DO_2D_OVR(L, R, B, T) DO_2D(L-(L+R)*nthl, R-(R+L)*nthr, B-(B+T)*nthb, T-(T+B)*ntht) 63 #define A1Di(H) ntsi- H:ntei+H64 #define A1Dj(H) ntsj- H:ntej+H63 #define A1Di(H) ntsi-(H):ntei+(H) 64 #define A1Dj(H) ntsj-(H):ntej+(H) 65 65 #define A2D(H) A1Di(H),A1Dj(H) 66 66 #define A1Di_T(T) (ntsi-nn_hls-1)*T+1: -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/TOP/C14/trcnam_c14.F90
r12377 r14913 60 60 ln_trc_cbc(jp_c14) = .false. 61 61 ln_trc_obc(jp_c14) = .false. 62 ln_trc_ais(jp_c14) = .false. 62 63 ! 63 64 READ ( numtrc_ref, namc14_typ, IOSTAT = ios, ERR = 901) -
NEMO/branches/2021/dev_r14122_HPC-08_Mueller_OSMOSIS_streamlining/src/TOP/CFC/trcnam_cfc.F90
r12377 r14913 77 77 ln_trc_cbc(jn) = .false. 78 78 ln_trc_obc(jn) = .false. 79 ln_trc_ais(jn) = .false. 79 80 ENDIF 80 81 !
Note: See TracChangeset
for help on using the changeset viewer.