- Timestamp:
- 2020-09-15T12:56:56+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/temporary_r4_trunk/src/ICE/icedyn_adv_pra.F90
r13469 r13470 110 110 END WHERE 111 111 DO jl = 1, jpl 112 DO_2D _00_00112 DO_2D( 0, 0, 0, 0 ) 113 113 zhip_max(ji,jj,jl) = MAX( epsi20, ph_ip(ji,jj,jl), ph_ip(ji+1,jj ,jl), ph_ip(ji ,jj+1,jl), & 114 114 & ph_ip(ji-1,jj ,jl), ph_ip(ji ,jj-1,jl), & … … 143 143 END DO 144 144 DO jl = 1, jpl 145 DO_3D _00_00(1, nlay_i )145 DO_3D( 0, 0, 0, 0, 1, nlay_i ) 146 146 zei_max(ji,jj,jk,jl) = MAX( epsi20, ze_i(ji,jj,jk,jl), ze_i(ji+1,jj ,jk,jl), ze_i(ji ,jj+1,jk,jl), & 147 147 & ze_i(ji-1,jj ,jk,jl), ze_i(ji ,jj-1,jk,jl), & … … 151 151 END DO 152 152 DO jl = 1, jpl 153 DO_3D _00_00(1, nlay_s )153 DO_3D( 0, 0, 0, 0, 1, nlay_s ) 154 154 zes_max(ji,jj,jk,jl) = MAX( epsi20, ze_s(ji,jj,jk,jl), ze_s(ji+1,jj ,jk,jl), ze_s(ji ,jj+1,jk,jl), & 155 155 & ze_s(ji-1,jj ,jk,jl), ze_s(ji ,jj-1,jk,jl), & … … 307 307 ! derive open water from ice concentration 308 308 zati2(:,:) = SUM( pa_i(:,:,:), dim=3 ) 309 DO_2D _00_00309 DO_2D( 0, 0, 0, 0 ) 310 310 pato_i(ji,jj) = pato_i(ji,jj) - ( zati2(ji,jj) - zati1(ji,jj) ) & !--- open water 311 311 & - ( zudy(ji,jj) - zudy(ji-1,jj) + zvdx(ji,jj) - zvdx(ji,jj-1) ) * r1_e1e2t(ji,jj) * zdt … … 363 363 ! 364 364 ! Limitation of moments. 365 DO_2D _00_11365 DO_2D( 0, 0, 1, 1 ) 366 366 ! Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 367 367 psm (ji,jj,jl) = MAX( pcrh * e1e2t(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj,jl) , epsi20 ) … … 383 383 384 384 ! Calculate fluxes and moments between boxes i<-->i+1 385 DO_2D _00_11385 DO_2D( 0, 0, 1, 1 ) 386 386 zbet(ji,jj) = MAX( 0._wp, SIGN( 1._wp, put(ji,jj) ) ) 387 387 zalf = MAX( 0._wp, put(ji,jj) ) * pdt / psm(ji,jj,jl) … … 408 408 END_2D 409 409 410 DO_2D _00_10410 DO_2D( 0, 0, 1, 0 ) 411 411 zalf = MAX( 0._wp, -put(ji,jj) ) * pdt / psm(ji+1,jj,jl) 412 412 zalg (ji,jj) = zalf … … 427 427 END_2D 428 428 429 DO_2D _00_00429 DO_2D( 0, 0, 0, 0 ) 430 430 zbt = zbet(ji-1,jj) 431 431 zbt1 = 1.0 - zbet(ji-1,jj) … … 441 441 442 442 ! Put the temporary moments into appropriate neighboring boxes. 443 DO_2D _00_00443 DO_2D( 0, 0, 0, 0 ) 444 444 zbt = zbet(ji-1,jj) 445 445 zbt1 = 1.0 - zbet(ji-1,jj) … … 461 461 END_2D 462 462 463 DO_2D _00_00463 DO_2D( 0, 0, 0, 0 ) 464 464 zbt = zbet(ji,jj) 465 465 zbt1 = 1.0 - zbet(ji,jj) … … 520 520 ! 521 521 ! Limitation of moments. 522 DO_2D _11_00522 DO_2D( 1, 1, 0, 0 ) 523 523 ! Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 524 524 psm(ji,jj,jl) = MAX( pcrh * e1e2t(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj,jl) , epsi20 ) … … 540 540 541 541 ! Calculate fluxes and moments between boxes j<-->j+1 542 DO_2D _11_00542 DO_2D( 1, 1, 0, 0 ) 543 543 zbet(ji,jj) = MAX( 0._wp, SIGN( 1._wp, pvt(ji,jj) ) ) 544 544 zalf = MAX( 0._wp, pvt(ji,jj) ) * pdt / psm(ji,jj,jl) … … 565 565 END_2D 566 566 ! 567 DO_2D _10_00567 DO_2D( 1, 0, 0, 0 ) 568 568 zalf = MAX( 0._wp, -pvt(ji,jj) ) * pdt / psm(ji,jj+1,jl) 569 569 zalg (ji,jj) = zalf … … 585 585 586 586 ! Readjust moments remaining in the box. 587 DO_2D _00_00587 DO_2D( 0, 0, 0, 0 ) 588 588 zbt = zbet(ji,jj-1) 589 589 zbt1 = ( 1.0 - zbet(ji,jj-1) ) … … 599 599 600 600 ! Put the temporary moments into appropriate neighboring boxes. 601 DO_2D _00_00601 DO_2D( 0, 0, 0, 0 ) 602 602 zbt = zbet(ji,jj-1) 603 603 zbt1 = 1.0 - zbet(ji,jj-1) … … 620 620 END_2D 621 621 622 DO_2D _00_00622 DO_2D( 0, 0, 0, 0 ) 623 623 zbt = zbet(ji,jj) 624 624 zbt1 = 1.0 - zbet(ji,jj) … … 679 679 ! 680 680 DO jl = 1, jpl 681 DO_2D _11_11681 DO_2D( 1, 1, 1, 1 ) 682 682 IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 683 683 ! … … 726 726 ! ! -- check e_i/v_i -- ! 727 727 DO jl = 1, jpl 728 DO_3D _11_11(1, nlay_i )728 DO_3D( 1, 1, 1, 1, 1, nlay_i ) 729 729 IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 730 730 ! if e_i/v_i is larger than the surrounding 9 pts => put the heat excess in the ocean … … 740 740 ! ! -- check e_s/v_s -- ! 741 741 DO jl = 1, jpl 742 DO_3D _11_11(1, nlay_s )742 DO_3D( 1, 1, 1, 1, 1, nlay_s ) 743 743 IF ( pv_s(ji,jj,jl) > 0._wp ) THEN 744 744 ! if e_s/v_s is larger than the surrounding 9 pts => put the heat excess in the ocean … … 783 783 ! -- check snow load -- ! 784 784 DO jl = 1, jpl 785 DO_2D _11_11785 DO_2D( 1, 1, 1, 1 ) 786 786 IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 787 787 !
Note: See TracChangeset
for help on using the changeset viewer.