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 5131 – NEMO

Changeset 5131


Ignore:
Timestamp:
2015-03-06T12:30:35+01:00 (9 years ago)
Author:
cetlod
Message:

bugfix:define wmask and rn2b for offline configuration, see ticket#1480

Location:
trunk/NEMOGCM/NEMO/OFF_SRC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OFF_SRC/dommsk.F90

    r4990 r5131  
    1515   USE in_out_manager  ! I/O manager 
    1616   USE wrk_nemo   
     17   USE lbclnk   
    1718 
    1819   IMPLICIT NONE 
     
    4849      !!---------------------------------------------------------------------- 
    4950      ! 
    50       INTEGER  ::   ji, jk                   ! dummy loop indices 
     51      INTEGER  ::   ji, jj, jk                   ! dummy loop indices 
    5152      INTEGER  ::   iif, iil, ijf, ijl       ! local integers 
    5253      INTEGER, POINTER, DIMENSION(:,:) ::  imsk  
     
    8384      ENDIF  
    8485      ! 
     86      ! (ISF) MIN(1,SUM(umask)) is here to check if you have effectively at 
     87      ! least 1 wet u point 
     88      DO jj = 1, jpjm1 
     89         DO ji = 1, fs_jpim1   ! vector loop 
     90            umask_i(ji,jj)  = ssmask(ji,jj) * ssmask(ji+1,jj  )  * MIN(1._wp,SUM(umask(ji,jj,:))) 
     91            vmask_i(ji,jj)  = ssmask(ji,jj) * ssmask(ji  ,jj+1)  * MIN(1._wp,SUM(vmask(ji,jj,:))) 
     92         END DO 
     93         DO ji = 1, jpim1      ! NO vector opt. 
     94            fmask_i(ji,jj) =  ssmask(ji,jj  ) * ssmask(ji+1,jj  )   & 
     95               &            * ssmask(ji,jj+1) * ssmask(ji+1,jj+1) * MIN(1._wp,SUM(fmask(ji,jj,:))) 
     96         END DO 
     97      END DO 
     98      CALL lbc_lnk( umask_i, 'U', 1._wp )      ! Lateral boundary conditions 
     99      CALL lbc_lnk( vmask_i, 'V', 1._wp ) 
     100      CALL lbc_lnk( fmask_i, 'F', 1._wp ) 
     101 
     102      ! 3. Ocean/land mask at wu-, wv- and w points  
     103      !---------------------------------------------- 
     104      wmask (:,:,1) = tmask(:,:,1) ! ???????? 
     105      wumask(:,:,1) = umask(:,:,1) ! ???????? 
     106      wvmask(:,:,1) = vmask(:,:,1) ! ???????? 
     107      DO jk=2,jpk 
     108         wmask (:,:,jk)=tmask(:,:,jk) * tmask(:,:,jk-1) 
     109         wumask(:,:,jk)=umask(:,:,jk) * umask(:,:,jk-1)    
     110         wvmask(:,:,jk)=vmask(:,:,jk) * vmask(:,:,jk-1) 
     111      END DO 
     112      ! 
    85113      IF( nprint == 1 .AND. lwp ) THEN    ! Control print 
    86114         imsk(:,:) = INT( tmask_i(:,:) ) 
  • trunk/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90

    r5120 r5131  
    245245      tsn(:,:,:,jp_sal) = sf_dyn(jf_sal)%fnow(:,:,:)  * tmask(:,:,:)    ! salinity 
    246246      ! 
    247       CALL eos    ( tsn, rhd, rhop, gdept_0(:,:,:) )                                       ! In any case, we need rhop 
     247      ! 
     248      CALL eos    ( tsn, rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 
     249      CALL eos_rab( tsn, rab_n )       ! now    local thermal/haline expension ratio at T-points 
     250      CALL bn2    ( tsn, rab_n, rn2 ) ! before Brunt-Vaisala frequency need for zdfmxl 
     251 
     252      rn2b(:,:,:) = rn2(:,:,:)         ! need for zdfmxl 
    248253      CALL zdf_mxl( kt )                                                   ! In any case, we need mxl  
    249254      ! 
     
    535540      !!--------------------------------------------------------------------- 
    536541#if defined key_ldfslp && ! defined key_c1d 
     542      CALL eos    ( pts, rhd, rhop, gdept_0(:,:,:) ) 
    537543      CALL eos_rab( pts, rab_n )       ! now local thermal/haline expension ratio at T-points 
    538544      CALL bn2    ( pts, rab_n, rn2  ) ! now    Brunt-Vaisala 
    539         ! Partial steps: before Horizontal DErivative 
    540         ! only gtsu, gtsv, rhd, gru , grv are used  
     545 
     546      ! Partial steps: before Horizontal DErivative 
    541547      IF( ln_zps  .AND. .NOT. ln_isfcav)                            & 
    542548         &            CALL zps_hde    ( kt, jpts, pts, gtsu, gtsv,  &  ! Partial steps: before horizontal gradient 
     
    547553         &                                 gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the first ocean level 
    548554 
    549  
    550  
    551          !                                                            ! of t, s, rd at the bottom ocean level 
     555      rn2b(:,:,:) = rn2(:,:,:)         ! need for zdfmxl 
    552556      CALL zdf_mxl( kt )            ! mixed layer depth 
    553557      CALL ldf_slp( kt, rhd, rn2 )  ! slopes 
Note: See TracChangeset for help on using the changeset viewer.