Changeset 10929 for NEMO/releases/release-4.0/src/ICE/icevar.F90
- Timestamp:
- 2019-05-05T21:35:24+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/releases/release-4.0/src/ICE/icevar.F90
r10589 r10929 229 229 IF ( v_i(ji,jj,jl) > epsi20 ) THEN !--- icy area 230 230 ! 231 ze_i = e_i (ji,jj,jk,jl) * z1_v_i(ji,jj,jl) * zlay_i 231 ze_i = e_i (ji,jj,jk,jl) * z1_v_i(ji,jj,jl) * zlay_i ! Energy of melting e(S,T) [J.m-3] 232 232 ztmelts = - sz_i(ji,jj,jk,jl) * rTmlt ! Ice layer melt temperature [C] 233 233 ! Conversion q(S,T) -> T (second order equation) … … 236 236 t_i(ji,jj,jk,jl) = MAX( -100._wp , MIN( -( zbbb + zccc ) * 0.5_wp * r1_rcpi , ztmelts ) ) + rt0 ! [K] with bounds: -100 < t_i < ztmelts 237 237 ! 238 ELSE !--- no ice238 ELSE !--- no ice 239 239 t_i(ji,jj,jk,jl) = rt0 240 240 ENDIF … … 537 537 538 538 539 SUBROUTINE ice_var_zapneg( p ato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i )539 SUBROUTINE ice_var_zapneg( pdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i ) 540 540 !!------------------------------------------------------------------- 541 541 !! *** ROUTINE ice_var_zapneg *** … … 543 543 !! ** Purpose : Remove negative sea ice fields and correct fluxes 544 544 !!------------------------------------------------------------------- 545 INTEGER :: ji, jj, jl, jk ! dummy loop indices 546 ! 545 REAL(wp) , INTENT(in ) :: pdt ! tracer time-step 547 546 REAL(wp), DIMENSION(:,:) , INTENT(inout) :: pato_i ! open water area 548 547 REAL(wp), DIMENSION(:,:,:) , INTENT(inout) :: pv_i ! ice volume … … 555 554 REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_s ! snw heat content 556 555 REAL(wp), DIMENSION(:,:,:,:), INTENT(inout) :: pe_i ! ice heat content 557 !!------------------------------------------------------------------- 558 ! 556 ! 557 INTEGER :: ji, jj, jl, jk ! dummy loop indices 558 REAL(wp) :: z1_dt 559 !!------------------------------------------------------------------- 560 ! 561 z1_dt = 1._wp / pdt 559 562 ! 560 563 DO jl = 1, jpl !== loop over the categories ==! … … 567 570 DO ji = 1 , jpi 568 571 IF( pe_i(ji,jj,jk,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 569 hfx_res(ji,jj) = hfx_res(ji,jj) - pe_i(ji,jj,jk,jl) * r1_rdtice! W.m-2 >0572 hfx_res(ji,jj) = hfx_res(ji,jj) - pe_i(ji,jj,jk,jl) * z1_dt ! W.m-2 >0 570 573 pe_i(ji,jj,jk,jl) = 0._wp 571 574 ENDIF … … 578 581 DO ji = 1 , jpi 579 582 IF( pe_s(ji,jj,jk,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 580 hfx_res(ji,jj) = hfx_res(ji,jj) - pe_s(ji,jj,jk,jl) * r1_rdtice! W.m-2 <0583 hfx_res(ji,jj) = hfx_res(ji,jj) - pe_s(ji,jj,jk,jl) * z1_dt ! W.m-2 <0 581 584 pe_s(ji,jj,jk,jl) = 0._wp 582 585 ENDIF … … 591 594 DO ji = 1 , jpi 592 595 IF( pv_i(ji,jj,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 593 wfx_res(ji,jj) = wfx_res(ji,jj) + pv_i (ji,jj,jl) * rhoi * r1_rdtice596 wfx_res(ji,jj) = wfx_res(ji,jj) + pv_i (ji,jj,jl) * rhoi * z1_dt 594 597 pv_i (ji,jj,jl) = 0._wp 595 598 ENDIF 596 599 IF( pv_s(ji,jj,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 597 wfx_res(ji,jj) = wfx_res(ji,jj) + pv_s (ji,jj,jl) * rhos * r1_rdtice600 wfx_res(ji,jj) = wfx_res(ji,jj) + pv_s (ji,jj,jl) * rhos * z1_dt 598 601 pv_s (ji,jj,jl) = 0._wp 599 602 ENDIF 600 603 IF( psv_i(ji,jj,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 601 sfx_res(ji,jj) = sfx_res(ji,jj) + psv_i(ji,jj,jl) * rhoi * r1_rdtice604 sfx_res(ji,jj) = sfx_res(ji,jj) + psv_i(ji,jj,jl) * rhoi * z1_dt 602 605 psv_i (ji,jj,jl) = 0._wp 603 606 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.