- Timestamp:
- 2020-02-14T17:41:07+01:00 (4 years ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/ICE/icethd_zdf_bl99.F90
r12189 r12388 771 771 ! bottom ice conduction flux 772 772 DO ji = 1, npti 773 qcn_ice_bot_1d(ji) = 773 qcn_ice_bot_1d(ji) = - zkappa_i(ji,nlay_i) * zg1 * ( t_bo_1d(ji ) - t_i_1d (ji,nlay_i) ) 774 774 END DO 775 775 ! surface ice conduction flux … … 785 785 DO ji = 1, npti 786 786 qcn_ice_top_1d(ji) = qcn_ice_1d(ji) 787 ! 787 END DO 788 ! 789 ENDIF 790 ! surface ice temperature 791 IF( k_cnd == np_cnd_ON .AND. ln_cndemulate ) THEN 792 ! 793 DO ji = 1, npti 788 794 t_su_1d(ji) = ( qcn_ice_top_1d(ji) & ! calculate surface temperature 789 795 & + isnow(ji) * zkappa_s(ji,0) * zg1s * t_s_1d(ji,1) & … … 866 872 t_i_1d (1:npti,:) = ztiold (1:npti,:) 867 873 qcn_ice_1d(1:npti) = qcn_ice_top_1d(1:npti) 868 869 !!clem870 ! remettre t_su_1d, qns_ice_1d et dqns_ice_1d comme avant puisqu'on devrait faire comme si on avant conduction = input871 !clem872 874 ENDIF 873 875 ! -
NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/OCE/SBC/sbc_ice.F90
r11916 r12388 70 70 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wndm_ice !: wind speed module at T-point [m/s] 71 71 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sstfrz !: wind speed module at T-point [m/s] 72 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tsfc_ice !: sea ice surface skin temperature (on categories)73 72 #endif 74 73 … … 133 132 & qemp_ice(jpi,jpj) , qevap_ice(jpi,jpj,jpl) , qemp_oce (jpi,jpj) , & 134 133 & qns_oce (jpi,jpj) , qsr_oce (jpi,jpj) , emp_oce (jpi,jpj) , & 135 & emp_ice (jpi,jpj) , tsfc_ice (jpi,jpj,jpl) , sstfrz(jpi,jpj) , STAT= ierr(2) )134 & emp_ice (jpi,jpj) , sstfrz (jpi,jpj) , STAT= ierr(2) ) 136 135 #endif 137 136 -
NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl/src/OCE/SBC/sbccpl.F90
r12373 r12388 1261 1261 IF( srcv(jpr_co2)%laction ) atm_co2(:,:) = frcv(jpr_co2)%z3(:,:,1) 1262 1262 ! 1263 ! ! ================== !1264 ! ! ice skin temp. !1265 ! ! ================== !1266 #if defined key_si31267 ! needed by Met Office1268 IF( srcv(jpr_ts_ice)%laction ) THEN1269 WHERE ( frcv(jpr_ts_ice)%z3(:,:,:) > 0.0 ) ; tsfc_ice(:,:,:) = 0.01270 ELSEWHERE( frcv(jpr_ts_ice)%z3(:,:,:) < -60. ) ; tsfc_ice(:,:,:) = -60.1271 ELSEWHERE ; tsfc_ice(:,:,:) = frcv(jpr_ts_ice)%z3(:,:,:)1272 END WHERE1273 ENDIF1274 #endif1275 1263 ! ! ========================= ! 1276 1264 ! ! Mean Sea Level Pressure ! (taum) … … 1648 1636 !! sprecip solid precipitation over the ocean 1649 1637 !!---------------------------------------------------------------------- 1650 REAL(wp), INTENT(in) , DIMENSION(:,:) :: picefr ! ice fraction [0 to 1]1651 ! !! ! optional arguments, used only in 'mixed oce-ice' case1652 REAL(wp), INTENT(in) , DIMENSION(:,:,:), OPTIONAL :: palbi ! all skies ice albedo1653 REAL(wp), INTENT(in) , DIMENSION(:,: ), OPTIONAL :: psst ! sea surface temperature [Celsius]1654 REAL(wp), INTENT(in ), DIMENSION(:,:,:), OPTIONAL :: pist ! ice surface temperature [Kelvin]1655 REAL(wp), INTENT(in) , DIMENSION(:,:,:), OPTIONAL :: phs ! snow depth [m]1656 REAL(wp), INTENT(in) , DIMENSION(:,:,:), OPTIONAL :: phi ! ice thickness [m]1638 REAL(wp), INTENT(in) , DIMENSION(:,:) :: picefr ! ice fraction [0 to 1] 1639 ! !! ! optional arguments, used only in 'mixed oce-ice' case or for Met-Office coupling 1640 REAL(wp), INTENT(in) , DIMENSION(:,:,:), OPTIONAL :: palbi ! all skies ice albedo 1641 REAL(wp), INTENT(in) , DIMENSION(:,: ), OPTIONAL :: psst ! sea surface temperature [Celsius] 1642 REAL(wp), INTENT(inout), DIMENSION(:,:,:), OPTIONAL :: pist ! ice surface temperature [Kelvin] => inout for Met-Office 1643 REAL(wp), INTENT(in) , DIMENSION(:,:,:), OPTIONAL :: phs ! snow depth [m] 1644 REAL(wp), INTENT(in) , DIMENSION(:,:,:), OPTIONAL :: phi ! ice thickness [m] 1657 1645 ! 1658 1646 INTEGER :: ji, jj, jl ! dummy loop index … … 1662 1650 REAL(wp), DIMENSION(jpi,jpj) :: zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice 1663 1651 REAL(wp), DIMENSION(jpi,jpj) :: zevap_ice_total 1664 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zqns_ice, zqsr_ice, zdqns_ice, zqevap_ice, zevap_ice !!gm , zfrqsr_tr_i1652 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zqns_ice, zqsr_ice, zdqns_ice, zqevap_ice, zevap_ice, zqtr_ice_top, ztsu 1665 1653 !!---------------------------------------------------------------------- 1666 1654 ! … … 2073 2061 ! 2074 2062 ! ! ===> used prescribed cloud fraction representative for polar oceans in summer (0.81) 2075 ztri = 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ! surface transmission parameter(Grenfell Maykut 77)2063 ztri = 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ! surface transmission when hi>10cm (Grenfell Maykut 77) 2076 2064 ! 2077 qtr_ice_top(:,:,:) = ztri * qsr_ice(:,:,:) 2078 WHERE( phs(:,:,:) >= 0.0_wp ) qtr_ice_top(:,:,:) = 0._wp ! snow fully opaque 2079 WHERE( phi(:,:,:) <= 0.1_wp ) qtr_ice_top(:,:,:) = qsr_ice(:,:,:) ! thin ice transmits all solar radiation 2065 WHERE ( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) < 0.1_wp ) ! linear decrease from hi=0 to 10cm 2066 zqtr_ice_top(:,:,:) = qsr_ice(:,:,:) * ( ztri + ( 1._wp - ztri ) * ( 1._wp - phi(:,:,:) * 10._wp ) ) 2067 ELSEWHERE( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) >= 0.1_wp ) ! constant (ztri) when hi>10cm 2068 zqtr_ice_top(:,:,:) = qsr_ice(:,:,:) * ztri 2069 ELSEWHERE ! zero when hs>0 2070 zqtr_ice_top(:,:,:) = 0._wp 2071 END WHERE 2080 2072 ! 2081 2073 ELSEIF( ln_cndflx .AND. .NOT.ln_cndemulate ) THEN !== conduction flux as surface forcing ==! … … 2083 2075 ! ! ===> here we must receive the qtr_ice_top array from the coupler 2084 2076 ! for now just assume zero (fully opaque ice) 2085 qtr_ice_top(:,:,:) = 0._wp 2077 zqtr_ice_top(:,:,:) = 0._wp 2078 ! 2079 ENDIF 2080 ! 2081 IF( ln_mixcpl ) THEN 2082 DO jl=1,jpl 2083 qtr_ice_top(:,:,jl) = qtr_ice_top(:,:,jl) * xcplmask(:,:,0) + zqtr_ice_top(:,:,jl) * zmsk(:,:) 2084 ENDDO 2085 ELSE 2086 qtr_ice_top(:,:,:) = zqtr_ice_top(:,:,:) 2087 ENDIF 2088 ! ! ================== ! 2089 ! ! ice skin temp. ! 2090 ! ! ================== ! 2091 ! needed by Met Office 2092 IF( srcv(jpr_ts_ice)%laction ) THEN 2093 WHERE ( frcv(jpr_ts_ice)%z3(:,:,:) > 0.0 ) ; ztsu(:,:,:) = 0.0 + rt0 2094 ELSEWHERE( frcv(jpr_ts_ice)%z3(:,:,:) < -60. ) ; ztsu(:,:,:) = -60. + rt0 2095 ELSEWHERE ; ztsu(:,:,:) = frcv(jpr_ts_ice)%z3(:,:,:) + rt0 2096 END WHERE 2097 ! 2098 IF( ln_mixcpl ) THEN 2099 DO jl=1,jpl 2100 pist(:,:,jl) = pist(:,:,jl) * xcplmask(:,:,0) + ztsu(:,:,jl) * zmsk(:,:) 2101 ENDDO 2102 ELSE 2103 pist(:,:,:) = ztsu(:,:,:) 2104 ENDIF 2086 2105 ! 2087 2106 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.