- Timestamp:
- 2017-06-02T08:53:53+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90
r8106 r8125 106 106 REAL(wp), POINTER, DIMENSION(:,:,:) :: zafrac_snw ! relative snow fraction 107 107 REAL(wp), POINTER, DIMENSION(:,:,:) :: zafrac_ice ! relative ice fraction 108 REAL(wp), POINTER, DIMENSION(:,:,:) :: zafrac_pnd ! relative ice fraction (effective) 108 109 !! 109 110 !!--------------------------------------------------------------------- … … 117 118 CALL wrk_alloc( jpi,jpj,ijpl, zalb, zalb_it ) 118 119 CALL wrk_alloc( jpi,jpj,ijpl, zalb_pnd, zalb_ice, zalb_snw ) 119 CALL wrk_alloc( jpi,jpj,ijpl, zalb_pnd, zafrac_snw, zafrac_ice )120 CALL wrk_alloc( jpi,jpj,ijpl, zalb_pnd, zafrac_snw, zafrac_ice, zafrac_pnd ) 120 121 121 122 IF( albd_init == 0 ) CALL albedo_init ! initialization … … 281 282 282 283 ! MV: I propose this formulation that is more elegant, and more easy to expand towards 283 ! varying pond and snow fraction 284 284 ! varying pond and snow fraction. 285 ! Formulation 1 has issues to handle ponds and snow together that 286 ! can't easily be fixed. This one handles it better, I believe. 287 285 288 !----------------------------------------- 286 289 ! Snow, bare ice and ponded ice fractions 287 290 !----------------------------------------- 288 291 ! Specific fractions (zafrac) refer to relative area covered by snow within each ice category 289 292 293 !--- Effective pond fraction (for now, we prevent melt ponds and snow at the same time) 294 zafrac_pnd = 0._wp 295 IF ( ld_pnd ) THEN 296 WHERE( ph_snw == 0._wp ) ; zafrac_pnd = pafrac_pnd ; END WHERE ! Snow fully "shades" melt ponds 297 ENDIF 298 290 299 !--- Specific snow fraction (for now, prescribed) 291 300 WHERE ( ph_snw > 0._wp ) ; zafrac_snw = 1. … … 294 303 295 304 !--- Specific ice fraction 296 zafrac_ice = 1. - zafrac_snw - pafrac_pnd 297 ! WHERE ( ph_ice > 1.0e-6_wp ) ; zafrac_ice = 1. - zafrac_snw - pafrac_pnd 298 ! ELSE WHERE ; zafrac_ice = 0. 299 ! ENDWHERE 305 zafrac_ice = 1. - zafrac_snw - zafrac_pnd 300 306 301 307 !-------------------------------------------------- … … 324 330 325 331 ! Surface albedo is weighted mean of snow, ponds and bare ice contributions 326 pa_ice_os = zafrac_snw * zalb_snw + pafrac_pnd * zalb_pnd + zafrac_ice * zalb_ice332 pa_ice_os = zafrac_snw * zalb_snw + zafrac_pnd * zalb_pnd + zafrac_ice * zalb_ice 327 333 328 334 pa_ice_cs = pa_ice_os - ( - 0.1010 * pa_ice_os * pa_ice_os + 0.1933 * pa_ice_os - 0.0148 ) … … 332 338 CALL wrk_dealloc( jpi,jpj,ijpl, zalb, zalb_it ) 333 339 CALL wrk_dealloc( jpi,jpj,ijpl, zalb_pnd, zalb_ice, zalb_snw ) 334 CALL wrk_dealloc( jpi,jpj,ijpl, zalb_pnd, zafrac_snw, zafrac_ice )340 CALL wrk_dealloc( jpi,jpj,ijpl, zalb_pnd, zafrac_snw, zafrac_ice, zafrac_pnd ) 335 341 ! 336 342 END SUBROUTINE albedo_ice
Note: See TracChangeset
for help on using the changeset viewer.