Changeset 2834 for branches/2011/dev_r2802_UKMO8_sbccpl
- Timestamp:
- 2011-09-13T13:19:25+02:00 (13 years ago)
- Location:
- branches/2011/dev_r2802_UKMO8_sbccpl/NEMOGCM/NEMO
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2802_UKMO8_sbccpl/NEMOGCM/NEMO/LIM_SRC_2/limthd_zdf_2.F90
r2715 r2834 372 372 DO ji = kideb, kiut 373 373 sist_1d(ji) = MIN( ztsmlt(ji) , sist_1d(ji) ) 374 qla_ice_1d(ji) = -9999. ! default definition, not used as parsub = 0. in this case 374 375 zfcsu(ji) = zksndh(ji) * ( ztbif(ji) - sist_1d(ji) ) 375 376 END DO -
branches/2011/dev_r2802_UKMO8_sbccpl/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r2832 r2834 1125 1125 USE wrk_nemo, ONLY: zcptn => wrk_2d_2 ! rcp * tn(:,:,1) 1126 1126 USE wrk_nemo, ONLY: ztmp => wrk_2d_3 ! temporary array 1127 USE wrk_nemo, ONLY: zsnow => wrk_2d_4 ! snow precipitation 1128 USE wrk_nemo, ONLY: zicefr => wrk_2d_5 ! total ice fraction 1127 USE wrk_nemo, ONLY: zicefr => wrk_2d_4 ! ice fraction 1129 1128 !! 1130 1129 REAL(wp), INTENT(in ), DIMENSION(:,:) :: p_frld ! lead fraction [0 to 1] … … 1137 1136 !!---------------------------------------------------------------------- 1138 1137 1139 IF( wrk_in_use(2, 2,3,4 ,5) ) THEN1138 IF( wrk_in_use(2, 2,3,4) ) THEN 1140 1139 CALL ctl_stop('sbc_cpl_ice_flx: requested workspace arrays unavailable') ; RETURN 1141 1140 ENDIF … … 1153 1152 SELECT CASE( TRIM( sn_rcv_emp%cldes ) ) 1154 1153 CASE( 'conservative' ) ! received fields: jpr_rain, jpr_snow, jpr_ievp, jpr_tevp 1155 sprecip 1156 tprecip 1154 sprecip(:,:) = frcv(jpr_snow)%z3(:,:,1) ! May need to ensure positive here 1155 tprecip(:,:) = frcv(jpr_rain)%z3(:,:,1) + sprecip (:,:) ! May need to ensure positive here 1157 1156 emp_tot(:,:) = frcv(jpr_tevp)%z3(:,:,1) - tprecip(:,:) 1158 1157 emp_ice(:,:) = frcv(jpr_ievp)%z3(:,:,1) - frcv(jpr_snow)%z3(:,:,1) 1159 zsnow(:,:) = frcv(jpr_snow)%z3(:,:,1)1160 1158 CALL iom_put( 'rain' , frcv(jpr_rain)%z3(:,:,1) ) ! liquid precipitation 1161 1159 IF( lk_diaar5 ) CALL iom_put( 'hflx_rain_cea', frcv(jpr_rain)%z3(:,:,1) * zcptn(:,:) ) ! heat flux from liq. precip. … … 1166 1164 emp_tot(:,:) = p_frld(:,:) * frcv(jpr_oemp)%z3(:,:,1) + zicefr(:,:) * frcv(jpr_sbpr)%z3(:,:,1) 1167 1165 emp_ice(:,:) = frcv(jpr_semp)%z3(:,:,1) 1168 zsnow(:,:) = - frcv(jpr_semp)%z3(:,:,1) + frcv(jpr_ievp)%z3(:,:,1)1166 sprecip(:,:) = - frcv(jpr_semp)%z3(:,:,1) + frcv(jpr_ievp)%z3(:,:,1) 1169 1167 END SELECT 1170 #if ! defined key_cice 1171 sprecip(:,:) = - emp_ice(:,:) 1172 #endif 1173 CALL iom_put( 'snowpre' , zsnow ) ! Snow 1174 CALL iom_put( 'snow_ao_cea', zsnow(:,: ) * p_frld(:,:) ) ! Snow over ice-free ocean (cell average) 1175 CALL iom_put( 'snow_ai_cea', zsnow(:,: ) * zicefr(:,:) ) ! Snow over sea-ice (cell average) 1168 1169 CALL iom_put( 'snowpre' , sprecip ) ! Snow 1170 CALL iom_put( 'snow_ao_cea', sprecip(:,: ) * p_frld(:,:) ) ! Snow over ice-free ocean (cell average) 1171 CALL iom_put( 'snow_ai_cea', sprecip(:,: ) * zicefr(:,:) ) ! Snow over sea-ice (cell average) 1176 1172 CALL iom_put( 'subl_ai_cea', frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) ) ! Sublimation over sea-ice (cell average) 1177 1173 ! … … 1221 1217 IF ( TRIM(sn_rcv_qns%clcat) == 'yes' ) THEN 1222 1218 DO jl=1,jpl 1223 ! ** NEED TO MAKE SURE a_i IS PROPERLY SET AND AVAILABLE IN THIS ROUTINE **1224 1219 qns_tot(:,: ) = qns_tot(:,:) + a_i(:,:,jl) * frcv(jpr_qnsice)%z3(:,:,jl) 1225 1220 qns_ice(:,:,jl) = frcv(jpr_qnsice)%z3(:,:,jl) … … 1238 1233 & + pist(:,:,1) * zicefr(:,:) ) ) 1239 1234 END SELECT 1240 ztmp(:,:) = p_frld(:,:) * zsnow(:,:) * lfus ! add the latent heat of solid precip. melting1235 ztmp(:,:) = p_frld(:,:) * sprecip(:,:) * lfus ! add the latent heat of solid precip. melting 1241 1236 qns_tot(:,:) = qns_tot(:,:) - ztmp(:,:) ! over free ocean 1242 IF( lk_diaar5 ) CALL iom_put( 'hflx_snow_cea', ztmp + zsnow(:,:) * zcptn(:,:) ) ! heat flux from snow (cell average)1237 IF( lk_diaar5 ) CALL iom_put( 'hflx_snow_cea', ztmp + sprecip(:,:) * zcptn(:,:) ) ! heat flux from snow (cell average) 1243 1238 !!gm 1244 1239 !! currently it is taken into account in leads budget but not in the qns_tot, and thus not in … … 1276 1271 IF ( TRIM(sn_rcv_qsr%clcat) == 'yes' ) THEN 1277 1272 DO jl=1,jpl 1278 ! ** NEED TO MAKE SURE a_i IS PROPERLY SET AND AVAILABLE IN THIS ROUTINE **1279 1273 qsr_tot(:,: ) = qsr_tot(:,:) + a_i(:,:,jl) * frcv(jpr_qsrice)%z3(:,:,jl) 1280 1274 qsr_ice(:,:,jl) = frcv(jpr_qsrice)%z3(:,:,jl) … … 1292 1286 ! ( see OASIS3 user guide, 5th edition, p39 ) 1293 1287 qsr_ice(:,:,1) = frcv(jpr_qsrmix)%z3(:,:,1) * ( 1.- palbi(:,:,1) ) & 1294 & / ( 1.- ( albedo_oce_mix(:,: ) * p_frld(:,:) &1288 & / ( 1.- ( albedo_oce_mix(:,: ) * p_frld(:,:) & 1295 1289 & + palbi (:,:,1) * zicefr(:,:) ) ) 1296 1290 END SELECT … … 1320 1314 END SELECT 1321 1315 1322 IF( wrk_not_released(2, 2,3,4 ,5) ) CALL ctl_stop('sbc_cpl_ice_flx: failed to release workspace arrays')1316 IF( wrk_not_released(2, 2,3,4) ) CALL ctl_stop('sbc_cpl_ice_flx: failed to release workspace arrays') 1323 1317 ! 1324 1318 END SUBROUTINE sbc_cpl_ice_flx -
branches/2011/dev_r2802_UKMO8_sbccpl/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim_2.F90
r2832 r2834 202 202 #if defined key_coupled 203 203 ! ! Ice surface fluxes in coupled mode 204 IF( ksbc == 5 ) CALL sbc_cpl_ice_flx( frld, & 204 IF( ksbc == 5 ) THEN 205 a_i(:,:,1)=fr_i 206 CALL sbc_cpl_ice_flx( frld, & 205 207 ! optional arguments, used only in 'mixed oce-ice' case 206 208 & palbi = zalb_ice_cs, psst = sst_m, pist = zsist ) 209 sprecip(:,:) = - emp_ice(:,:) ! Ugly patch, WARNING, in coupled mode, sublimation included in snow (parsub = 0.) 210 ENDIF 207 211 #endif 208 212 CALL lim_thd_2 ( kt ) ! Ice thermodynamics
Note: See TracChangeset
for help on using the changeset viewer.