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 5727 for branches/UKMO/2014_Surge_Modelling/NEMOGCM/NEMO/OPA_SRC/DYN/wadlmt.F90 – NEMO

Ignore:
Timestamp:
2015-09-10T19:05:13+02:00 (9 years ago)
Author:
rfurner
Message:

some bug fixes for wetting and drying elements...still not working though

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/2014_Surge_Modelling/NEMOGCM/NEMO/OPA_SRC/DYN/wadlmt.F90

    r5066 r5727  
    131131              DO ji = 2, jpim1  
    132132         
    133                  wdmask(ji,jj) = 0 
     133!                 wdmask(ji,jj) = 0 
    134134                 IF(tmask(ji, jj, 1) < 0.5_wp) CYCLE  
    135135                 IF(bathy(ji,jj) > zdepwd) CYCLE 
     
    148148                 IF(zdep1 > zdep2) THEN 
    149149                   zflag = 1 
    150                    wdmask(ji, jj) = 1 
     150!                   wdmask(ji, jj) = 1 
    151151                   zcoef = ( ( zdep2 - rn_wdmin2 ) * ztmp - zzflxn * z2dt ) / ( zflxp(ji,jj) * z2dt ) 
    152152                   zcoef = max(zcoef, 0._wp) 
     
    170170        END DO  ! jk1 loop 
    171171        
    172         un(:,:,:) = un(:,:,:) * zwdlmtu(ji, jj)  
    173         vn(:,:,:) = vn(:,:,:) * zwdlmtv(ji, jj)  
     172        DO jk = 1, jpkm1 
     173          un(:,:,jk) = un(:,:,jk) * zwdlmtu(:, :)  
     174          vn(:,:,jk) = vn(:,:,jk) * zwdlmtv(:, :)  
     175        END DO 
    174176 
    175177        CALL lbc_lnk( un, 'U', -1. ) 
     
    213215      REAL(wp), POINTER,  DIMENSION(:,:) ::   zflxp,  zflxn            ! local 2D workspace 
    214216      REAL(wp), POINTER,  DIMENSION(:,:) ::   zflxu1, zflxv1           ! local 2D workspace 
     217      REAL(wp), POINTER,  DIMENSION(:,:) ::   sum_e3u, sum_e3v         ! local 2D workspace 
    215218 
    216219      !!---------------------------------------------------------------------- 
     
    223226        CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 
    224227        CALL wrk_alloc( jpi, jpj, zwdlmtu, zwdlmtv) 
     228        CALL wrk_alloc( jpi, jpj, sum_e3u, sum_e3v) 
    225229        ! 
    226230        
     
    235239        zflxp(:,:)   = 0._wp 
    236240        zflxn(:,:)   = 0._wp 
    237         zflxu(:,:)   = 0._wp 
    238         zflxv(:,:)   = 0._wp 
     241!RF bug fix!        zflxu(:,:)   = 0._wp 
     242!RF bug fix!        zflxv(:,:)   = 0._wp 
    239243 
    240244        zwdlmtu(:,:)  = 1._wp 
     
    243247        ! Horizontal Flux in u and v direction 
    244248        
    245         zflxu(:,:) = zflxu(:,:) * e2u(:,:) 
    246         zflxv(:,:) = zflxv(:,:) * e1v(:,:) 
     249!RF bug fix        zflxu(:,:) = zflxu(:,:) * e2u(:,:) 
     250!RF bug fix        zflxv(:,:) = zflxv(:,:) * e1v(:,:) 
    247251        
    248252        DO jj = 2, jpjm1 
     
    276280              DO ji = 2, jpim1  
    277281         
    278                  wdmask(ji,jj) = 0 
    279                  IF(tmask(ji, jj, 1) < 0.5_wp) CYCLE  
    280                  IF(bathy(ji,jj) > zdepwd) CYCLE 
     282!                 wdmask(ji,jj) = 0 
     283                 IF(tmask(ji, jj, 1) < 0.5_wp) CYCLE   ! we don't care about land cells 
     284                 IF(bathy(ji,jj) > zdepwd) CYCLE       ! and cells which will unlikely go dried out  
    281285         
    282                  !ztmp = e1t(ji,jj) * e2t(ji,jj)     !there must be an array ready for this 
    283286                 ztmp = e12t(ji,jj) 
    284287 
     
    316319        END DO  ! jk1 loop 
    317320        
    318         zflxu(:,:) = zflxu(:,:) * zwdlmtu(ji, jj)  
    319         zflxv(:,:) = zflxv(:,:) * zwdlmtv(ji, jj)  
     321        zflxu(:,:) = zflxu(:,:) * zwdlmtu(:, :)  
     322        zflxv(:,:) = zflxv(:,:) * zwdlmtv(:, :)  
    320323 
    321324        CALL lbc_lnk( zflxu, 'U', -1. ) 
     
    330333        CALL wrk_dealloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 
    331334        CALL wrk_dealloc( jpi, jpj, zwdlmtu, zwdlmtv) 
     335        CALL wrk_dealloc( jpi, jpj, sum_e3u, sum_e3v) 
    332336      ! 
    333337      END IF 
Note: See TracChangeset for help on using the changeset viewer.