- Timestamp:
- 2020-01-27T15:31:53+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zbc.F90
r12258 r12340 48 48 !! * Substitutions 49 49 # include "vectopt_loop_substitute.h90" 50 # include "do_loop_substitute.h90" 50 51 !!---------------------------------------------------------------------- 51 52 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 111 112 IF( ll_river ) THEN 112 113 jl = n_trc_indcbc(jpno3) 113 DO jj = 1, jpj 114 DO ji = 1, jpi 115 DO jk = 1, nk_rnf(ji,jj) 116 zcoef = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 117 zrivdin = rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zcoef 118 tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) - rno3 * zrivdin * rfact 119 ENDDO 120 END DO 121 END DO 114 DO_2D_11_11 115 DO jk = 1, nk_rnf(ji,jj) 116 zcoef = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 117 zrivdin = rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zcoef 118 tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) - rno3 * zrivdin * rfact 119 ENDDO 120 END_2D 122 121 ENDIF 123 122 … … 146 145 ALLOCATE( zironice(jpi,jpj) ) 147 146 ! 148 DO jj = 1, jpj 149 DO ji = 1, jpi 150 zdep = rfact / e3t(ji,jj,1,Kmm) 151 zwflux = fmmflx(ji,jj) / 1000._wp 152 zironice(ji,jj) = MAX( -0.99 * tr(ji,jj,1,jpfer,Kbb), -zwflux * icefeinput * zdep ) 153 END DO 154 END DO 147 DO_2D_11_11 148 zdep = rfact / e3t(ji,jj,1,Kmm) 149 zwflux = fmmflx(ji,jj) / 1000._wp 150 zironice(ji,jj) = MAX( -0.99 * tr(ji,jj,1,jpfer,Kbb), -zwflux * icefeinput * zdep ) 151 END_2D 155 152 ! 156 153 tr(:,:,1,jpfer,Krhs) = tr(:,:,1,jpfer,Krhs) + zironice(:,:) … … 300 297 IF(lwp) WRITE(numout,*) 301 298 IF(lwp) WRITE(numout,*) ' Level corresponding to 50m depth ', ik50,' ', gdept_1d(ik50+1) 302 DO jk = 1, ik50 303 DO jj = 2, jpjm1 304 DO ji = fs_2, fs_jpim1 305 ze3t = e3t_0(ji,jj,jk) 306 zsurfc = e1u(ji,jj) * ( 1. - umask(ji ,jj ,jk) ) & 307 + e1u(ji,jj) * ( 1. - umask(ji-1,jj ,jk) ) & 308 + e2v(ji,jj) * ( 1. - vmask(ji ,jj ,jk) ) & 309 + e2v(ji,jj) * ( 1. - vmask(ji ,jj-1,jk) ) 310 zsurfp = zsurfc * ze3t / e1e2t(ji,jj) 311 ! estimation of the coastal slope : 5 km off the coast 312 ze3t2 = ze3t * ze3t 313 zcslp = SQRT( ( distcoast*distcoast + ze3t2 ) / ze3t2 ) 314 ! 315 zcmask(ji,jj,jk) = zcmask(ji,jj,jk) + zcslp * zsurfp 316 END DO 317 END DO 318 END DO 299 DO_3D_00_00( 1, ik50 ) 300 ze3t = e3t_0(ji,jj,jk) 301 zsurfc = e1u(ji,jj) * ( 1. - umask(ji ,jj ,jk) ) & 302 + e1u(ji,jj) * ( 1. - umask(ji-1,jj ,jk) ) & 303 + e2v(ji,jj) * ( 1. - vmask(ji ,jj ,jk) ) & 304 + e2v(ji,jj) * ( 1. - vmask(ji ,jj-1,jk) ) 305 zsurfp = zsurfc * ze3t / e1e2t(ji,jj) 306 ! estimation of the coastal slope : 5 km off the coast 307 ze3t2 = ze3t * ze3t 308 zcslp = SQRT( ( distcoast*distcoast + ze3t2 ) / ze3t2 ) 309 ! 310 zcmask(ji,jj,jk) = zcmask(ji,jj,jk) + zcslp * zsurfp 311 END_3D 319 312 ! 320 313 CALL lbc_lnk( 'p4zbc', zcmask , 'T', 1. ) ! lateral boundary conditions on cmask (sign unchanged) 321 314 ! 322 DO jk = 1, jpk 323 DO jj = 1, jpj 324 DO ji = 1, jpi 325 zexpide = MIN( 8.,( gdept(ji,jj,jk,Kmm) / 500. )**(-1.5) ) 326 zdenitide = -0.9543 + 0.7662 * LOG( zexpide ) - 0.235 * LOG( zexpide )**2 327 zcmask(ji,jj,jk) = zcmask(ji,jj,jk) * MIN( 1., EXP( zdenitide ) / 0.5 ) 328 END DO 329 END DO 330 END DO 315 DO_3D_11_11( 1, jpk ) 316 zexpide = MIN( 8.,( gdept(ji,jj,jk,Kmm) / 500. )**(-1.5) ) 317 zdenitide = -0.9543 + 0.7662 * LOG( zexpide ) - 0.235 * LOG( zexpide )**2 318 zcmask(ji,jj,jk) = zcmask(ji,jj,jk) * MIN( 1., EXP( zdenitide ) / 0.5 ) 319 END_3D 331 320 ! Coastal supply of iron 332 321 ! -------------------------
Note: See TracChangeset
for help on using the changeset viewer.