- Timestamp:
- 2020-05-15T19:41:01+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo
- 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_r12558_HPC-08_epico_Extra_Halo/src/OCE/SBC/sbcblk.F90
r12489 r12939 639 639 END IF 640 640 641 !! CALL iom_put( "Cd_oce", zcd_oce) ! output value of pure ocean-atm. transfer coef.642 !! CALL iom_put( "Ch_oce", zch_oce) ! output value of pure ocean-atm. transfer coef.643 644 IF( ABS(rn_zu - rn_zqt) < 0.1_wp ) THEN645 !! If zu == zt, then ensuring once for all that:646 t_zu(:,:) = ztpot(:,:)647 q_zu(:,:) = zqair(:,:)648 ENDIF649 650 651 641 ! Turbulent fluxes over ocean => BULK_FORMULA @ sbcblk_phy.F90 652 642 ! ------------------------------------------------------------- 653 643 654 644 IF( ln_abl ) THEN !== ABL formulation ==! multiplication by rho_air and turbulent fluxes computation done in ablstp 655 !! FL do we need this multiplication by tmask ... ???656 645 DO_2D_11_11 657 zztmp = zU_zu(ji,jj) !* tmask(ji,jj,1)646 zztmp = zU_zu(ji,jj) 658 647 wndm(ji,jj) = zztmp ! Store zU_zu in wndm to compute ustar2 in ablmod 659 648 pcd_du(ji,jj) = zztmp * zcd_oce(ji,jj) 660 649 psen(ji,jj) = zztmp * zch_oce(ji,jj) 661 650 pevp(ji,jj) = zztmp * zce_oce(ji,jj) 651 rhoa(ji,jj) = rho_air( ptair(ji,jj), phumi(ji,jj), pslp(ji,jj) ) 662 652 END_2D 663 653 ELSE !== BLK formulation ==! turbulent fluxes computation 664 654 CALL BULK_FORMULA( rn_zu, ptsk(:,:), pssq(:,:), t_zu(:,:), q_zu(:,:), & 665 & zcd_oce(:,:), zch_oce(:,:), zce_oce(:,:), &666 & wndm(:,:), zU_zu(:,:), pslp(:,:), &667 & taum(:,:), psen(:,:), zqla(:,:), &668 & pEvap=pevp(:,:), prhoa=rhoa(:,:) )655 & zcd_oce(:,:), zch_oce(:,:), zce_oce(:,:), & 656 & wndm(:,:), zU_zu(:,:), pslp(:,:), & 657 & taum(:,:), psen(:,:), zqla(:,:), & 658 & pEvap=pevp(:,:), prhoa=rhoa(:,:), pfact_evap=rn_efac ) 669 659 670 660 zqla(:,:) = zqla(:,:) * tmask(:,:,1) … … 683 673 ! ... utau, vtau at U- and V_points, resp. 684 674 ! Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 685 ! Note th e use of MAX(tmask(i,j),tmask(i+1,j) is to mask tau over ice shelves686 DO_2D_ 10_10675 ! Note that coastal wind stress is not used in the code... so this extra care has no effect 676 DO_2D_00_00 687 677 utau(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zwnd_i(ji,jj) + zwnd_i(ji+1,jj ) ) & 688 678 & * MAX(tmask(ji,jj,1),tmask(ji+1,jj,1)) … … 893 883 894 884 ! local scalars ( place there for vector optimisation purposes) 895 !IF (ln_abl) rhoa (:,:) = rho_air( ptair(:,:), phumi(:,:), pslp(:,:) ) !!GS: rhoa must be (re)computed here with ABL to avoid division by zero after (TBI)896 885 zcd_dui(:,:) = wndm_ice(:,:) * Cd_ice(:,:) 897 886 898 887 IF( ln_blk ) THEN 899 ! ------------------------------------------------------------ ! 900 ! Wind stress relative to the moving ice ( U10m - U_ice ) ! 901 ! ------------------------------------------------------------ ! 902 ! C-grid ice dynamics : U & V-points (same as ocean) 903 DO_2D_00_00 904 putaui(ji,jj) = 0.5_wp * ( rhoa(ji+1,jj) * zcd_dui(ji+1,jj) & 905 & + rhoa(ji ,jj) * zcd_dui(ji ,jj) ) & 906 & * ( 0.5_wp * ( pwndi(ji+1,jj) + pwndi(ji,jj) ) - rn_vfac * puice(ji,jj) ) 907 pvtaui(ji,jj) = 0.5_wp * ( rhoa(ji,jj+1) * zcd_dui(ji,jj+1) & 908 & + rhoa(ji,jj ) * zcd_dui(ji,jj ) ) & 909 & * ( 0.5_wp * ( pwndj(ji,jj+1) + pwndj(ji,jj) ) - rn_vfac * pvice(ji,jj) ) 888 ! ------------------------------------------------------------- ! 889 ! Wind stress relative to the moving ice ( U10m - U_ice ) ! 890 ! ------------------------------------------------------------- ! 891 zztmp1 = rn_vfac * 0.5_wp 892 DO_2D_01_01 ! at T point 893 putaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * ( pwndi(ji,jj) - zztmp1 * ( puice(ji-1,jj ) + puice(ji,jj) ) ) 894 pvtaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * ( pwndj(ji,jj) - zztmp1 * ( pvice(ji ,jj-1) + pvice(ji,jj) ) ) 895 END_2D 896 ! 897 DO_2D_00_00 ! U & V-points (same as ocean). 898 ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and rheology 899 zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj ,1) ) 900 zztmp2 = 0.5_wp * ( 2. - vmask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji ,jj+1,1) ) 901 putaui(ji,jj) = zztmp1 * ( putaui(ji,jj) + putaui(ji+1,jj ) ) 902 pvtaui(ji,jj) = zztmp2 * ( pvtaui(ji,jj) + pvtaui(ji ,jj+1) ) 910 903 END_2D 911 904 CALL lbc_lnk_multi( 'sbcblk', putaui, 'U', -1., pvtaui, 'V', -1. ) … … 1046 1039 evap_ice (:,:,:) = rn_efac * qla_ice (:,:,:) * z1_rLsub ! sublimation 1047 1040 devap_ice(:,:,:) = rn_efac * dqla_ice(:,:,:) * z1_rLsub ! d(sublimation)/dT 1048 zevap (:,:) = rn_efac * ( emp(:,:) + tprecip(:,:) ) ! evaporation over ocean1041 zevap (:,:) = emp(:,:) + tprecip(:,:) ! evaporation over ocean !LB: removed rn_efac here, correct??? 1049 1042 1050 1043 ! --- evaporation minus precipitation --- !
Note: See TracChangeset
for help on using the changeset viewer.