- Timestamp:
- 2015-02-11T11:50:34+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/LIM_SRC_3/limadv.F90
r4161 r5075 30 30 PUBLIC lim_adv_x ! called by lim_trp 31 31 PUBLIC lim_adv_y ! called by lim_trp 32 33 REAL(wp) :: epsi20 = 1.e-20_wp ! constant values34 REAL(wp) :: rzero = 0._wp ! - -35 REAL(wp) :: rone = 1._wp ! - -36 32 37 33 !! * Substitutions … … 84 80 DO jj = 1, jpj 85 81 DO ji = 1, jpi 86 zslpmax = MAX( rzero, ps0(ji,jj) )82 zslpmax = MAX( 0._wp, ps0(ji,jj) ) 87 83 zs1max = 1.5 * zslpmax 88 84 zs1new = MIN( zs1max, MAX( -zs1max, psx(ji,jj) ) ) 89 85 zs2new = MIN( 2.0 * zslpmax - 0.3334 * ABS( zs1new ), & 90 86 & MAX( ABS( zs1new ) - zslpmax, psxx(ji,jj) ) ) 91 zin0 = ( 1.0 - MAX( rzero, SIGN( rone, -zslpmax) ) ) * tms(ji,jj) ! Case of empty boxes & Apply mask87 zin0 = ( 1.0 - MAX( 0._wp, SIGN( 1._wp, -zslpmax) ) ) * tms(ji,jj) ! Case of empty boxes & Apply mask 92 88 93 89 ps0 (ji,jj) = zslpmax … … 106 102 DO jj = 1, jpj ! Flux from i to i+1 WHEN u GT 0 107 103 DO ji = 1, jpi 108 zbet(ji,jj) = MAX( rzero, SIGN( rone, put(ji,jj) ) )109 zalf = MAX( rzero, put(ji,jj) ) * zrdt * e2u(ji,jj) / psm(ji,jj)104 zbet(ji,jj) = MAX( 0._wp, SIGN( 1._wp, put(ji,jj) ) ) 105 zalf = MAX( 0._wp, put(ji,jj) ) * zrdt * e2u(ji,jj) / psm(ji,jj) 110 106 zalfq = zalf * zalf 111 107 zalf1 = 1.0 - zalf … … 133 129 DO jj = 1, jpjm1 ! Flux from i+1 to i when u LT 0. 134 130 DO ji = 1, fs_jpim1 135 zalf = MAX( rzero, -put(ji,jj) ) * zrdt * e2u(ji,jj) / psm(ji+1,jj)131 zalf = MAX( 0._wp, -put(ji,jj) ) * zrdt * e2u(ji,jj) / psm(ji+1,jj) 136 132 zalg (ji,jj) = zalf 137 133 zalfq = zalf * zalf … … 269 265 DO jj = 1, jpj 270 266 DO ji = 1, jpi 271 zslpmax = MAX( rzero, ps0(ji,jj) )267 zslpmax = MAX( 0._wp, ps0(ji,jj) ) 272 268 zs1max = 1.5 * zslpmax 273 269 zs1new = MIN( zs1max, MAX( -zs1max, psy(ji,jj) ) ) 274 270 zs2new = MIN( ( 2.0 * zslpmax - 0.3334 * ABS( zs1new ) ), & 275 271 & MAX( ABS( zs1new )-zslpmax, psyy(ji,jj) ) ) 276 zin0 = ( 1.0 - MAX( rzero, SIGN( rone, -zslpmax) ) ) * tms(ji,jj) ! Case of empty boxes & Apply mask272 zin0 = ( 1.0 - MAX( 0._wp, SIGN( 1._wp, -zslpmax) ) ) * tms(ji,jj) ! Case of empty boxes & Apply mask 277 273 ! 278 274 ps0 (ji,jj) = zslpmax … … 291 287 DO jj = 1, jpj ! Flux from j to j+1 WHEN v GT 0 292 288 DO ji = 1, jpi 293 zbet(ji,jj) = MAX( rzero, SIGN( rone, pvt(ji,jj) ) )294 zalf = MAX( rzero, pvt(ji,jj) ) * zrdt * e1v(ji,jj) / psm(ji,jj)289 zbet(ji,jj) = MAX( 0._wp, SIGN( 1._wp, pvt(ji,jj) ) ) 290 zalf = MAX( 0._wp, pvt(ji,jj) ) * zrdt * e1v(ji,jj) / psm(ji,jj) 295 291 zalfq = zalf * zalf 296 292 zalf1 = 1.0 - zalf … … 318 314 DO jj = 1, jpjm1 ! Flux from j+1 to j when v LT 0. 319 315 DO ji = 1, jpi 320 zalf = ( MAX( rzero, -pvt(ji,jj) ) * zrdt * e1v(ji,jj) ) / psm(ji,jj+1)316 zalf = ( MAX(0._wp, -pvt(ji,jj) ) * zrdt * e1v(ji,jj) ) / psm(ji,jj+1) 321 317 zalg (ji,jj) = zalf 322 318 zalfq = zalf * zalf
Note: See TracChangeset
for help on using the changeset viewer.