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.
2020WP/KERNEL-06_techene_better_e3_management (diff) – NEMO

Changes between Version 14 and Version 15 of 2020WP/KERNEL-06_techene_better_e3_management


Ignore:
Timestamp:
2020-08-21T12:53:42+02:00 (4 years ago)
Author:
techene
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2020WP/KERNEL-06_techene_better_e3_management

    v14 v15  
    4242'''KERNEL-06's version 1 implementation : /NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3'''  
    4343 
     44==== starting point 
     45 
    4446In NEMO r12377 scale factors (e3*) at u-v-w-uw-vw-f-points are interpolated from e3t at Kbb, Kmm, and Kaa. 
    4547The module in charge of scale factor management is src/OCE/DOM/domvvl.F90.  
     
    8284}}} 
    8385 
    84 In version 1 we implement changes progressively and validate step by step regarding GYRE_PISCES test case. For backward compatibility we introduce a cpp key key_qco in order to isolate new scale factor implementation from former vvl version. qco stand for for "quasi eulerian coordinate".  
     86==== developpments  
     87 
     88In version 1 of source://dev_r12377_KERNEL-06_techene_e3 we implement changes progressively and validate step by step regarding GYRE_PISCES test case. We remove all the vvl routines usage thus we replace e3t/u/v/w/uw/vw at 3 time step + e3f (19) 3d tables storage and twice e3u/v "after" + e3u/v "now" + e3f/w/uw/vw "now" + e3w/uw/vw "before" (13) 3d tables interpolation at each step and e3u/v/f/w/uw/vw "now" + e3u/v/w/uw/vw "before" (11) 3d tables interpolation at initialisation or restart by r3t/u/v at 3 time steps and r3f i.e. (10) 2d table storage and on the fly light computation. For backward compatibility we introduce a cpp key key_qco in order to isolate new scale factor implementation from former vvl version. qco stand for for "quasi eulerian coordinate".  
    8589- new variables added in dom_oce and domain  
    8690{{{ 
    87 r3. with . = [t,u,v,f] are 2d in space ssh/hP0 
     91r3P with P = [t,u,v,f] are 2d in space ssh/hP0 
    8892}}} 
    8993- new module in DOM : dom_qco 
     
    9498   --> dom_qco_r3c[Kbb] at t-u-v  -points 
    9599}}} 
    96 - new substitute in DOM : domzgr_substitute 
    97 When key_qco is active e3. is no longer a variable but an expression.  
    98 Each time e3. appears in a routine an include domzgr_substitute in the module enables to replace it by a (e3._0 ( 1 + r3. ) * mask.) like expression.  
     100- new substitute in DOM : domzgr_substitute When key_qco is active e3. is no longer a variable but an expression. Each time e3. appears in a routine an include domzgr_substitute in the module enables to replace it by a (e3._0 ( 1 + r3. ) * mask.) like expression.  
    99101{{{ 
    100102#   define  e3t(i,j,k,t)   (e3t_0(i,j,k)*(1._wp+r3t(i,j,t)*tmask(i,j,k))) 
     
    122124 
    123125Important points :  
    124 - e3. expression involves tables of distinct dimension then e3.(:,:,:) call fails it may be necessary to introduce temporary variables (same for water height expression) 
     126- e3. expression involves tables of distinct dimension then e3.(:,:,: ) call fails it may be necessary to introduce temporary variables (same for water height expression) 
    125127- "e3. =" is no longer possible 
    126128- e3t/u/v/f modifications did not introduce any difference in the results, e3w modification does because both approaches vvl and qco do not take into account of the bottom level in the same way 
    127129- in GYRE e3w_0 are not the half sum of e3u_0 so the way it is implemented in the reference version is not convinient 
    128130- e3. substitution makes lines longer than 136 character this may be a problem for compilers (most have been checked but not all) 
    129 - ssh filtering has been displaced upper in order to provide filtered r3. in TOP asselin filtering  
    130 - when key_qco is not active we pass SETTE and this version has been delivered for mid-merge party !  
    131 -- Some silly allocating memory bugs found and a not that silly bug in the implicit mode for SPITZ12 configuration. 
     131- ssh filtering has been displaced upper in order to provide filtered r3P in TOP asselin filtering  
     132- when key_qco is not active we pass SETTE and this version r13167 has been delivered for mid-merge party ! Some silly allocating memory bugs found and a not that silly bug in implicit mode triggering for SPITZ12 configuration (Dt instead of 2Dt required). 
     133 
     134 
     135 
     136'''KERNEL-06's version 2 implementation : /NEMO/branches/2020/dev_r13327_KERNEL-06_techene_e3_v2''' 
     137 
     138 
     139 
     140 
     141 
     142 
     143 
    132144 
    133145 
     
    149161RUN SETTE and deliver version for mid-merge party ! Some silly allocating memory bugs found and a not that silly bug in the implicit mode for SPITZ12 configuration.  
    150162[Etape 8, 9 & 11] 
    151  
    152  
    153 '''KERNEL-06's version 2 implementation : /NEMO/branches/2020/dev_r13327_KERNEL-06_techene_e3_v2'''  
     163  
    154164 
    155165