- Timestamp:
- 2020-06-26T10:26:32+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r12563_ASINTER-06_ABL_improvement
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12563_ASINTER-06_ABL_improvement
- Property svn:externals
-
old new 8 8 9 9 # SETTE 10 ^/utils/CI/sette@ HEADsette10 ^/utils/CI/sette@12931 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_r12563_ASINTER-06_ABL_improvement/src/OCE/SBC/sbcblk.F90
r12799 r13159 632 632 633 633 END SELECT 634 634 635 IF( iom_use('Cd_oce') ) CALL iom_put("Cd_oce", zcd_oce * tmask(:,:,1)) 636 IF( iom_use('Ce_oce') ) CALL iom_put("Ce_oce", zce_oce * tmask(:,:,1)) 637 IF( iom_use('Ch_oce') ) CALL iom_put("Ch_oce", zch_oce * tmask(:,:,1)) 638 !! LB: mainly here for debugging purpose: 639 IF( iom_use('theta_zt') ) CALL iom_put("theta_zt", (ztpot-rt0) * tmask(:,:,1)) ! potential temperature at z=zt 640 IF( iom_use('q_zt') ) CALL iom_put("q_zt", zqair * tmask(:,:,1)) ! specific humidity " 641 IF( iom_use('theta_zu') ) CALL iom_put("theta_zu", (t_zu -rt0) * tmask(:,:,1)) ! potential temperature at z=zu 642 IF( iom_use('q_zu') ) CALL iom_put("q_zu", q_zu * tmask(:,:,1)) ! specific humidity " 643 IF( iom_use('ssq') ) CALL iom_put("ssq", pssq * tmask(:,:,1)) ! saturation specific humidity at z=0 644 IF( iom_use('wspd_blk') ) CALL iom_put("wspd_blk", zU_zu * tmask(:,:,1)) ! bulk wind speed at z=zu 645 635 646 IF( ln_skin_cs .OR. ln_skin_wl ) THEN 636 647 !! ptsk and pssq have been updated!!! … … 643 654 END WHERE 644 655 END IF 645 646 !! CALL iom_put( "Cd_oce", zcd_oce) ! output value of pure ocean-atm. transfer coef.647 !! CALL iom_put( "Ch_oce", zch_oce) ! output value of pure ocean-atm. transfer coef.648 649 IF( ABS(rn_zu - rn_zqt) < 0.1_wp ) THEN650 !! If zu == zt, then ensuring once for all that:651 t_zu(:,:) = ztpot(:,:)652 q_zu(:,:) = zqair(:,:)653 ENDIF654 655 656 656 657 ! Turbulent fluxes over ocean => BULK_FORMULA @ sbcblk_phy.F90 … … 671 672 & wndm(:,:), zU_zu(:,:), pslp(:,:), & 672 673 & taum(:,:), psen(:,:), zqla(:,:), & 673 & pEvap=pevp(:,:), prhoa=rhoa(:,:) 674 & pEvap=pevp(:,:), prhoa=rhoa(:,:), pfact_evap=rn_efac ) 674 675 675 676 zqla(:,:) = zqla(:,:) * tmask(:,:,1) … … 688 689 ! ... utau, vtau at U- and V_points, resp. 689 690 ! Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 690 ! Note th e use of MAX(tmask(i,j),tmask(i+1,j) is to mask tau over ice shelves691 DO_2D_ 10_10691 ! Note that coastal wind stress is not used in the code... so this extra care has no effect 692 DO_2D_00_00 692 693 utau(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zwnd_i(ji,jj) + zwnd_i(ji+1,jj ) ) & 693 694 & * MAX(tmask(ji,jj,1),tmask(ji+1,jj,1)) … … 893 894 Ce_ice(:,:) = Ch_ice(:,:) ! sensible and latent heat transfer coef. are considered identical 894 895 ENDIF 895 896 !! IF ( iom_use("Cd_ice") ) CALL iom_put("Cd_ice", Cd_ice) ! output value of pure ice-atm. transfer coef. 897 !! IF ( iom_use("Ch_ice") ) CALL iom_put("Ch_ice", Ch_ice) ! output value of pure ice-atm. transfer coef. 898 896 897 IF( iom_use('Cd_ice') ) CALL iom_put("Cd_ice", Cd_ice) 898 IF( iom_use('Ce_ice') ) CALL iom_put("Ce_ice", Ce_ice) 899 IF( iom_use('Ch_ice') ) CALL iom_put("Ch_ice", Ch_ice) 900 899 901 ! local scalars ( place there for vector optimisation purposes) 900 902 zcd_dui(:,:) = wndm_ice(:,:) * Cd_ice(:,:) 901 903 902 904 IF( ln_blk ) THEN 903 ! ------------------------------------------------------------ ! 904 ! Wind stress relative to the moving ice ( U10m - U_ice ) ! 905 ! ------------------------------------------------------------ ! 906 ! C-grid ice dynamics : U & V-points (same as ocean) 907 DO_2D_00_00 908 putaui(ji,jj) = 0.5_wp * ( rhoa(ji+1,jj) * zcd_dui(ji+1,jj) & 909 & + rhoa(ji ,jj) * zcd_dui(ji ,jj) ) & 910 & * ( 0.5_wp * ( pwndi(ji+1,jj) + pwndi(ji,jj) ) - rn_vfac * puice(ji,jj) ) 911 pvtaui(ji,jj) = 0.5_wp * ( rhoa(ji,jj+1) * zcd_dui(ji,jj+1) & 912 & + rhoa(ji,jj ) * zcd_dui(ji,jj ) ) & 913 & * ( 0.5_wp * ( pwndj(ji,jj+1) + pwndj(ji,jj) ) - rn_vfac * pvice(ji,jj) ) 905 ! ------------------------------------------------------------- ! 906 ! Wind stress relative to the moving ice ( U10m - U_ice ) ! 907 ! ------------------------------------------------------------- ! 908 zztmp1 = rn_vfac * 0.5_wp 909 DO_2D_01_01 ! at T point 910 putaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * ( pwndi(ji,jj) - zztmp1 * ( puice(ji-1,jj ) + puice(ji,jj) ) ) 911 pvtaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * ( pwndj(ji,jj) - zztmp1 * ( pvice(ji ,jj-1) + pvice(ji,jj) ) ) 912 END_2D 913 ! 914 DO_2D_00_00 ! U & V-points (same as ocean). 915 ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and rheology 916 zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj ,1) ) 917 zztmp2 = 0.5_wp * ( 2. - vmask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji ,jj+1,1) ) 918 putaui(ji,jj) = zztmp1 * ( putaui(ji,jj) + putaui(ji+1,jj ) ) 919 pvtaui(ji,jj) = zztmp2 * ( pvtaui(ji,jj) + pvtaui(ji ,jj+1) ) 914 920 END_2D 915 921 CALL lbc_lnk_multi( 'sbcblk', putaui, 'U', -1., pvtaui, 'V', -1. ) … … 1050 1056 evap_ice (:,:,:) = rn_efac * qla_ice (:,:,:) * z1_rLsub ! sublimation 1051 1057 devap_ice(:,:,:) = rn_efac * dqla_ice(:,:,:) * z1_rLsub ! d(sublimation)/dT 1052 zevap (:,:) = rn_efac * ( emp(:,:) + tprecip(:,:) ) ! evaporation over ocean1058 zevap (:,:) = emp(:,:) + tprecip(:,:) ! evaporation over ocean !LB: removed rn_efac here, correct??? 1053 1059 1054 1060 ! --- evaporation minus precipitation --- !
Note: See TracChangeset
for help on using the changeset viewer.