- Timestamp:
- 2018-07-20T10:24:45+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/dev_r9888_proto_GO8_package/src/ICE/icethd_zdf_bl99.F90
r9892 r9977 178 178 !------------- 179 179 ! --- Transmission/absorption of solar radiation in the ice --- ! 180 zradtr_s(1:npti,0) = q sr_ice_tr_1d(1:npti)180 zradtr_s(1:npti,0) = qtr_ice_top_1d(1:npti) 181 181 DO jk = 1, nlay_s 182 182 DO ji = 1, npti … … 188 188 END DO 189 189 ! 190 zradtr_i(1:npti,0) = zradtr_s(1:npti,nlay_s) * isnow(1:npti) + q sr_ice_tr_1d(1:npti) * ( 1._wp - isnow(1:npti) )190 zradtr_i(1:npti,0) = zradtr_s(1:npti,nlay_s) * isnow(1:npti) + qtr_ice_top_1d(1:npti) * ( 1._wp - isnow(1:npti) ) 191 191 DO jk = 1, nlay_i 192 192 DO ji = 1, npti … … 198 198 END DO 199 199 ! 200 ftr_ice_1d(1:npti) = zradtr_i(1:npti,nlay_i) ! record radiation transmitted below the ice200 qtr_ice_bot_1d(1:npti) = zradtr_i(1:npti,nlay_i) ! record radiation transmitted below the ice 201 201 ! 202 202 iconv = 0 ! number of iterations … … 330 330 331 331 DO ji = 1, npti 332 zfnet(ji) = qsr_ice_1d(ji) - q sr_ice_tr_1d(ji) + qns_ice_1d(ji) ! net heat flux = net - transmitted solar + non solar332 zfnet(ji) = qsr_ice_1d(ji) - qtr_ice_top_1d(ji) + qns_ice_1d(ji) ! net heat flux = net - transmitted solar + non solar 333 333 END DO 334 334 ! … … 728 728 !----------------------------- 729 729 ! 730 ! --- update conduction fluxes731 ! 730 ! --- calculate conduction fluxes (positive downward) 731 732 732 DO ji = 1, npti 733 733 ! ! surface ice conduction flux 734 fc_su(ji) = - isnow(ji) * zkappa_s(ji,0)* zg1s * ( t_s_1d(ji,1) - t_su_1d(ji) ) &735 & - ( 1._wp - isnow(ji) ) * zkappa_i(ji,0)* zg1 * ( t_i_1d(ji,1) - t_su_1d(ji) )734 qcn_ice_top_1d(ji) = - isnow(ji) * zkappa_s(ji,0) * zg1s * ( t_s_1d(ji,1) - t_su_1d(ji) ) & 735 & - ( 1._wp - isnow(ji) ) * zkappa_i(ji,0) * zg1 * ( t_i_1d(ji,1) - t_su_1d(ji) ) 736 736 ! ! bottom ice conduction flux 737 fc_bo_i(ji) = - zkappa_i(ji,nlay_i) * zg1 * ( t_bo_1d(ji) - t_i_1d(ji,nlay_i) )737 qcn_ice_bot_1d(ji) = - zkappa_i(ji,nlay_i) * zg1 * ( t_bo_1d(ji ) - t_i_1d (ji,nlay_i) ) 738 738 END DO 739 739 … … 750 750 ! 751 751 DO ji = 1, npti 752 hfx_err_dif_1d(ji) = hfx_err_dif_1d(ji) - ( fc_su(ji)- qcn_ice_1d(ji) ) * a_i_1d(ji)752 hfx_err_dif_1d(ji) = hfx_err_dif_1d(ji) - ( qcn_ice_top_1d(ji) - qcn_ice_1d(ji) ) * a_i_1d(ji) 753 753 END DO 754 754 ! … … 770 770 771 771 IF( t_su_1d(ji) < rt0 ) THEN ! case T_su < 0degC 772 zhfx_err = ( qns_ice_1d(ji) + qsr_ice_1d(ji) - zradtr_i(ji,nlay_i) - fc_bo_i(ji) + zdq * r1_rdtice )*a_i_1d(ji) 772 zhfx_err = ( qns_ice_1d(ji) + qsr_ice_1d(ji) - zradtr_i(ji,nlay_i) - qcn_ice_bot_1d(ji) & 773 & + zdq * r1_rdtice ) * a_i_1d(ji) 773 774 ELSE ! case T_su = 0degC 774 zhfx_err = ( fc_su(ji) + qsr_ice_tr_1d(ji) - zradtr_i(ji,nlay_i) - fc_bo_i(ji) + zdq * r1_rdtice )*a_i_1d(ji) 775 zhfx_err = ( qcn_ice_top_1d(ji) + qtr_ice_top_1d(ji) - zradtr_i(ji,nlay_i) - qcn_ice_bot_1d(ji) & 776 & + zdq * r1_rdtice ) * a_i_1d(ji) 775 777 ENDIF 776 778 777 779 ELSEIF( k_jules == np_jules_ACTIVE ) THEN 778 780 779 zhfx_err = ( fc_su(ji) + qsr_ice_tr_1d(ji) - zradtr_i(ji,nlay_i) - fc_bo_i(ji) + zdq * r1_rdtice ) * a_i_1d(ji) 781 zhfx_err = ( qcn_ice_top_1d(ji) + qtr_ice_top_1d(ji) - zradtr_i(ji,nlay_i) - qcn_ice_bot_1d(ji) & 782 & + zdq * r1_rdtice ) * a_i_1d(ji) 780 783 781 784 ENDIF … … 787 790 hfx_dif_1d(ji) = hfx_dif_1d(ji) - zdq * r1_rdtice * a_i_1d(ji) 788 791 ! 789 END DO790 !791 ! --- SIMIP diagnostics792 !793 DO ji = 1, npti794 !--- Conduction fluxes (positive downwards)795 diag_fc_bo_1d(ji) = diag_fc_bo_1d(ji) + fc_bo_i(ji) * a_i_1d(ji) / at_i_1d(ji)796 diag_fc_su_1d(ji) = diag_fc_su_1d(ji) + fc_su (ji) * a_i_1d(ji) / at_i_1d(ji)797 798 !--- Snow-ice interfacial temperature (diagnostic SIMIP)799 zfac = rn_cnd_s * zh_i(ji) + ztcond_i(ji,1) * zh_s(ji)800 IF( h_s_1d(ji) >= zhs_min ) THEN801 t_si_1d(ji) = ( rn_cnd_s * zh_i(ji) * t_s_1d(ji,1) + &802 & ztcond_i(ji,1) * zh_s(ji) * t_i_1d(ji,1) ) / MAX( epsi10, zfac )803 ELSE804 t_si_1d(ji) = t_su_1d(ji)805 ENDIF806 792 END DO 807 793 ! … … 827 813 IF( k_jules == np_jules_EMULE ) THEN 828 814 ! Restore temperatures to their initial values 829 t_s_1d (1:npti,:) = ztsold (1:npti,:)830 t_i_1d (1:npti,:) = ztiold (1:npti,:)831 qcn_ice_1d(1:npti) = fc_su(1:npti)815 t_s_1d (1:npti,:) = ztsold (1:npti,:) 816 t_i_1d (1:npti,:) = ztiold (1:npti,:) 817 qcn_ice_1d(1:npti) = qcn_ice_top_1d(1:npti) 832 818 ENDIF 833 819 ! 820 ! --- SIMIP diagnostics 821 ! 822 DO ji = 1, npti 823 !--- Snow-ice interfacial temperature (diagnostic SIMIP) 824 zfac = rn_cnd_s * zh_i(ji) + ztcond_i(ji,1) * zh_s(ji) 825 IF( h_s_1d(ji) >= zhs_min ) THEN 826 t_si_1d(ji) = ( rn_cnd_s * zh_i(ji) * t_s_1d(ji,1) + & 827 & ztcond_i(ji,1) * zh_s(ji) * t_i_1d(ji,1) ) / MAX( epsi10, zfac ) 828 ELSE 829 t_si_1d(ji) = t_su_1d(ji) 830 ENDIF 831 END DO 832 ! 834 833 END SUBROUTINE ice_thd_zdf_BL99 835 836 834 837 835 #else
Note: See TracChangeset
for help on using the changeset viewer.