Changes between Version 61 and Version 62 of doc/app/userint/int
- Timestamp:
- Aug 11, 2022 9:26:56 AM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
doc/app/userint/int
v61 v62 158 158 In this routine user actions can be implemented which are to be executed either at each time step or at certain times (defined by the user). Since in each case the routine is called at the beginning and at the end of a time step as well as after each prognostic equation it must be defined at which place (and/or at which places) the respective actions are supposed to be executed. For this purpose, an appropriate {{{CASE}}} structure is already inserted in this routine. The location of the calling routine is passed to this routine via the argument {{{location}}}. For example, if called at the beginning of a time step, {{{location}}} ='' 'before_timestep' ''and if called at the end, {{{location}}} ='' 'after_timestep'.''\\ 159 159 Calculation of user-defined output quantities should be carried out at {{{location}}} ='' 'after_integration'.''\\\\ 160 '''Important:''' if the cache-optimized version of prognostic_equation.f90 is used (this is the default for IBM-Regatta-Systems), the loop variables {{{i}}} and {{{j}}} must be passed as arguments for all calls within {{{prognostic_equations}}}.\\\\160 '''Important:''' if the cache-optimized version of prognostic_equation.f90 is used (this is the default), the loop variables {{{i}}} and {{{j}}} must be passed as arguments for all calls within {{{prognostic_equations}}}.\\\\ 161 161 CPU time for {{{user_actions}}} appears within the category "user_actions" in the local file [../../iofiles#CPU_MEASURES CPU_MEASURES]. If the cache-optimized version of {{{prognostic_equation.f90}}} is used, this time measurement only considers the CPU time which was needed outside of the prognostic equations. Time needed for calls within prognostic_equations is considered within the category "all prog.equations".\\\\ 162 162 Important: this subroutine is written as a {{{FORTRAN}}} module, which uses so-called function overloading. It can be called in two ways: with one argument ({{{location}}}) and with three arguments {{{(i, j, location)}}}. The three argument version is used in the cache-optimized version of {{{prognostic_equations}}}. Depending on the number of given arguments the subroutine internally calls {{{user_actions}}} or {{{user_actions_ij}}}. So the user must insert the actions (code extensions) desired for the respective prognostic equation either in the {{{CASE}}} structure of {{{user_actions}}}, or/and in the {{{CASE}}} structure of {{{user_actions_ij}}}! 163 }}} 164 |---------------- 165 {{{#!td style="vertical-align:top; text-align:left;width: 150px" 166 End of {{{prognostic_equations.f90}}}. 167 }}} 168 {{{#!td style="vertical-align:top; text-align:left;style="width: 50px" 169 [=#user_prognostic_equations {{{user_prognostic_equations}}}]\\\\or\\\\{{{user_prognostic_equations}}}\\{{{( i, j, i_omp_start, tn )}}} 170 }}} 171 {{{#!td 172 This is for implementing complete prognostic equations for additional quantities, e.g. if more than one passive scalar shall be simulated.\\\\ 173 '''Important:''' This subroutine is written as a {{{FORTRAN}}} module, which uses so-called function overloading. It can be called in two ways: with one argument ({{{location}}}) and with four arguments {{{(i, j, i_omp_start, tn)}}}. The four argument version is used in the cache-optimized version of {{{prognostic_equations}}} (which is switched on by default). Depending on the number of given arguments the subroutine internally calls {{{user_prognostic_equations}}} or {{{user_prognostic_equations_ij}}}. So the user must insert the respective prognostic equations either in {{{user_prognostic_equations}}}, or/and in {{{user_prognostic_equations_ij}}}! 163 174 }}} 164 175 |----------------