Changeset 13766 for NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD
- Timestamp:
- 2020-11-10T12:57:08+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_12905_xios_ancil
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_12905_xios_ancil
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 8 9 9 # SETTE 10 ^/utils/CI/sette@ HEADsette10 ^/utils/CI/sette@13559 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD/trddyn.F90
r12489 r13766 37 37 !! * Substitutions 38 38 # include "do_loop_substitute.h90" 39 # include "domzgr_substitute.h90" 39 40 !!---------------------------------------------------------------------- 40 41 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 123 124 z3dx(:,:,:) = 0._wp ! U.dxU & V.dyV (approximation) 124 125 z3dy(:,:,:) = 0._wp 125 DO_3D _00_00( 1, jpkm1 )126 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) ! no mask as un,vn are masked 126 127 z3dx(ji,jj,jk) = uu(ji,jj,jk,Kmm) * ( uu(ji+1,jj,jk,Kmm) - uu(ji-1,jj,jk,Kmm) ) / ( 2._wp * e1u(ji,jj) ) 127 128 z3dy(ji,jj,jk) = vv(ji,jj,jk,Kmm) * ( vv(ji,jj+1,jk,Kmm) - vv(ji,jj-1,jk,Kmm) ) / ( 2._wp * e2v(ji,jj) ) 128 129 END_3D 129 CALL lbc_lnk_multi( 'trddyn', z3dx, 'U', -1. , z3dy, 'V', -1.)130 CALL lbc_lnk_multi( 'trddyn', z3dx, 'U', -1.0_wp, z3dy, 'V', -1.0_wp ) 130 131 CALL iom_put( "utrd_udx", z3dx ) 131 132 CALL iom_put( "vtrd_vdy", z3dy ) … … 163 164 ! END DO 164 165 ! END DO 165 ! CALL lbc_lnk_multi( 'trddyn', z3dx, 'U', -1. , z3dy, 'V', -1.)166 ! CALL lbc_lnk_multi( 'trddyn', z3dx, 'U', -1.0_wp, z3dy, 'V', -1.0_wp ) 166 167 ! CALL iom_put( "utrd_bfr", z3dx ) 167 168 ! CALL iom_put( "vtrd_bfr", z3dy ) -
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD/trdglo.F90
r12489 r13766 52 52 !! * Substitutions 53 53 # include "do_loop_substitute.h90" 54 # include "domzgr_substitute.h90" 54 55 !!---------------------------------------------------------------------- 55 56 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 85 86 ! 86 87 CASE( 'TRA' ) !== Tracers (T & S) ==! 87 DO_3D _11_11( 1, jpkm1)88 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) ! global sum of mask volume trend and trend*T (including interior mask) 88 89 zvm = e1e2t(ji,jj) * e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) * tmask_i(ji,jj) 89 90 zvt = ptrdx(ji,jj,jk) * zvm … … 114 115 ! 115 116 CASE( 'DYN' ) !== Momentum and KE ==! 116 DO_3D _10_10(1, jpkm1 )117 DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 117 118 zvt = ptrdx(ji,jj,jk) * tmask_i(ji+1,jj) * tmask_i(ji,jj) * umask(ji,jj,jk) & 118 119 & * e1e2u (ji,jj) * e3u(ji,jj,jk,Kmm) … … 126 127 IF( ktrd == jpdyn_zdf ) THEN ! zdf trend: compute separately the surface forcing trend 127 128 z1_2rho0 = 0.5_wp / rho0 128 DO_2D _10_10129 DO_2D( 1, 0, 1, 0 ) 129 130 zvt = ( utau_b(ji,jj) + utau(ji,jj) ) * tmask_i(ji+1,jj) * tmask_i(ji,jj) * umask(ji,jj,jk) & 130 131 & * z1_2rho0 * e1e2u(ji,jj) … … 210 211 211 212 zcof = 0.5_wp / rho0 ! Density flux at u and v-points 212 DO_3D_10_10( 1, jpkm1 ) 213 zkx(ji,jj,jk) = zcof * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) * uu(ji,jj,jk,Kmm) * ( rhop(ji,jj,jk) + rhop(ji+1,jj,jk) ) 214 zky(ji,jj,jk) = zcof * e1v(ji,jj) * e3v(ji,jj,jk,Kmm) * vv(ji,jj,jk,Kmm) * ( rhop(ji,jj,jk) + rhop(ji,jj+1,jk) ) 213 DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 214 zkx(ji,jj,jk) = zcof * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) & 215 & * uu(ji,jj,jk,Kmm) * ( rhop(ji,jj,jk) + rhop(ji+1,jj,jk) ) 216 zky(ji,jj,jk) = zcof * e1v(ji,jj) * e3v(ji,jj,jk,Kmm) & 217 & * vv(ji,jj,jk,Kmm) * ( rhop(ji,jj,jk) + rhop(ji,jj+1,jk) ) 215 218 END_3D 216 219 217 DO_3D _00_00( 1, jpkm1 )220 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) ! Density flux divergence at t-point 218 221 zkepe(ji,jj,jk) = - ( zkz(ji,jj,jk) - zkz(ji ,jj ,jk+1) & 219 222 & + zkx(ji,jj,jk) - zkx(ji-1,jj ,jk ) & … … 226 229 peke = 0._wp 227 230 DO jk = 1, jpkm1 228 peke = peke + SUM( zkepe(:,:,jk) * gdept(:,:,jk,Kmm) * e1e2t(:,:) * e3t(:,:,jk,Kmm) ) 231 peke = peke + SUM( zkepe(:,:,jk) * gdept(:,:,jk,Kmm) * e1e2t(:,:) & 232 & * e3t(:,:,jk,Kmm) ) 229 233 END DO 230 234 peke = grav * peke … … 523 527 tvolv = 0._wp 524 528 525 DO_3D_00_00( 1, jpk ) 526 tvolu = tvolu + e1u(ji,jj) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) * tmask_i(ji+1,jj ) * tmask_i(ji,jj) * umask(ji,jj,jk) 527 tvolv = tvolv + e1v(ji,jj) * e2v(ji,jj) * e3v(ji,jj,jk,Kmm) * tmask_i(ji ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk) 529 DO_3D( 0, 0, 0, 0, 1, jpk ) 530 tvolu = tvolu + e1u(ji,jj) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) & 531 & * tmask_i(ji+1,jj ) * tmask_i(ji,jj) * umask(ji,jj,jk) 532 tvolv = tvolv + e1v(ji,jj) * e2v(ji,jj) * e3v(ji,jj,jk,Kmm) & 533 & * tmask_i(ji ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk) 528 534 END_3D 529 535 CALL mpp_sum( 'trdglo', tvolu ) ! sums over the global domain -
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD/trdken.F90
r12489 r13766 41 41 !! * Substitutions 42 42 # include "do_loop_substitute.h90" 43 # include "domzgr_substitute.h90" 43 44 !!---------------------------------------------------------------------- 44 45 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 89 90 !!---------------------------------------------------------------------- 90 91 ! 91 CALL lbc_lnk_multi( 'trdken', putrd, 'U', -1. , pvtrd, 'V', -1.) ! lateral boundary conditions92 CALL lbc_lnk_multi( 'trdken', putrd, 'U', -1.0_wp , pvtrd, 'V', -1.0_wp ) ! lateral boundary conditions 92 93 ! 93 94 nkstp = kt … … 101 102 zke(1,:, : ) = 0._wp 102 103 zke(:,1, : ) = 0._wp 103 DO_3D _01_01(1, jpkm1 )104 DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 104 105 zke(ji,jj,jk) = 0.5_wp * rho0 *( uu(ji ,jj,jk,Kmm) * putrd(ji ,jj,jk) * bu(ji ,jj,jk) & 105 106 & + uu(ji-1,jj,jk,Kmm) * putrd(ji-1,jj,jk) * bu(ji-1,jj,jk) & … … 122 123 z2dy(:,:) = vv(:,:,1,Kmm) * ( vtau_b(:,:) + vtau(:,:) ) * e1e2v(:,:) * vmask(:,:,1) 123 124 zke2d(1,:) = 0._wp ; zke2d(:,1) = 0._wp 124 DO_2D _01_01125 DO_2D( 0, 1, 0, 1 ) 125 126 zke2d(ji,jj) = r1_rho0 * 0.5_wp * ( z2dx(ji,jj) + z2dx(ji-1,jj) & 126 127 & + z2dy(ji,jj) + z2dy(ji,jj-1) ) * r1_bt(ji,jj,1) … … 218 219 219 220 ! conv value on T-point 220 DO_3D _11_11(1, jpkm1 )221 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 221 222 zcoef = 0.5_wp / e3t(ji,jj,jk,Kmm) 222 223 pconv(ji,jj,jk) = zcoef * ( zconv(ji,jj,jk) + zconv(ji,jj,jk+1) ) * tmask(ji,jj,jk) -
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD/trdmxl.F90
r12377 r13766 70 70 !! * Substitutions 71 71 # include "do_loop_substitute.h90" 72 # include "domzgr_substitute.h90" 72 73 !!---------------------------------------------------------------------- 73 74 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 119 120 ! 120 121 wkx(:,:,:) = 0._wp !== now ML weights for vertical averaging ==! 121 DO_3D_11_11( 1, jpktrd ) 122 IF( jk - kmxln(ji,jj) < 0 ) wkx(ji,jj,jk) = e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 122 DO_3D( 1, 1, 1, 1, 1, jpktrd ) ! initialize wkx with vertical scale factor in mixed-layer 123 IF( jk - kmxln(ji,jj) < 0 ) THEN 124 wkx(ji,jj,jk) = e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 125 ENDIF 123 126 END_3D 124 127 hmxl(:,:) = 0._wp ! NOW mixed-layer depth … … 151 154 !!gm to be put juste before the output ! 152 155 ! ! Lateral boundary conditions 153 ! CALL lbc_lnk_multi( 'trdmxl', tmltrd(:,:,jl), 'T', 1. , smltrd(:,:,jl), 'T', 1.)156 ! CALL lbc_lnk_multi( 'trdmxl', tmltrd(:,:,jl), 'T', 1.0_wp , smltrd(:,:,jl), 'T', 1.0_wp ) 154 157 !!gm end 155 158 … … 469 472 !-- Lateral boundary conditions 470 473 ! ... temperature ... ... salinity ... 471 CALL lbc_lnk_multi( 'trdmxl', ztmltot , 'T', 1. , zsmltot , 'T', 1., &472 & ztmlres , 'T', 1. , zsmlres , 'T', 1., &473 & ztmlatf , 'T', 1. , zsmlatf , 'T', 1.)474 CALL lbc_lnk_multi( 'trdmxl', ztmltot , 'T', 1.0_wp, zsmltot , 'T', 1.0_wp, & 475 & ztmlres , 'T', 1.0_wp, zsmlres , 'T', 1.0_wp, & 476 & ztmlatf , 'T', 1.0_wp, zsmlatf , 'T', 1.0_wp ) 474 477 475 478 … … 520 523 !-- Lateral boundary conditions 521 524 ! ... temperature ... ... salinity ... 522 CALL lbc_lnk_multi( 'trdmxl', ztmltot2, 'T', 1. , zsmltot2, 'T', 1., &523 & ztmlres2, 'T', 1. , zsmlres2, 'T', 1.)524 ! 525 CALL lbc_lnk_multi( 'trdmxl', ztmltrd2(:,:,:), 'T', 1. , zsmltrd2(:,:,:), 'T', 1.) ! / in the NetCDF trends file525 CALL lbc_lnk_multi( 'trdmxl', ztmltot2, 'T', 1.0_wp, zsmltot2, 'T', 1.0_wp, & 526 & ztmlres2, 'T', 1.0_wp, zsmlres2, 'T', 1.0_wp ) 527 ! 528 CALL lbc_lnk_multi( 'trdmxl', ztmltrd2(:,:,:), 'T', 1.0_wp, zsmltrd2(:,:,:), 'T', 1.0_wp ) ! / in the NetCDF trends file 526 529 527 530 ! III.3 Time evolution array swap -
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD/trdmxl_rst.F90
r11536 r13766 149 149 IF( ln_trdmxl_instant ) THEN 150 150 !-- Temperature 151 CALL iom_get( inum, jpdom_auto glo, 'tmlbb' , tmlbb )152 CALL iom_get( inum, jpdom_auto glo, 'tmlbn' , tmlbn )153 CALL iom_get( inum, jpdom_auto glo, 'tmlatfb' , tmlatfb )151 CALL iom_get( inum, jpdom_auto, 'tmlbb' , tmlbb ) 152 CALL iom_get( inum, jpdom_auto, 'tmlbn' , tmlbn ) 153 CALL iom_get( inum, jpdom_auto, 'tmlatfb' , tmlatfb ) 154 154 ! 155 155 !-- Salinity 156 CALL iom_get( inum, jpdom_auto glo, 'smlbb' , smlbb )157 CALL iom_get( inum, jpdom_auto glo, 'smlbn' , smlbn )158 CALL iom_get( inum, jpdom_auto glo, 'smlatfb' , smlatfb )156 CALL iom_get( inum, jpdom_auto, 'smlbb' , smlbb ) 157 CALL iom_get( inum, jpdom_auto, 'smlbn' , smlbn ) 158 CALL iom_get( inum, jpdom_auto, 'smlatfb' , smlatfb ) 159 159 ELSE 160 CALL iom_get( inum, jpdom_auto glo, 'hmxlbn' , hmxlbn ) ! needed for hmxl_sum160 CALL iom_get( inum, jpdom_auto, 'hmxlbn' , hmxlbn ) ! needed for hmxl_sum 161 161 ! 162 162 !-- Temperature 163 CALL iom_get( inum, jpdom_auto glo, 'tmlbn' , tmlbn ) ! needed for tml_sum164 CALL iom_get( inum, jpdom_auto glo, 'tml_sumb' , tml_sumb )163 CALL iom_get( inum, jpdom_auto, 'tmlbn' , tmlbn ) ! needed for tml_sum 164 CALL iom_get( inum, jpdom_auto, 'tml_sumb' , tml_sumb ) 165 165 DO jk = 1, jpltrd 166 166 IF( jk < 10 ) THEN ; WRITE(charout,FMT="('tmltrd_csum_ub_', I1)") jk 167 167 ELSE ; WRITE(charout,FMT="('tmltrd_csum_ub_', I2)") jk 168 168 ENDIF 169 CALL iom_get( inum, jpdom_auto glo, charout, tmltrd_csum_ub(:,:,jk) )169 CALL iom_get( inum, jpdom_auto, charout, tmltrd_csum_ub(:,:,jk) ) 170 170 END DO 171 CALL iom_get( inum, jpdom_auto glo, 'tmltrd_atf_sumb' , tmltrd_atf_sumb)171 CALL iom_get( inum, jpdom_auto, 'tmltrd_atf_sumb' , tmltrd_atf_sumb) 172 172 ! 173 173 !-- Salinity 174 CALL iom_get( inum, jpdom_auto glo, 'smlbn' , smlbn ) ! needed for sml_sum175 CALL iom_get( inum, jpdom_auto glo, 'sml_sumb' , sml_sumb )174 CALL iom_get( inum, jpdom_auto, 'smlbn' , smlbn ) ! needed for sml_sum 175 CALL iom_get( inum, jpdom_auto, 'sml_sumb' , sml_sumb ) 176 176 DO jk = 1, jpltrd 177 177 IF( jk < 10 ) THEN ; WRITE(charout,FMT="('smltrd_csum_ub_', I1)") jk 178 178 ELSE ; WRITE(charout,FMT="('smltrd_csum_ub_', I2)") jk 179 179 ENDIF 180 CALL iom_get( inum, jpdom_auto glo, charout, smltrd_csum_ub(:,:,jk) )180 CALL iom_get( inum, jpdom_auto, charout, smltrd_csum_ub(:,:,jk) ) 181 181 END DO 182 CALL iom_get( inum, jpdom_auto glo, 'smltrd_atf_sumb' , smltrd_atf_sumb)182 CALL iom_get( inum, jpdom_auto, 'smltrd_atf_sumb' , smltrd_atf_sumb) 183 183 ! 184 184 CALL iom_close( inum ) -
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD/trdpen.F90
r12377 r13766 35 35 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: rab_pe ! partial derivatives of PE anomaly with respect to T and S 36 36 37 !! * Substitutions 38 # include "domzgr_substitute.h90" 37 39 !!---------------------------------------------------------------------- 38 40 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 40 42 !! Software governed by the CeCILL license (see ./LICENSE) 41 43 !!---------------------------------------------------------------------- 44 42 45 CONTAINS 43 46 -
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD/trdtra.F90
r12489 r13766 42 42 !! * Substitutions 43 43 # include "do_loop_substitute.h90" 44 # include "domzgr_substitute.h90" 44 45 !!---------------------------------------------------------------------- 45 46 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 82 83 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: ptra ! now tracer variable 83 84 ! 84 INTEGER :: jk ! loop indices 85 INTEGER :: jk ! loop indices 86 INTEGER :: i01 ! 0 or 1 85 87 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrds ! 3D workspace 86 88 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zwt, zws, ztrdt ! 3D workspace … … 90 92 IF( trd_tra_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'trd_tra : unable to allocate arrays' ) 91 93 ENDIF 92 94 ! 95 i01 = COUNT( (/ PRESENT(pu) .OR. ( ktrd /= jptra_xad .AND. ktrd /= jptra_yad .AND. ktrd /= jptra_zad ) /) ) 96 ! 93 97 IF( ctype == 'TRA' .AND. ktra == jp_tem ) THEN !== Temperature trend ==! 94 98 ! 95 SELECT CASE( ktrd )99 SELECT CASE( ktrd*i01 ) 96 100 ! ! advection: transform the advective flux into a trend 97 101 CASE( jptra_xad ) ; CALL trd_tra_adv( ptrd, pu, ptra, 'X', trdtx, Kmm ) … … 112 116 IF( ctype == 'TRA' .AND. ktra == jp_sal ) THEN !== Salinity trends ==! 113 117 ! 114 SELECT CASE( ktrd )118 SELECT CASE( ktrd*i01 ) 115 119 ! ! advection: transform the advective flux into a trend 116 120 ! ! and send T & S trends to trd_tra_mng … … 128 132 zwt(:,:,jpk) = 0._wp ; zws(:,:,jpk) = 0._wp 129 133 DO jk = 2, jpk 130 zwt(:,:,jk) = avt(:,:,jk) * ( ts(:,:,jk-1,jp_tem,Krhs) - ts(:,:,jk,jp_tem,Krhs) ) / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 131 zws(:,:,jk) = avs(:,:,jk) * ( ts(:,:,jk-1,jp_sal,Krhs) - ts(:,:,jk,jp_sal,Krhs) ) / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 134 zwt(:,:,jk) = avt(:,:,jk) * ( ts(:,:,jk-1,jp_tem,Krhs) - ts(:,:,jk,jp_tem,Krhs) ) & 135 & / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 136 zws(:,:,jk) = avs(:,:,jk) * ( ts(:,:,jk-1,jp_sal,Krhs) - ts(:,:,jk,jp_sal,Krhs) ) & 137 & / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 132 138 END DO 133 139 ! … … 142 148 zwt(:,:,:) = 0._wp ; zws(:,:,:) = 0._wp ! vertical diffusive fluxes 143 149 DO jk = 2, jpk 144 zwt(:,:,jk) = avt_evd(:,:,jk) * ( ts(:,:,jk-1,jp_tem,Krhs) - ts(:,:,jk,jp_tem,Krhs) ) / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 145 zws(:,:,jk) = avt_evd(:,:,jk) * ( ts(:,:,jk-1,jp_sal,Krhs) - ts(:,:,jk,jp_sal,Krhs) ) / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 150 zwt(:,:,jk) = avt_evd(:,:,jk) * ( ts(:,:,jk-1,jp_tem,Krhs) - ts(:,:,jk,jp_tem,Krhs) ) & 151 & / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 152 zws(:,:,jk) = avt_evd(:,:,jk) * ( ts(:,:,jk-1,jp_sal,Krhs) - ts(:,:,jk,jp_sal,Krhs) ) & 153 & / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 146 154 END DO 147 155 ! … … 163 171 IF( ctype == 'TRC' ) THEN !== passive tracer trend ==! 164 172 ! 165 SELECT CASE( ktrd )173 SELECT CASE( ktrd*i01 ) 166 174 ! ! advection: transform the advective flux into a masked trend 167 175 CASE( jptra_xad ) ; CALL trd_tra_adv( ptrd , pu , ptra, 'X', ztrds, Kmm ) … … 202 210 !!---------------------------------------------------------------------- 203 211 ! 204 SELECT CASE( cdir ) ! shift depending on the direction212 SELECT CASE( cdir ) ! shift depending on the direction 205 213 CASE( 'X' ) ; ii = 1 ; ij = 0 ; ik = 0 ! i-trend 206 214 CASE( 'Y' ) ; ii = 0 ; ij = 1 ; ik = 0 ! j-trend … … 208 216 END SELECT 209 217 ! 210 ! ! set to zero uncomputed values218 ! ! set to zero uncomputed values 211 219 ptrd(jpi,:,:) = 0._wp ; ptrd(1,:,:) = 0._wp 212 220 ptrd(:,jpj,:) = 0._wp ; ptrd(:,1,:) = 0._wp 213 221 ptrd(:,:,jpk) = 0._wp 214 222 ! 215 DO_3D _00_00( 1, jpkm1 )223 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) ! advective trend 216 224 ptrd(ji,jj,jk) = - ( pf (ji,jj,jk) - pf (ji-ii,jj-ij,jk-ik) & 217 225 & - ( pu(ji,jj,jk) - pu(ji-ii,jj-ij,jk-ik) ) * pt(ji,jj,jk) ) & -
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD/trdtrc.F90
r12377 r13766 1 1 MODULE trdtrc 2 USE par_kind 2 3 !!====================================================================== 3 4 !! *** MODULE trdtrc *** … … 12 13 INTEGER :: kt, kjn, ktrd 13 14 INTEGER :: Kmm ! time level index 14 REAL 15 REAL(wp):: ptrtrd(:,:,:) 15 16 WRITE(*,*) 'trd_trc : You should not have seen this print! error?', ptrtrd(1,1,1) 16 17 WRITE(*,*) ' " " : You should not have seen this print! error?', kjn, ktrd, kt -
NEMO/branches/2020/dev_12905_xios_ancil/src/OCE/TRD/trdvor.F90
r12489 r13766 57 57 !! * Substitutions 58 58 # include "do_loop_substitute.h90" 59 # include "domzgr_substitute.h90" 59 60 !!---------------------------------------------------------------------- 60 61 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 102 103 CASE( jpdyn_zad ) ; CALL trd_vor_zint( putrd, pvtrd, jpvor_zad, Kmm ) ! Vertical Advection 103 104 CASE( jpdyn_spg ) ; CALL trd_vor_zint( putrd, pvtrd, jpvor_spg, Kmm ) ! Surface Pressure Grad. 104 CASE( jpdyn_zdf ) ! Vertical Diffusion105 CASE( jpdyn_zdf ) ! Vertical Diffusion 105 106 ztswu(:,:) = 0.e0 ; ztswv(:,:) = 0.e0 106 DO_2D _00_00107 DO_2D( 0, 0, 0, 0 ) ! wind stress trends 107 108 ztswu(ji,jj) = 0.5 * ( utau_b(ji,jj) + utau(ji,jj) ) / ( e3u(ji,jj,1,Kmm) * rho0 ) 108 109 ztswv(ji,jj) = 0.5 * ( vtau_b(ji,jj) + vtau(ji,jj) ) / ( e3v(ji,jj,1,Kmm) * rho0 ) … … 161 162 162 163 zudpvor(:,:) = 0._wp ; zvdpvor(:,:) = 0._wp ! Initialisation 163 CALL lbc_lnk_multi( 'trdvor', putrdvor, 'U', -1. , pvtrdvor, 'V', -1.) ! lateral boundary condition164 CALL lbc_lnk_multi( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp ) ! lateral boundary condition 164 165 165 166 … … 171 172 ! 172 173 CASE( jpvor_bfr ) ! bottom friction 173 DO_2D _00_00174 DO_2D( 0, 0, 0, 0 ) 174 175 ikbu = mbkv(ji,jj) 175 176 ikbv = mbkv(ji,jj) … … 192 193 DO jj = 1, jpjm1 193 194 vortrd(ji,jj,ktrd) = ( zvdpvor(ji+1,jj) - zvdpvor(ji,jj) & 194 & - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) / ( e1f(ji,jj) * e2f(ji,jj) ) 195 & - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) & 196 & / ( e1f(ji,jj) * e2f(ji,jj) ) 195 197 END DO 196 198 END DO … … 249 251 zvdpvor(:,:) = 0._wp 250 252 ! ! lateral boundary condition on input momentum trends 251 CALL lbc_lnk_multi( 'trdvor', putrdvor, 'U', -1. , pvtrdvor, 'V', -1.)253 CALL lbc_lnk_multi( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp ) 252 254 253 255 ! ===================================== … … 268 270 DO jj = 1, jpjm1 269 271 vortrd(ji,jj,jpvor_bev) = ( zvbet(ji+1,jj) - zvbet(ji,jj) & 270 & - ( zubet(ji,jj+1) - zubet(ji,jj) ) ) / ( e1f(ji,jj) * e2f(ji,jj) ) 272 & - ( zubet(ji,jj+1) - zubet(ji,jj) ) ) & 273 & / ( e1f(ji,jj) * e2f(ji,jj) ) 271 274 END DO 272 275 END DO … … 283 286 DO jj=1,jpjm1 284 287 vortrd(ji,jj,ktrd) = ( zvdpvor(ji+1,jj) - zvdpvor(ji,jj) & 285 & - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) / ( e1f(ji,jj) * e2f(ji,jj) ) 288 & - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) & 289 & / ( e1f(ji,jj) * e2f(ji,jj) ) 286 290 END DO 287 291 END DO … … 345 349 DO jj = 1, jpjm1 346 350 vor_avr(ji,jj) = ( ( zvv(ji+1,jj) - zvv(ji,jj) ) & 347 & - ( zuu(ji,jj+1) - zuu(ji,jj) ) ) / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 351 & - ( zuu(ji,jj+1) - zuu(ji,jj) ) ) & 352 & / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 348 353 END DO 349 354 END DO … … 395 400 396 401 ! Boundary conditions 397 CALL lbc_lnk_multi( 'trdvor', vor_avrtot, 'F', 1. , vor_avrres, 'F', 1.)402 CALL lbc_lnk_multi( 'trdvor', vor_avrtot, 'F', 1.0_wp , vor_avrres, 'F', 1.0_wp ) 398 403 399 404
Note: See TracChangeset
for help on using the changeset viewer.