Changeset 15603 for branches/UKMO/dev_r5518_GO6_starthour_obsoper/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
- Timestamp:
- 2021-12-16T10:39:55+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_starthour_obsoper/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
r12555 r15603 32 32 USE trdtra ! trends: active tracers 33 33 ! 34 USE iom ! IOM library 34 USE iom ! IOM library 35 35 USE in_out_manager ! I/O manager 36 36 USE lbclnk ! ocean lateral boundary conditions … … 38 38 USE wrk_nemo ! Memory Allocation 39 39 USE timing ! Timing 40 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 40 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 41 USE stopack 41 42 42 43 IMPLICIT NONE … … 67 68 INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: mgrhu , mgrhv ! = +/-1, sign of grad(H) in u-(v-)direction (PUBLIC for TAM) 68 69 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahu_bbl_0, ahv_bbl_0 ! diffusive bbl flux coefficients at u and v-points 70 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ahu_bbl_1, ahv_bbl_1 ! diffusive bbl flux coefficients at u and v-points 69 71 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:), PUBLIC :: e3u_bbl_0, e3v_bbl_0 ! thichness of the bbl (e3) at u and v-points (PUBLIC for TAM) 70 72 … … 86 88 & vtr_bbl (jpi,jpj) , ahv_bbl (jpi,jpj) , mbkv_d (jpi,jpj) , mgrhv(jpi,jpj) , & 87 89 & ahu_bbl_0(jpi,jpj) , ahv_bbl_0(jpi,jpj) , & 90 & ahu_bbl_1(jpi,jpj) , ahv_bbl_1(jpi,jpj) , & 88 91 & e3u_bbl_0(jpi,jpj) , e3v_bbl_0(jpi,jpj) , STAT=tra_bbl_alloc ) 89 92 ! … … 195 198 ALLOCATE(zptb(1:jpi, 1:jpj)) 196 199 ! 200 ahu_bbl_1(:,:) = ahu_bbl(:,:) 201 #if defined key_traldf_c2d || key_traldf_c3d 202 IF( ln_stopack .AND. nn_spp_ahubbl > 0 ) THEN 203 CALL spp_gen(1, ahu_bbl_1, nn_spp_ahubbl, rn_ahubbl_sd, jk_spp_ahubbl ) 204 ENDIF 205 #else 206 IF ( ln_stopack .AND. nn_spp_ahubbl > 0 ) & 207 & CALL ctl_stop( 'tra_bbl_dif: parameter perturbation will only work with '// & 208 'key_traldf_c2d or key_traldf_c3d') 209 #endif 210 211 212 ahv_bbl_1(:,:) = ahv_bbl(:,:) 213 #if defined key_traldf_c2d || key_traldf_c3d 214 IF( ln_stopack .AND. nn_spp_ahvbbl > 0 ) THEN 215 CALL spp_gen(1, ahv_bbl_1, nn_spp_ahvbbl, rn_ahvbbl_sd, jk_spp_ahvbbl ) 216 ENDIF 217 #else 218 IF ( ln_stopack .AND. nn_spp_ahvbbl > 0 ) & 219 & CALL ctl_stop( 'tra_bbl_dif: parameter perturbation will only work with '// & 220 'key_traldf_c2d or key_traldf_c3d') 221 #endif 222 223 ! 197 224 DO jn = 1, kjpt ! tracer loop 198 225 ! ! =========== … … 203 230 END DO 204 231 END DO 205 ! 232 ! 206 233 DO jj = 2, jpjm1 ! Compute the trend 207 234 DO ji = 2, jpim1 … … 209 236 zbtr = r1_e12t(ji,jj) / fse3t(ji,jj,ik) 210 237 pta(ji,jj,ik,jn) = pta(ji,jj,ik,jn) & 211 & + ( ahu_bbl (ji ,jj ) * ( zptb(ji+1,jj ) - zptb(ji ,jj ) ) &212 & - ahu_bbl (ji-1,jj ) * ( zptb(ji ,jj ) - zptb(ji-1,jj ) ) &213 & + ahv_bbl (ji ,jj ) * ( zptb(ji ,jj+1) - zptb(ji ,jj ) ) &214 & - ahv_bbl (ji ,jj-1) * ( zptb(ji ,jj ) - zptb(ji ,jj-1) ) ) * zbtr238 & + ( ahu_bbl_1(ji ,jj ) * ( zptb(ji+1,jj ) - zptb(ji ,jj ) ) & 239 & - ahu_bbl_1(ji-1,jj ) * ( zptb(ji ,jj ) - zptb(ji-1,jj ) ) & 240 & + ahv_bbl_1(ji ,jj ) * ( zptb(ji ,jj+1) - zptb(ji ,jj ) ) & 241 & - ahv_bbl_1(ji ,jj-1) * ( zptb(ji ,jj ) - zptb(ji ,jj-1) ) ) * zbtr 215 242 END DO 216 243 END DO … … 415 442 za = zab(ji+1,jj,jp_tem) + zab(ji,jj,jp_tem) ! 2*(alpha,beta) at u-point 416 443 zb = zab(ji+1,jj,jp_sal) + zab(ji,jj,jp_sal) 417 ! ! 2*masked bottom density gradient 444 ! ! 2*masked bottom density gradient 418 445 zgdrho = ( za * ( zts(ji+1,jj,jp_tem) - zts(ji,jj,jp_tem) ) & 419 446 - zb * ( zts(ji+1,jj,jp_sal) - zts(ji,jj,jp_sal) ) ) * umask(ji,jj,1) … … 578 605 gdept_0(ji+1,jj,mbkt(ji+1,jj)) - gdept_0(ji,jj,mbkt(ji,jj)) ) ) 579 606 ENDIF 580 ! 607 ! 581 608 IF( gdept_0(ji,jj+1,mbkt(ji,jj+1)) - gdept_0(ji,jj,mbkt(ji,jj)) /= 0._wp ) THEN 582 609 mgrhv(ji,jj) = INT( SIGN( 1.e0, & … … 598 625 ahu_bbl_0(:,:) = rn_ahtbbl * e2u(:,:) * e3u_bbl_0(:,:) / e1u(:,:) * umask(:,:,1) 599 626 ahv_bbl_0(:,:) = rn_ahtbbl * e1v(:,:) * e3v_bbl_0(:,:) / e2v(:,:) * vmask(:,:,1) 600 601 627 602 628 IF( cp_cfg == "orca" ) THEN !* ORCA configuration : regional enhancement of ah_bbl
Note: See TracChangeset
for help on using the changeset viewer.