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 4982 for branches/2014 – NEMO

Changeset 4982 for branches/2014


Ignore:
Timestamp:
2014-12-10T11:58:55+01:00 (9 years ago)
Author:
jchanut
Message:

Trick to allow same vertical grid, yet different number of levels on each grid (z/zps only)

Location:
branches/2014/dev_r4765_CNRS_agrif/NEMOGCM/NEMO
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4765_CNRS_agrif/NEMOGCM/NEMO/NST_SRC/agrif_user.F90

    r4980 r4982  
    3131      jpi     = ( jpiglo-2*jpreci + (jpni-1+0) ) / jpni + 2*jpreci 
    3232      jpj     = ( jpjglo-2*jprecj + (jpnj-1+0) ) / jpnj + 2*jprecj 
    33       jpk     = jpkdta  
     33! JC: change to allow for different vertical levels 
     34!     jpk is already set 
     35!     keep it jpk possibly different from jpkdta which  
     36!     hold parent grid vertical levels number (set earlier) 
     37!      jpk     = jpkdta  
    3438      jpim1   = jpi-1  
    3539      jpjm1   = jpj-1  
  • branches/2014/dev_r4765_CNRS_agrif/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r4687 r4982  
    216216         &  ppsur == pp_to_be_computed           ) THEN 
    217217         ! 
     218#if defined key_agrif 
     219         za1  = (  ppdzmin - pphmax / FLOAT(jpkdta-1)  )                                                   & 
     220            & / ( TANH((1-ppkth)/ppacr) - ppacr/FLOAT(jpkdta-1) * (  LOG( COSH( (jpkdta - ppkth) / ppacr) )& 
     221            &                                                      - LOG( COSH( ( 1  - ppkth) / ppacr) )  )  ) 
     222#else 
    218223         za1  = (  ppdzmin - pphmax / FLOAT(jpkm1)  )                                                      & 
    219224            & / ( TANH((1-ppkth)/ppacr) - ppacr/FLOAT(jpk-1) * (  LOG( COSH( (jpk - ppkth) / ppacr) )      & 
    220225            &                                                   - LOG( COSH( ( 1  - ppkth) / ppacr) )  )  ) 
     226#endif 
    221227         za0  = ppdzmin - za1 *              TANH( (1-ppkth) / ppacr ) 
    222228         zsur =   - za0 - za1 * ppacr * LOG( COSH( (1-ppkth) / ppacr )  ) 
     
    233239              WRITE(numout,*) '            Uniform grid with ',jpk-1,' layers' 
    234240              WRITE(numout,*) '            Total depth    :', zhmax 
     241#if defined key_agrif 
     242              WRITE(numout,*) '            Layer thickness:', zhmax/(jpkdta-1) 
     243#else 
    235244              WRITE(numout,*) '            Layer thickness:', zhmax/(jpk-1) 
     245#endif 
    236246         ELSE 
    237247            IF( ppa1 == 0._wp .AND. ppa0 == 0._wp .AND. ppsur == 0._wp ) THEN 
     
    257267      ! Reference z-coordinate (depth - scale factor at T- and W-points) 
    258268      ! ====================== 
    259       IF( ppkth == 0._wp ) THEN            !  uniform vertical grid        
     269      IF( ppkth == 0._wp ) THEN            !  uniform vertical grid  
     270#if defined key_agrif 
     271         za1 = zhmax / FLOAT(jpkdta-1)  
     272#else 
    260273         za1 = zhmax / FLOAT(jpk-1)  
     274#endif 
    261275         DO jk = 1, jpk 
    262276            zw = FLOAT( jk ) 
  • branches/2014/dev_r4765_CNRS_agrif/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r4785 r4982  
    342342         jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj   ! second dim. 
    343343#endif 
    344       ENDIF 
     344      ENDIF          
    345345         jpk = jpkdta                                             ! third dim 
     346#if defined key_agrif 
     347         ! simple trick to use same vertical grid as parent 
     348         ! but different number of levels:  
     349         ! Save maximum number of levels in jpkdta, then define all vertical grids 
     350         ! with this number. 
     351         ! Suppress once vertical online interpolation is ok 
     352         IF(.NOT.Agrif_Root()) jpkdta = Agrif_Parent(jpkdta) 
     353#endif 
    346354         jpim1 = jpi-1                                            ! inner domain indices 
    347355         jpjm1 = jpj-1                                            !   "           " 
Note: See TracChangeset for help on using the changeset viewer.