Changeset 10678


Ignore:
Timestamp:
2019-02-14T14:10:42+01:00 (18 months ago)
Author:
mathiot
Message:

mask used in icb_bilin_h should have extra haloe (ticket #2229)

Location:
NEMO/branches/2019/fix_ticket2229/src/OCE/ICB
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/fix_ticket2229/src/OCE/ICB/icb_oce.F90

    r10425 r10678  
    8989   REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE ::   ua_e, va_e 
    9090   REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE ::   ssh_e 
     91   REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE ::   tmask_e, umask_e, vmask_e 
    9192#if defined key_si3 || defined key_cice 
    9293   REAL(wp), PUBLIC, DIMENSION(:,:), ALLOCATABLE ::   ui_e, vi_e 
     
    169170      ! 
    170171      ! expanded arrays for bilinear interpolation 
    171       ALLOCATE( uo_e(0:jpi+1,0:jpj+1) , ua_e(0:jpi+1,0:jpj+1) ,   & 
    172          &      vo_e(0:jpi+1,0:jpj+1) , va_e(0:jpi+1,0:jpj+1) ,   & 
     172      ALLOCATE( uo_e(0:jpi+1,0:jpj+1) , ua_e(0:jpi+1,0:jpj+1) ,      & 
     173         &      vo_e(0:jpi+1,0:jpj+1) , va_e(0:jpi+1,0:jpj+1) ,      & 
    173174#if defined key_si3 || defined key_cice 
    174          &      ui_e(0:jpi+1,0:jpj+1) ,                            & 
    175          &      vi_e(0:jpi+1,0:jpj+1) ,                            & 
     175         &      ui_e(0:jpi+1,0:jpj+1) ,                              & 
     176         &      vi_e(0:jpi+1,0:jpj+1) ,                              & 
    176177#endif 
    177          &      ff_e(0:jpi+1,0:jpj+1) , fr_e(0:jpi+1,0:jpj+1)  ,   & 
    178          &      tt_e(0:jpi+1,0:jpj+1) , ssh_e(0:jpi+1,0:jpj+1) ,   & 
    179          &      hicth(0:jpi+1,0:jpj+1),                            & 
    180          &      first_width(nclasses) , first_length(nclasses) ,   & 
    181          &      src_calving (jpi,jpj) ,                            & 
     178         &      ff_e(0:jpi+1,0:jpj+1)   , fr_e(0:jpi+1,0:jpj+1)  ,   & 
     179         &      tt_e(0:jpi+1,0:jpj+1)   , ssh_e(0:jpi+1,0:jpj+1) ,   & 
     180         &      hicth(0:jpi+1,0:jpj+1),                              & 
     181         &      first_width(nclasses) , first_length(nclasses) ,     & 
     182         &      src_calving (jpi,jpj) ,                              & 
    182183         &      src_calving_hflx(jpi,jpj) , STAT=ill) 
     184      icb_alloc = icb_alloc + ill 
     185 
     186      ALLOCATE( tmask_e(0:jpi+1,0:jpj+1), umask_e(0:jpi+1,0:jpj+1), vmask_e(0:jpi+1,0:jpj+1), & 
     187         &      STAT=ill) 
    183188      icb_alloc = icb_alloc + ill 
    184189 
  • NEMO/branches/2019/fix_ticket2229/src/OCE/ICB/icbini.F90

    r10570 r10678  
    224224      src_calving_hflx(:,:) = 0._wp 
    225225 
     226      ! definition of extended surface masked needed by icb_bilin_h 
     227      tmask_e(:,:) = 0._wp   ;   tmask_e(1:jpi,1:jpj) = tmask(:,:,1) 
     228      umask_e(:,:) = 0._wp   ;   umask_e(1:jpi,1:jpj) = umask(:,:,1) 
     229      vmask_e(:,:) = 0._wp   ;   vmask_e(1:jpi,1:jpj) = vmask(:,:,1) 
     230      CALL lbc_lnk_icb( 'icbini', tmask_e, 'T', +1._wp, 1, 1 ) 
     231      CALL lbc_lnk_icb( 'icbini', umask_e, 'T', +1._wp, 1, 1 ) 
     232      CALL lbc_lnk_icb( 'icbini', vmask_e, 'T', +1._wp, 1, 1 ) 
     233      ! 
    226234      ! assign each new iceberg with a unique number constructed from the processor number 
    227235      ! and incremented by the total number of processors 
  • NEMO/branches/2019/fix_ticket2229/src/OCE/ICB/icbutl.F90

    r10652 r10678  
    246246         SELECT CASE ( cd_type ) 
    247247         CASE ( 'T' ) 
    248             zmask = (/tmask(ii,ij,1), tmask(ii+1,ij,1), tmask(ii,ij+1,1), tmask(ii+1,ij+1,1)/) 
     248            zmask = (/tmask_e(ii,ij), tmask_e(ii+1,ij), tmask_e(ii,ij+1), tmask_e(ii+1,ij+1)/) 
    249249         CASE ( 'U' ) 
    250             zmask = (/umask(ii,ij,1), umask(ii+1,ij,1), umask(ii,ij+1,1), umask(ii+1,ij+1,1)/) 
     250            zmask = (/umask_e(ii,ij), umask_e(ii+1,ij), umask_e(ii,ij+1), umask_e(ii+1,ij+1)/) 
    251251         CASE ( 'V' ) 
    252             zmask = (/vmask(ii,ij,1), vmask(ii+1,ij,1), vmask(ii,ij+1,1), vmask(ii+1,ij+1,1)/) 
     252            zmask = (/vmask_e(ii,ij), vmask_e(ii+1,ij), vmask_e(ii,ij+1), vmask_e(ii+1,ij+1)/) 
    253253         CASE ( 'F' ) 
    254254            ! F case only used for coriolis, ff_f is not mask so zmask = 1 
Note: See TracChangeset for help on using the changeset viewer.