New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12958 for NEMO/branches/UKMO/dev_r12745_HPC-02_Daley_Tiling_trial_public/src/OCE/SBC/sbcblk.F90 – NEMO

Ignore:
Timestamp:
2020-05-21T17:14:32+02:00 (4 years ago)
Author:
hadcv
Message:

Merge in trunk changes to r12933

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/dev_r12745_HPC-02_Daley_Tiling_trial_public/src/OCE/SBC/sbcblk.F90

    r12629 r12958  
    643643 
    644644      IF( ln_abl ) THEN         !==  ABL formulation  ==!   multiplication by rho_air and turbulent fluxes computation done in ablstp 
    645          !! FL do we need this multiplication by tmask ... ??? 
    646645         DO_2D_11_11 
    647             zztmp = zU_zu(ji,jj) !* tmask(ji,jj,1) 
     646            zztmp = zU_zu(ji,jj) 
    648647            wndm(ji,jj)   = zztmp                   ! Store zU_zu in wndm to compute ustar2 in ablmod 
    649648            pcd_du(ji,jj) = zztmp * zcd_oce(ji,jj) 
    650649            psen(ji,jj)   = zztmp * zch_oce(ji,jj) 
    651650            pevp(ji,jj)   = zztmp * zce_oce(ji,jj) 
     651            rhoa(ji,jj)   = rho_air( ptair(ji,jj), phumi(ji,jj), pslp(ji,jj) ) 
    652652         END_2D 
    653653      ELSE                      !==  BLK formulation  ==!   turbulent fluxes computation 
     
    673673         ! ... utau, vtau at U- and V_points, resp. 
    674674         !     Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 
    675          !     Note the use of MAX(tmask(i,j),tmask(i+1,j) is to mask tau over ice shelves 
    676          DO_2D_10_10 
     675         !     Note that coastal wind stress is not used in the code... so this extra care has no effect 
     676         DO_2D_00_00 
    677677            utau(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( zwnd_i(ji,jj) + zwnd_i(ji+1,jj  ) ) & 
    678678               &          * MAX(tmask(ji,jj,1),tmask(ji+1,jj,1)) 
     
    883883 
    884884      ! local scalars ( place there for vector optimisation purposes) 
    885       !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) 
    886885      zcd_dui(:,:) = wndm_ice(:,:) * Cd_ice(:,:) 
    887886 
    888887      IF( ln_blk ) THEN 
    889          ! ------------------------------------------------------------ ! 
    890          !    Wind stress relative to the moving ice ( U10m - U_ice )   ! 
    891          ! ------------------------------------------------------------ ! 
    892          ! C-grid ice dynamics :   U & V-points (same as ocean) 
    893          DO_2D_00_00 
    894             putaui(ji,jj) = 0.5_wp * (  rhoa(ji+1,jj) * zcd_dui(ji+1,jj)             & 
    895                &                      + rhoa(ji  ,jj) * zcd_dui(ji  ,jj)  )          & 
    896                &         * ( 0.5_wp * ( pwndi(ji+1,jj) + pwndi(ji,jj) ) - rn_vfac * puice(ji,jj) ) 
    897             pvtaui(ji,jj) = 0.5_wp * (  rhoa(ji,jj+1) * zcd_dui(ji,jj+1)             & 
    898                &                      + rhoa(ji,jj  ) * zcd_dui(ji,jj  )  )          & 
    899                &         * ( 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) ) 
    900903         END_2D 
    901904         CALL lbc_lnk_multi( 'sbcblk', putaui, 'U', -1., pvtaui, 'V', -1. ) 
Note: See TracChangeset for help on using the changeset viewer.