- Timestamp:
- 2012-11-21T14:19:18+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_NOC_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r3294 r3625 664 664 !! ** Action : update utau, vtau ocean stress at U,V grid 665 665 !! taum, wndm wind stres and wind speed module at T-point 666 !! qns , qsr non solar and solar ocean heat fluxes ('ocean only case) 667 !! emp = emps evap. - precip. (- runoffs) (- calving) ('ocean only case) 666 !! qns non solar heat fluxes including emp heat content (ocean only case) 667 !! and the latent heat flux of solid precip. melting 668 !! qsr solar ocean heat fluxes (ocean only case) 669 !! emp upward mass flux [evap. - precip. (- runoffs) (- calving)] (ocean only case) 668 670 !!---------------------------------------------------------------------- 669 671 INTEGER, INTENT(in) :: kt ! ocean model time step index … … 777 779 ! Stress module can be negative when received (interpolation problem) 778 780 IF( llnewtau ) THEN 779 frcv(jpr_taum)%z3(:,:,1) = MAX( 0. 0e0, frcv(jpr_taum)%z3(:,:,1) )781 frcv(jpr_taum)%z3(:,:,1) = MAX( 0._wp, frcv(jpr_taum)%z3(:,:,1) ) 780 782 ENDIF 781 783 ENDIF … … 821 823 ! ! ========================= ! 822 824 ! 823 ! ! non solar heat flux over the ocean (qns) 824 IF( srcv(jpr_qnsoce)%laction ) qns(:,:) = frcv(jpr_qnsoce)%z3(:,:,1) 825 IF( srcv(jpr_qnsmix)%laction ) qns(:,:) = frcv(jpr_qnsmix)%z3(:,:,1) 826 ! add the latent heat of solid precip. melting 827 IF( srcv(jpr_snow )%laction ) qns(:,:) = qns(:,:) - frcv(jpr_snow)%z3(:,:,1) * lfus 828 829 ! ! solar flux over the ocean (qsr) 830 IF( srcv(jpr_qsroce)%laction ) qsr(:,:) = frcv(jpr_qsroce)%z3(:,:,1) 831 IF( srcv(jpr_qsrmix)%laction ) qsr(:,:) = frcv(jpr_qsrmix)%z3(:,:,1) 832 IF( ln_dm2dc ) qsr(:,:) = sbc_dcy( qsr ) ! modify qsr to include the diurnal cycle 833 ! 834 ! ! total freshwater fluxes over the ocean (emp, emps) 825 ! ! total freshwater fluxes over the ocean (emp) 835 826 SELECT CASE( TRIM( sn_rcv_emp%cldes ) ) ! evaporation - precipitation 836 827 CASE( 'conservative' ) … … 863 854 !!gm end of internal cooking 864 855 ! 865 emps(:,:) = emp(:,:) ! concentration/dilution = emp 856 ! ! non solar heat flux over the ocean (qns) 857 IF( srcv(jpr_qnsoce)%laction ) qns(:,:) = frcv(jpr_qnsoce)%z3(:,:,1) 858 IF( srcv(jpr_qnsmix)%laction ) qns(:,:) = frcv(jpr_qnsmix)%z3(:,:,1) 859 ! add the latent heat of solid precip. melting 860 IF( srcv(jpr_snow )%laction ) THEN ! update qns over the free ocean with: 861 qns(:,:) = qns(:,:) - frcv(jpr_snow)%z3(:,:,1) * lfus & ! energy for melting solid precipitation over the free ocean 862 & - emp(:,:) * sst_m(:,:) * rcp ! remove heat content due to mass flux (assumed to be at SST) 863 ENDIF 864 865 ! ! solar flux over the ocean (qsr) 866 IF( srcv(jpr_qsroce)%laction ) qsr(:,:) = frcv(jpr_qsroce)%z3(:,:,1) 867 IF( srcv(jpr_qsrmix)%laction ) qsr(:,:) = frcv(jpr_qsrmix)%z3(:,:,1) 868 IF( ln_dm2dc ) qsr(:,:) = sbc_dcy( qsr ) ! modify qsr to include the diurnal cycle 869 ! 866 870 867 871 ENDIF … … 1141 1145 1142 1146 zicefr(:,:) = 1.- p_frld(:,:) 1143 IF( lk_diaar5 ) zcptn(:,:) = rcp * tsn(:,:,1,jp_tem)1147 zcptn(:,:) = rcp * sst_m(:,:) 1144 1148 ! 1145 1149 ! ! ========================= ! … … 1233 1237 & + pist(:,:,1) * zicefr(:,:) ) ) 1234 1238 END SELECT 1235 ztmp(:,:) = p_frld(:,:) * sprecip(:,:) * lfus ! add the latent heat of solid precip. melting 1236 qns_tot(:,:) = qns_tot(:,:) - ztmp(:,:) ! over free ocean 1239 ztmp(:,:) = p_frld(:,:) * sprecip(:,:) * lfus 1240 qns_tot(:,:) = qns_tot(:,:) & ! qns_tot update over free ocean with: 1241 & - ztmp(:,:) & ! remove the latent heat flux of solid precip. melting 1242 & - ( emp_tot(:,:) & ! remove the heat content of mass flux (assumed to be at SST) 1243 & - emp_ice(:,:) * zicefr(:,:) ) * zcptn(:,:) 1237 1244 IF( lk_diaar5 ) CALL iom_put( 'hflx_snow_cea', ztmp + sprecip(:,:) * zcptn(:,:) ) ! heat flux from snow (cell average) 1238 1245 !!gm … … 1254 1261 ! ! ========================= ! 1255 1262 CASE( 'oce only' ) 1256 qsr_tot(:,: ) = MAX( 0.0,frcv(jpr_qsroce)%z3(:,:,1))1263 qsr_tot(:,: ) = MAX( 0._wp , frcv(jpr_qsroce)%z3(:,:,1) ) 1257 1264 CASE( 'conservative' ) 1258 1265 qsr_tot(:,: ) = frcv(jpr_qsrmix)%z3(:,:,1) … … 1357 1364 ztmp3(:,:,1:jpl) = tn_ice(:,:,1:jpl) * a_i(:,:,1:jpl) 1358 1365 CASE( 'no' ) 1359 ztmp3(:,:,:) = 0. 01366 ztmp3(:,:,:) = 0._wp 1360 1367 DO jl=1,jpl 1361 1368 ztmp3(:,:,1) = ztmp3(:,:,1) + tn_ice(:,:,jl) * a_i(:,:,jl) … … 1409 1416 ztmp4(:,:,1:jpl) = ht_s(:,:,1:jpl) * a_i(:,:,1:jpl) 1410 1417 CASE( 'no' ) 1411 ztmp3(:,:,:) = 0. 0 ; ztmp4(:,:,:) = 0.01418 ztmp3(:,:,:) = 0._wp ; ztmp4(:,:,:) = 0._wp 1412 1419 DO jl=1,jpl 1413 1420 ztmp3(:,:,1) = ztmp3(:,:,1) + ht_i(:,:,jl) * a_i(:,:,jl)
Note: See TracChangeset
for help on using the changeset viewer.