Changes between Version 7 and Version 8 of 2020WP/KERNEL-06_techene_better_e3_management
- Timestamp:
- 2020-03-19T15:12:46+01:00 (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
2020WP/KERNEL-06_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-, W-point and the proposed way to compute e3 at T-, W-point. 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-, W-point and the proposed way to compute e3 at T-, W-point. 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.54747350886E-013 107 e3t (2) 108 5.68434188608E-014 109 5.11590769747E-013 110 4.54747350886E-013 111 e3w 112 '''4.64477238892E-007 113 6.13657050507E-006 114 5.27333801869E-006''' 115 gde3w 116 1.81898940354E-012 117 2.72848410531E-012 118 2.72848410531E-012 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