Changeset 8962 for branches/2017/dev_CNRS_2017/NEMOGCM/NEMO
- Timestamp:
- 2017-12-08T16:15:25+01:00 (6 years ago)
- Location:
- branches/2017/dev_CNRS_2017/NEMOGCM/NEMO
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/LIM_SRC_3/iceforcing.F90
r8920 r8962 139 139 ! 140 140 CASE( jp_usr ) !--- user defined formulation 141 CALL usrdef_sbc_ice_flx( kt )141 CALL usrdef_sbc_ice_flx( kt, h_s, h_i ) 142 142 CASE( jp_blk ) !--- bulk formulation 143 143 CALL blk_ice_flx ( t_su, h_s, h_i, alb_ice ) ! -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90
r8920 r8962 843 843 REAL(wp) :: zcoef_dqlw, zcoef_dqla ! - - 844 844 REAL(wp) :: zztmp, z1_lsub ! - - 845 REAL(wp) :: zfrqsr_tr_i ! sea ice shortwave fraction transmitted below through the ice 846 REAL(wp) :: zfr1, zfr2, zfac ! local variables 845 REAL(wp) :: zfr1, zfr2 ! local variables 847 846 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z_qlw ! long wave heat flux over ice 848 847 REAL(wp), DIMENSION(jpi,jpj,jpl) :: z_qsb ! sensible heat flux over ice … … 951 950 END DO 952 951 953 ! --- absorbed and transmitted shortwave radiation (W/m2) --- ! 954 ! 955 ! former coding was 956 ! fr1_i0(:,:) = ( 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ) 957 ! fr2_i0(:,:) = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) 958 959 ! --- surface transmission parameter (i0, Grenfell Maykut 77) --- ! 960 zfr1 = ( 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ) ! standard value 961 zfr2 = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) ! zfr2 such that zfr1 + zfr2 to equal 1 962 963 qsr_ice_tr(:,:,:) = 0._wp 964 965 DO jl = 1, jpl 966 DO jj = 1, jpj 967 DO ji = 1, jpi 968 ! 969 zfac = MAX( 0._wp , 1._wp - phi(ji,jj,jl) * 10._wp ) ! linear weighting factor: =0 for phi=0, =1 for phi = 0.1 970 zfrqsr_tr_i = zfr1 + zfac * zfr2 ! below 10 cm, linearly increase zfrqsr_tr_i until 1 at zero thickness 971 ! 972 IF ( phs(ji,jj,jl) <= 0._wp ) THEN ; zfrqsr_tr_i = zfr1 + zfac * zfr2 973 ELSE ; zfrqsr_tr_i = 0._wp ! snow fully opaque 974 ENDIF 975 ! 976 qsr_ice_tr(ji,jj,jl) = zfrqsr_tr_i * qsr_ice(ji,jj,jl) ! transmitted solar radiation 977 ! 978 END DO 979 END DO 980 END DO 952 ! --- shortwave radiation transmitted below the surface (W/m2, see Grenfell Maykut 77) --- ! 953 zfr1 = ( 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ) ! transmission when hi>10cm 954 zfr2 = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) ! zfr2 such that zfr1 + zfr2 to equal 1 955 ! 956 WHERE ( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) < 0.1_wp ) ! linear decrease from hi=0 to 10cm 957 qsr_ice_tr(:,:,:) = qsr_ice(:,:,:) * ( zfr1 + zfr2 * ( 1._wp - phi(:,:,:) * 10._wp ) ) 958 ELSEWHERE( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) >= 0.1_wp ) ! constant (zfr1) when hi>10cm 959 qsr_ice_tr(:,:,:) = qsr_ice(:,:,:) * zfr1 960 ELSEWHERE ! zero when hs>0 961 qsr_ice_tr(:,:,:) = 0._wp 962 END WHERE 981 963 ! 982 964 IF(ln_ctl) THEN -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r8948 r8962 47 47 USE iom ! NetCDF library 48 48 USE lib_mpp ! distribued memory computing library 49 USE wrk_nemo ! work arrays50 49 USE timing ! Timing 51 50 USE lbclnk ! ocean lateral boundary conditions (or mpp link) … … 244 243 INTEGER :: jn ! dummy loop index 245 244 INTEGER :: ios, inum ! Local integer 246 REAL(wp), POINTER, DIMENSION(:,:) :: zacs, zaos245 REAL(wp), DIMENSION(jpi,jpj) :: zacs, zaos 247 246 !! 248 247 NAMELIST/namsbc_cpl/ sn_snd_temp , sn_snd_alb , sn_snd_thick, sn_snd_crt , sn_snd_co2 , & … … 258 257 IF( nn_timing == 1 ) CALL timing_start('sbc_cpl_init') 259 258 ! 260 CALL wrk_alloc( jpi,jpj, zacs, zaos )261 262 259 ! ================================ ! 263 260 ! Namelist informations ! … … 1028 1025 IF( ln_dm2dc .AND. ln_cpl ) ncpl_qsr_freq = 86400 / ncpl_qsr_freq 1029 1026 1030 CALL wrk_dealloc( jpi,jpj, zacs, zaos )1031 1027 ! 1032 1028 IF( nn_timing == 1 ) CALL timing_stop('sbc_cpl_init') -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/USR/usrdef_sbc.F90
r8882 r8962 229 229 END SUBROUTINE usrdef_sbc_ice_tau 230 230 231 SUBROUTINE usrdef_sbc_ice_flx( kt )231 SUBROUTINE usrdef_sbc_ice_flx( kt, phs, phi ) 232 232 INTEGER, INTENT(in) :: kt ! ocean time step 233 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: phs ! snow thickness 234 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: phi ! ice thickness 233 235 END SUBROUTINE usrdef_sbc_ice_flx 234 236
Note: See TracChangeset
for help on using the changeset viewer.