Changes between Version 7 and Version 8 of 2020WP/KERNEL06_techene_better_e3_management
 Timestamp:
 20200319T15:12:46+01:00 (4 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

2020WP/KERNEL06_techene_better_e3_management
v7 v8 38 38 }}} 39 39 40 Step 1 : Check the error for e3t, e3w between the current way to compute e3 at T, Wpoint and the proposed way to compute e3 at T, Wpoint. 40 Eventually, 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. 41 41 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 42 List 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 50 List the Fortran modules and subroutines to be duplicated/edited. 51  src/OCE/DOM/domvvl.F90 52  src/OCE/step.F90 53 List the Fortran modules and subroutines to be XXX. 54  src/OCE/DYN/dynatf.F90 55  src/OCE/TRA/traatf.F90 56 List the Fortran modules and subroutines to be created. 57 substitute.F90 55 58 56 59 ''...'' … … 71 74 }}} 72 75 73 76 Step 1 : Check the error for e3t, e3w between the current way to compute e3 at T, Wpoint and the proposed way to compute e3 at T, Wpoint. 77  prints added with no change in the results 78 Step 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 81 Step 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) 83 Step 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 74 87 75 88 ''...'' … … 85 98 Reference 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. 86 99 100 Step 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 102 error between proposed and former way to compute vertical scale factors at time kt = 1, 120, 85 103 e3t (1) 104 0.0000000000000000 105 3999.6591076268369 106 4.54747350886E013 107 e3t (2) 108 5.68434188608E014 109 5.11590769747E013 110 4.54747350886E013 111 e3w 112 '''4.64477238892E007 113 6.13657050507E006 114 5.27333801869E006''' 115 gde3w 116 1.81898940354E012 117 2.72848410531E012 118 2.72848410531E012 119 120 QUESTION : 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 87 122 88 123