- Timestamp:
- 2015-01-29T14:13:14+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5044_CNRS_LIM3CLEAN/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90
r4990 r5047 70 70 71 71 REAL(wp) :: ztmelts ! local scalar 72 REAL(wp) :: z dh, zfdum !72 REAL(wp) :: zfdum 73 73 REAL(wp) :: zfracs ! fractionation coefficient for bottom salt entrapment 74 74 REAL(wp) :: zcoeff ! dummy argument for snowfall partitioning over ice and leads … … 91 91 REAL(wp), POINTER, DIMENSION(:) :: zq_su ! heat for surface ablation (J.m-2) 92 92 REAL(wp), POINTER, DIMENSION(:) :: zq_bo ! heat for bottom ablation (J.m-2) 93 REAL(wp), POINTER, DIMENSION(:) :: zq_1cat ! corrected heat in case 1-cat and hmelt>15cm (J.m-2)94 93 REAL(wp), POINTER, DIMENSION(:) :: zq_rema ! remaining heat at the end of the routine (J.m-2) 95 94 REAL(wp), POINTER, DIMENSION(:) :: zf_tt ! Heat budget to determine melting or freezing(W.m-2) … … 107 106 REAL(wp), POINTER, DIMENSION(:) :: zq_s ! total snow enthalpy (J.m-3) 108 107 109 ! mass and salt flux (clem) 110 REAL(wp) :: zdvres, zswitch_sal 108 REAL(wp) :: zswitch_sal 111 109 112 110 ! Heat conservation … … 121 119 END SELECT 122 120 123 CALL wrk_alloc( jpij, zh_s, zqprec, zq_su, zq_bo, zf_tt, zq_ 1cat, zq_rema )121 CALL wrk_alloc( jpij, zh_s, zqprec, zq_su, zq_bo, zf_tt, zq_rema ) 124 122 CALL wrk_alloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i, zqh_s, zq_s ) 125 123 CALL wrk_alloc( jpij, nlay_i+1, zdeltah, zh_i ) … … 130 128 131 129 zqprec (:) = 0._wp ; zq_su (:) = 0._wp ; zq_bo (:) = 0._wp ; zf_tt (:) = 0._wp 132 zq_ 1cat(:) = 0._wp ; zq_rema(:) = 0._wp130 zq_rema(:) = 0._wp 133 131 134 132 zh_s (:) = 0._wp … … 579 577 END DO ! jk 580 578 581 !------------------------------------------------------------------------------!582 ! Excessive ablation in a 1-category model583 ! in a 1-category sea ice model, bottom ablation must not exceed hmelt (-0.15)584 !------------------------------------------------------------------------------!585 ! ??? keep ???586 ! clem bug: I think this should be included above, so we would not have to587 ! track heat/salt/mass fluxes backwards588 ! IF( jpl == 1 ) THEN589 ! DO ji = kideb, kiut590 ! IF( zf_tt(ji) >= 0._wp ) THEN591 ! zdh = MAX( hmelt , dh_i_bott(ji) )592 ! zdvres = zdh - dh_i_bott(ji) ! >=0593 ! dh_i_bott(ji) = zdh594 !595 ! ! excessive energy is sent to lateral ablation596 ! rswitch = MAX( 0._wp, SIGN( 1._wp , 1._wp - at_i_1d(ji) - epsi20 ) )597 ! zq_1cat(ji) = rswitch * rhoic * lfus * at_i_1d(ji) / MAX( 1._wp - at_i_1d(ji) , epsi20 ) * zdvres ! J.m-2 >=0598 !599 ! ! correct salt and mass fluxes600 ! sfx_bom_1d(ji) = sfx_bom_1d(ji) - sm_i_1d(ji) * a_i_1d(ji) * zdvres * rhoic * r1_rdtice ! this is only a raw approximation601 ! wfx_bom_1d(ji) = wfx_bom_1d(ji) - rhoic * a_i_1d(ji) * zdvres * r1_rdtice602 ! ENDIF603 ! END DO604 ! ENDIF605 606 579 !------------------------------------------- 607 580 ! Update temperature, energy … … 635 608 ii = MOD( npb(ji) - 1, jpi ) + 1 ; ij = ( npb(ji) - 1 ) / jpi + 1 636 609 ! Remaining heat flux (W.m-2) is sent to the ocean heat budget 637 hfx_out(ii,ij) = hfx_out(ii,ij) + ( zq_ 1cat(ji) + zq_rema(ji) * a_i_1d(ji) ) * r1_rdtice610 hfx_out(ii,ij) = hfx_out(ii,ij) + ( zq_rema(ji) * a_i_1d(ji) ) * r1_rdtice 638 611 639 612 IF( ln_nicep .AND. zq_rema(ji) < 0. .AND. lwp ) WRITE(numout,*) 'ALERTE zq_rema <0 = ', zq_rema(ji) … … 716 689 END DO 717 690 718 CALL wrk_dealloc( jpij, zh_s, zqprec, zq_su, zq_bo, zf_tt, zq_ 1cat, zq_rema )691 CALL wrk_dealloc( jpij, zh_s, zqprec, zq_su, zq_bo, zf_tt, zq_rema ) 719 692 CALL wrk_dealloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i, zqh_s, zq_s ) 720 693 CALL wrk_dealloc( jpij, nlay_i+1, zdeltah, zh_i )
Note: See TracChangeset
for help on using the changeset viewer.