Changes between Version 7 and Version 8 of 2020WP/KERNEL-06_techene_better_e3_management


Ignore:
Timestamp:
2020-03-19T15:12:46+01:00 (8 months ago)
Author:
techene
Comment:

Legend:

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

    v7 v8  
    3838}}} 
    3939 
    40 Step 1 : Check the error for e3t, e3w between the current way to compute e3 at T-, W-point and the proposed way to compute e3 at T-, W-point. 
     40Eventually, all the dom_vvl_interpol call are removed, each time e3 is called we use a substitute to replace e3 by e3_0 (1 + ssh / h_0). For backward compatibility a cpp key manages the use of the new version vs. the old version. We will duplicate modules such as step and domvvl into stepLF and domQE (QE stands for Quasi Eulerian) and create a subtitute module.  
    4141 
    42 Because this change is likely to induce changes in the code we need to insure and because we need backward compatibility, we will duplicate the modules that will be modified and implement changes gradually. 
    43  
    44 Step 2 : First we change only the core routine in domvvl which should be changed into domQE. 
    45 - add new variables, duplicate step into steplf and domvvl into domQE 
    46 - change interpolation routines into scaling routines in domQE 
    47 Step 3 : Then we change the Asselin filtering routine indeed because water forcing are applied locally. 
    48 - change Asselin routines (maybe not required since e3 scale with vertical with JC modif) 
    49 Step 4 : Finally we remove the interpol routine in the whole code 
    50 - remove interpolating routine in all the code (AGRIF, OFF,...)  
    51 - use a SUBSTITUTE when there are e3 CALL 
    52 - make some changes in step and domQE to have the whole thing consistent 
    53  
    54  
     42List the Fortran modules and subroutines to be edited. 
     43- src/ICE/iceistate.F90 
     44- src/OCE/DIA/diamlr.F90 
     45- src/OCE/DOM/dom_oce.F90 
     46- src/OCE/DOM/domain.F90 
     47- src/OCE/DOM/dommsk.F90 
     48- src/OCE/SBC/sbcblk.F90 
     49- src/OCE/SBC/sbcice_cice.F90 
     50List the Fortran modules and subroutines to be duplicated/edited. 
     51- src/OCE/DOM/domvvl.F90 
     52- src/OCE/step.F90 
     53List the Fortran modules and subroutines to be XXX. 
     54- src/OCE/DYN/dynatf.F90 
     55- src/OCE/TRA/traatf.F90 
     56List the Fortran modules and subroutines to be created. 
     57substitute.F90 
    5558 
    5659''...'' 
     
    7174}}} 
    7275 
    73  
     76Step 1 : Check the error for e3t, e3w between the current way to compute e3 at T-, W-point and the proposed way to compute e3 at T-, W-point. 
     77- prints added with no change in the results 
     78Step 2 : First we change only the core routine in domvvl which should be changed into domQE. 
     79- add new variables, duplicate step into steplf and domvvl into domQE 
     80- change interpolation routines into scaling routines in domQE 
     81Step 3 : Then we change the Asselin filtering routine indeed because water forcing are applied locally. 
     82- change Asselin routines (maybe not required since e3 scale with vertical with JC modif) 
     83Step 4 : Finally we remove the interpol routine in the whole code 
     84- remove interpolating routine in all the code (AGRIF, OFF,...)  
     85- use a SUBSTITUTE when there are e3 CALL 
     86- make some changes in step and domQE to have the whole thing consistent 
    7487 
    7588''...'' 
     
    8598Reference set up : For that we produce a reference data set with the trunk -r 12377 using the GYRE_PISCES configuration where top cpp_key has been removed. We run it on 120 time steps. The drag coefficient is zero. We XIOS output an averaged field every 5 days.  
    8699 
     100Step 1 : We print MAXVAL of error between both way to compute the vertical scale factors at each time step, note that we cancelled forcing (in the r12377 revision it should not change anything since water forcings such as run off and emp scale with the vertical). 
     101 
     102error between proposed and former way to compute vertical scale factors at time kt = 1, 120, 85 
     103e3t (1) 
     1040.0000000000000000 
     1053999.6591076268369 
     1064.54747350886E-013 
     107e3t (2) 
     1085.68434188608E-014 
     1095.11590769747E-013 
     1104.54747350886E-013 
     111e3w 
     112'''4.64477238892E-007 
     1136.13657050507E-006 
     1145.27333801869E-006''' 
     115gde3w 
     1161.81898940354E-012 
     1172.72848410531E-012 
     1182.72848410531E-012 
     119 
     120QUESTION : Why do we have such an error on the e3w scale factors ? It is not consistent with machine accuracy error. It seems to be related to the e3w_0 computation. How do we compute e3w_0 ?  
     121 
    87122 
    88123