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 4724 for branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/SBC – NEMO

Ignore:
Timestamp:
2014-07-18T17:32:27+02:00 (10 years ago)
Author:
mathiot
Message:

ISF branch: add comments, fix mpp and restar issues, add test to stop if incompatible options and fix mask issue in sbcice and sbcblk.

Location:
branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/SBC
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90

    r4624 r4724  
    257257         END DO 
    258258      END DO 
     259      utau(:,:) = utau(:,:) * umask(:,:,1) 
     260      vtau(:,:) = vtau(:,:) * vmask(:,:,1) 
     261      taum(:,:) = taum(:,:) * tmask(:,:,1) 
    259262      CALL lbc_lnk( taum, 'T', 1. ) 
    260263 
     
    264267!CDIR COLLAPSE 
    265268      wndm(:,:) = sf(jp_wndm)%fnow(:,:,1) 
     269      wndm(:,:) = wndm(:,:) * tmask(:,:,1) 
    266270 
    267271      !------------------------------------------------! 
     
    270274       
    271275      CALL blk_clio_qsr_oce( qsr ) 
    272  
     276      qsr(:,:) = qsr(:,:) * tmask(:,:,1) ! no shortwave radiation into the ocean beneath ice shelf 
    273277      !------------------------! 
    274278      !   Other ocean fluxes   ! 
     
    376380         &     - zqla(:,:)             * pst(:,:) * zcevap                &   ! remove evap.   heat content at SST in Celcius 
    377381         &     + sf(jp_prec)%fnow(:,:,1) * sf(jp_tair)%fnow(:,:,1) * zcprec   ! add    precip. heat content at Tair in Celcius 
     382      qns(:,:) = qns(:,:) * tmask(:,:,1) 
    378383      ! NB: if sea-ice model, the snow precip are computed and the associated heat is added to qns (see blk_ice_clio) 
    379384 
  • branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_mfs.F90

    r4624 r4724  
    233233         ! Interpolate utau, vtau into the grid_V and grid_V 
    234234         !------------------------------------------------- 
    235  
     235      !     Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 
     236      !     Note the use of MAX(tmask(i,j),tmask(i+1,j) is to mask tau over ice shelves 
    236237         DO jj = 1, jpjm1 
    237238            DO ji = 1, fs_jpim1 
    238239               utau(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( utau(ji,jj) * tmask(ji,jj,1) & 
    239                &                                + utau(ji+1,jj) * tmask(ji+1,jj,1) ) 
     240               &                                + utau(ji+1,jj) * tmask(ji+1,jj,1) )        & 
     241               &                 * MAX(tmask(ji,jj,1),tmask(ji+1,jj  ,1)) 
    240242               vtau(ji,jj) = 0.5 * ( 2. - vmask(ji,jj,1) ) * ( vtau(ji,jj) * tmask(ji,jj,1) & 
    241                &                                + vtau(ji,jj+1) * tmask(ji,jj+1,1) ) 
     243               &                                + vtau(ji,jj+1) * tmask(ji,jj+1,1) )        & 
     244               &                 * MAX(tmask(ji,jj,1),tmask(ji  ,jj+1,1)) 
    242245            END DO 
    243246         END DO 
  • branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx.F90

    r4624 r4724  
    156156            END DO 
    157157         END DO 
     158         taum(:,:) = taum(:,:) * tmask(:,:,1) ; wndm(:,:) = wndm(:,:) * tmask(:,:,1) 
    158159         CALL lbc_lnk( taum(:,:), 'T', 1. )   ;   CALL lbc_lnk( wndm(:,:), 'T', 1. ) 
    159160 
  • branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r4333 r4724  
    179179         !                                           !----------------! 
    180180         ! 
    181          u_oce(:,:) = ssu_m(:,:)                     ! mean surface ocean current at ice velocity point 
    182          v_oce(:,:) = ssv_m(:,:)                     ! (C-grid dynamics :  U- & V-points as the ocean) 
     181         u_oce(:,:) = ssu_m(:,:) * umask(:,:,1)                     ! mean surface ocean current at ice velocity point 
     182         v_oce(:,:) = ssv_m(:,:) * vmask(:,:,1)                    ! (C-grid dynamics :  U- & V-points as the ocean) 
    183183         ! 
    184184         t_bo(:,:) = tfreez( sss_m ) +  rt0          ! masked sea surface freezing temperature [Kelvin] 
  • branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim_2.F90

    r4621 r4724  
    126126            DO jj = 2, jpj 
    127127               DO ji = 2, jpi   ! NO vector opt. possible 
    128                   u_oce(ji,jj) = 0.5_wp * ( ssu_m(ji-1,jj  ) + ssu_m(ji-1,jj-1) ) * tmu(ji,jj) 
    129                   v_oce(ji,jj) = 0.5_wp * ( ssv_m(ji  ,jj-1) + ssv_m(ji-1,jj-1) ) * tmu(ji,jj) 
     128                  u_oce(ji,jj) = 0.5_wp * ( ssu_m(ji-1,jj  ) * umask(ji-1,jj  ,1) + ssu_m(ji-1,jj-1) * umask(ji-1,jj-1,1) ) * tmu(ji,jj) 
     129                  v_oce(ji,jj) = 0.5_wp * ( ssv_m(ji  ,jj-1) * vmask(ji  ,jj-1,1) + ssv_m(ji-1,jj-1) * vmask(ji-1,jj-1,1) ) * tmu(ji,jj) 
    130130               END DO 
    131131            END DO 
     
    134134            ! 
    135135         CASE( 'C' )                  !== C-grid ice dynamics :   U & V-points (same as ocean) 
    136             u_oce(:,:) = ssu_m(:,:)                     ! mean surface ocean current at ice velocity point 
    137             v_oce(:,:) = ssv_m(:,:) 
     136            u_oce(:,:) = ssu_m(:,:) * umask(:,:,1)                     ! mean surface ocean current at ice velocity point 
     137            v_oce(:,:) = ssv_m(:,:) * vmask(:,:,1) 
    138138            ! 
    139139         END SELECT 
Note: See TracChangeset for help on using the changeset viewer.