Changeset 8962 for branches/2017/dev_CNRS_2017/NEMOGCM/CONFIG/TEST_CASES/SAS_BIPER/MY_SRC/usrdef_sbc.F90
- Timestamp:
- 2017-12-08T16:15:25+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_CNRS_2017/NEMOGCM/CONFIG/TEST_CASES/SAS_BIPER/MY_SRC/usrdef_sbc.F90
r8882 r8962 25 25 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 26 26 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 27 USE wrk_nemo28 27 29 28 IMPLICIT NONE … … 93 92 END SUBROUTINE usrdef_sbc_ice_tau 94 93 95 SUBROUTINE usrdef_sbc_ice_flx( kt )94 SUBROUTINE usrdef_sbc_ice_flx( kt, phs, phi ) 96 95 !!--------------------------------------------------------------------- 97 96 !! *** ROUTINE usrdef_sbc_ice_flx *** … … 99 98 !! ** Purpose : provide the surface boundary (flux) condition over sea-ice 100 99 !!--------------------------------------------------------------------- 101 REAL(wp), DIMENSION(:,:), POINTER :: zsnw ! snw distribution after wind blowing102 100 INTEGER, INTENT(in) :: kt ! ocean time step 101 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: phs ! snow thickness 102 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: phi ! ice thickness 103 !! 104 REAL(wp) :: zfr1, zfr2 ! local variables 105 REAL(wp), DIMENSION(jpi,jpj) :: zsnw ! snw distribution after wind blowing 103 106 !!--------------------------------------------------------------------- 104 CALL wrk_alloc( jpi,jpj, zsnw )105 107 ! 106 108 IF( kt==nit000 .AND. lwp) WRITE(numout,*)' usrdef_sbc_ice : SAS_BIPER case: NO flux forcing' … … 133 135 qsr_tot (:,:) = at_i_b(:,:) * qsr_oce(:,:) + SUM( a_i_b(:,:,:) * qsr_ice(:,:,:), dim=3 ) 134 136 135 !-------------------------------------------------------------------- 136 ! FRACTIONs of net shortwave radiation which is not absorbed in the 137 ! thin surface layer and penetrates inside the ice cover 138 ! ( Maykut and Untersteiner, 1971 ; Ebert and Curry, 1993 ) 139 fr1_i0(:,:) = ( 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ) 140 fr2_i0(:,:) = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) 141 142 CALL wrk_dealloc( jpi,jpj, zsnw ) 143 137 ! --- shortwave radiation transmitted below the surface (W/m2, see Grenfell Maykut 77) --- ! 138 zfr1 = ( 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ) ! transmission when hi>10cm 139 zfr2 = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) ! zfr2 such that zfr1 + zfr2 to equal 1 140 ! 141 WHERE ( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) < 0.1_wp ) ! linear decrease from hi=0 to 10cm 142 qsr_ice_tr(:,:,:) = qsr_ice(:,:,:) * ( zfr1 + zfr2 * ( 1._wp - phi(:,:,:) * 10._wp ) ) 143 ELSEWHERE( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) >= 0.1_wp ) ! constant (zfr1) when hi>10cm 144 qsr_ice_tr(:,:,:) = qsr_ice(:,:,:) * zfr1 145 ELSEWHERE ! zero when hs>0 146 qsr_ice_tr(:,:,:) = 0._wp 147 END WHERE 148 144 149 END SUBROUTINE usrdef_sbc_ice_flx 145 150
Note: See TracChangeset
for help on using the changeset viewer.