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 10106 for NEMO/branches/2018/dev_r5003_MERCATOR6_CRS – NEMO

Ignore:
Timestamp:
2018-09-07T15:53:19+02:00 (6 years ago)
Author:
cbricaud
Message:

add mikt coarsening in nemo3.6 coarsening branch

Location:
NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crs.F90

    r7795 r10106  
    120120      REAL(wp), DIMENSION(:,:),   ALLOCATABLE,SAVE :: ff_crs 
    121121      INTEGER,  DIMENSION(:,:),   ALLOCATABLE,SAVE :: mbathy_crs, mbkt_crs, mbku_crs, mbkv_crs 
     122      INTEGER,  DIMENSION(:,:),   ALLOCATABLE,SAVE :: mikt_crs 
    122123 
    123124      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE,SAVE :: gdept_0_crs, gdepu_0_crs, gdepv_0_crs, gdepw_0_crs 
     
    169170      REAL(wp), PUBLIC, DIMENSION(:,:)  , ALLOCATABLE :: rnf_crs,rnf_b_crs,h_rnf_crs 
    170171      INTEGER , PUBLIC, DIMENSION(:,:)  , ALLOCATABLE :: nk_rnf_crs 
     172      REAL(wp), PUBLIC, DIMENSION(:,:)  , ALLOCATABLE :: fwfisf_b_crs, fwfisf_crs 
    171173      REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: trc_i_crs,trc_o_crs 
    172174      REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: sbc_trc_crs, sbc_trc_b_crs 
     
    284286 
    285287      ALLOCATE( mbathy_crs(jpi_crs,jpj_crs), mbkt_crs(jpi_crs,jpj_crs) , & 
    286          &      mbku_crs(jpi_crs,jpj_crs)  , mbkv_crs(jpi_crs,jpj_crs) , STAT=ierr(9)) 
     288         &      mbku_crs(jpi_crs,jpj_crs)  , mbkv_crs(jpi_crs,jpj_crs) , &  
     289         &      mikt_crs(jpi_crs,jpj_crs)  , STAT=ierr(9)) 
    287290 
    288291      ALLOCATE( gdept_0_crs(jpi_crs,jpj_crs,jpk), gdepu_0_crs(jpi_crs,jpj_crs,jpk) , & 
     
    310313         &     rnf_crs (jpi_crs,jpj_crs), rnf_b_crs(jpi_crs ,jpj_crs), nk_rnf_crs(jpi_crs ,jpj_crs), h_rnf_crs(jpi_crs ,jpj_crs), & 
    311314         &     emp_crs (jpi_crs,jpj_crs), emp_b_crs(jpi_crs,jpj_crs), & 
     315         &     fwfisf_crs(jpi_crs,jpj_crs), fwfisf_b_crs(jpi_crs,jpj_crs), & 
    312316         &     sbc_trc_crs (jpi_crs,jpj_crs,jpts), sbc_trc_b_crs(jpi_crs,jpj_crs,jpts), & 
    313317         &     trc_i_crs (jpi_crs,jpj_crs,jpts), trc_o_crs(jpi_crs,jpj_crs,jpts), & 
  • NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsdom.F90

    r10101 r10106  
    17361736   END SUBROUTINE crs_dom_bat 
    17371737 
     1738   SUBROUTINE crs_dom_top 
     1739      !!---------------------------------------------------------------- 
     1740      !!               *** SUBROUTINE crs_dom_top *** 
     1741      !! 
     1742      !! ** Purpose :  coarsening mikt 
     1743      !! 
     1744      !!---------------------------------------------------------------- 
     1745      INTEGER ::  ji, jj, jk 
     1746      INTEGER ::  ijis, ijie, ijjs, ijje 
     1747 
     1748      !!---------------------------------------------------------------- 
     1749 
     1750      DO jj  = nldj_crs,nlej_crs 
     1751 
     1752         ijjs = mjs_crs(jj) 
     1753         ijje = mje_crs(jj) 
     1754 
     1755         DO ji = nldi_crs, nlei_crs 
     1756 
     1757            ijis = mis_crs(ji) 
     1758            ijie = mie_crs(ji) 
     1759 
     1760            mikt_crs(ji,jj) = MINVAL( mikt(ijis:ijie,ijjs:ijje) ) 
     1761         ENDDO 
     1762      ENDDO 
     1763 
     1764      mikt_crs = MAX( mikt_crs , 1 ) 
     1765 
     1766   END SUBROUTINE crs_dom_top 
     1767 
    17381768   SUBROUTINE PIKSRT(N,ARR) 
    17391769     INTEGER                  ,INTENT(IN) :: N 
  • NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90

    r8894 r10106  
    156156      CALL crs_dom_ope( rnf_b ,'SUM', 'T', tmask, rnf_b_crs , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
    157157      CALL crs_dom_ope( emp_b ,'SUM', 'T', tmask, emp_b_crs , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
     158      CALL crs_dom_ope( fwfisf_b  ,'SUM', 'T', tmask, fwfisf_b_crs  , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
    158159 
    159160      !  Temperature 
     
    303304      CALL crs_dom_ope( emp   ,'SUM', 'T', tmask, emp_crs   , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
    304305      CALL crs_dom_ope( fmmflx,'SUM', 'T', tmask, fmmflx_crs, p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
     306      CALL crs_dom_ope( fwfisf,'SUM', 'T', tmask, fwfisf_crs   , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
    305307 
    306308      CALL crs_dom_ope( fr_i  ,'SUM', 'T', tmask, fr_i_crs  , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
  • NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90

    r7806 r10106  
    460460                  ztc_f  = ztc_n  + atfp * ztc_d 
    461461                  ! 
    462                   IF( jk == 1 ) THEN           ! first level  
    463                      ze3t_f = ze3t_f - zfact2 * ( emp_b_crs(ji,jj) - emp_crs(ji,jj) + rnf_crs(ji,jj) - rnf_b_crs(ji,jj) ) 
     462                  IF( jk == mikt_crs(ji,jj) ) THEN           ! first level  
     463                     ze3t_f = ze3t_f - zfact2 * ( (emp_b_crs(ji,jj)    - emp_crs(ji,jj)   )  & 
     464                            &                   - (rnf_b_crs(ji,jj)    - rnf_crs(ji,jj)   )  & 
     465                            &                   + (fwfisf_b_crs(ji,jj) - fwfisf_crs(ji,jj))  ) 
    464466                     ztc_f  = ztc_f  - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 
    465467                  ENDIF 
    466 !cbr as it is a subroutine dedicated to crs, TRA options are not necessary 
    467 !cbr                  IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr )   &     ! solar penetration (temperature only) 
    468 !cbr                     &     ztc_f  = ztc_f  - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) ) 
    469 !cbr 
    470 !cbr                  IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) )   &                  ! river runoffs 
    471 !cbr                     &     ztc_f  = ztc_f  - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) & 
    472 !cbr                     &                              * fse3t_n(ji,jj,jk) / h_rnf(ji,jj) 
     468 
     469                  !cbr: not adapted for coarsening for the moment 
     470                  ! ice shelf 
     471                  !IF( ll_isf ) THEN 
     472                  !   ! level fully include in the Losch_2008 ice shelf boundary layer 
     473                  !   IF ( jk >= misfkt(ji,jj) .AND. jk < misfkb(ji,jj) )                          & 
     474                  !      ztc_f  = ztc_f  - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) )  & 
     475                  !             &                 * fse3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) 
     476                  !   ! level partially include in Losch_2008 ice shelf boundary layer  
     477                  !   IF ( jk == misfkb(ji,jj) )                                                   & 
     478                  !      ztc_f  = ztc_f  - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) )  & 
     479                  !             &                 * fse3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) * ralpha(ji,jj) 
     480                  !END IF 
    473481 
    474482                  ze3t_f = 1.e0 / ze3t_f 
     
    476484                  ptn(ji,jj,jk,jn) = pta(ji,jj,jk,jn)     ! ptn <-- pta 
    477485                  ! 
    478                   IF( ll_tra_hpg ) THEN        ! semi-implicit hpg (T & S only) 
    479                      ze3t_d           = 1.e0   / ( ze3t_n + rbcp * ze3t_d ) 
    480                      pta(ji,jj,jk,jn) = ze3t_d * ( ztc_n  + rbcp * ztc_d  )   ! ta <-- Brown & Campana average 
    481                   ENDIF 
    482486               END DO 
    483487            END DO 
  • NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90

    r10104 r10106  
    122122   USE dom_oce , ONLY : ln_sco => ln_sco 
    123123   USE dom_oce , ONLY : neuler => neuler 
    124    USE dom_oce , ONLY : mikt      => mikt          !: f-points (m) 
    125124 
    126125   USE crs,  ONLY : mi0 => mi0  
     
    193192   USE crs , ONLY :     e3t_0    =>    e3t_0_crs       !: depth of t-points (m) 
    194193   USE crs , ONLY :   mbkt       =>   mbkt_crs       !: vertical index of the bottom last T- ocean level 
     194   USE crs , ONLY :   mikt       =>   mikt_crs       !: vertical index of the top first T- ocean level 
    195195   USE crs , ONLY :   tmask_i    =>   tmask_i_crs    !: Interior mask at t-points 
    196196   USE crs , ONLY :   tmask      =>   tmask_crs      !: land/ocean mask at t-points 
Note: See TracChangeset for help on using the changeset viewer.