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.
2021WP/KNL-01_Sibylle_RK3_stage1 (diff) – NEMO

Changes between Version 21 and Version 22 of 2021WP/KNL-01_Sibylle_RK3_stage1


Ignore:
Timestamp:
2022-01-03T18:22:40+01:00 (2 years ago)
Author:
techene
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2021WP/KNL-01_Sibylle_RK3_stage1

    v21 v22  
    397397Trunk has new management of the halos, RK3 additionnal routines have to be updated accordingly. [[BR]] 
    398398 
    399 - lbc_lnk_multi routines no longer exist : they have been integrated into lbc_lnk generic routines, then they have to be replaced in :[[BR]] 
     399- `lbc_lnk_multi` routines no longer exist : they have been integrated into lbc_lnk generic routines, then they have to be replaced in :[[BR]] 
    400400 
    401401=> src/OCE/DYN/dynspg_ts.F90[[BR]] 
     
    409409 
    410410 
    411 - we have optimized tra_qsr routine by limiting intermidiate storing array, computations are now done only in the interior it works for all variables except fraqsr_1lev. Indeed it needs to be defined over the whole domain for the ICE. When not np_BIO fraqsr_1lev depends on qsr_hc, to minimize the code changed I decided to keep qsr_hc defined in the interior and to make a communication on fraqsr_1lev but it may not be the best solution. see with GM ! [[BR]] 
     411- we have optimized tra_qsr routine by limiting intermidiate storing array, computations are now done only in the interior it works for all variables except fraqsr_1lev. Indeed it needs to be defined over the whole domain for the ICE. When not np_BIO fraqsr_1lev depends on qsr_hc, to minimize the code changed I decided to keep qsr_hc defined in the interior and to make a communication on `fraqsr_1lev` but it may not be the best solution. `see with GM` ! [[BR]] 
    412412 
    413413=> src/OCE/TRA/traqsr.F90 (fraqsr_1lev) [[BR]] 
     
    416416- src/OCE/stprk3_stg.F90 also has to be updated.  [[BR]] 
    417417 
    418 => A communication is required on r3. Indeed r3. at Kbb and Kmm can be used over the whole domain. In MLF case r3. at Kbb and Kmm are lbc-ised when starting a time step, while in RK3 case because of the stages within a step and r3. at Kmm is never lbc-ised.  That is why this communication is required !  [[BR]] 
     418=> A communication is required on `r3.` Indeed r3. at Kbb and Kmm can be used over the whole domain. In MLF case r3. at Kbb and Kmm are lbc-ised when starting a time step, while in RK3 case because of the stages within a step and r3. at Kmm is never lbc-ised.  That is why this communication is required !  [[BR]] 
    419419=> Advective speeds at Kmm are computed on the whole domain and also required r3u to be defined over the whole domain.  [[BR]] 
    420 => As far as I understand ts, tr @ Kaa are not only computed in the interior in order to limit the number of loops, and sometime (ex pt update in src/OCE/TRA/traadv_fct.F90) values are computed but not used. In traadv case pt value outside the interior in erased with a lbc_lnk at the end of the time step. That is why ts/tr have to be initialised over the whole domain. Maybe it should be done at the init only as we discussed with GM ! [[BR]] 
     420=> As far as I understand ts, tr @ Kaa are not only computed in the interior in order to limit the number of loops, and sometime (ex pt update in src/OCE/TRA/traadv_fct.F90) values are computed but not used. In traadv case pt value outside the interior in erased with a lbc_lnk at the end of the time step. That is why ts/tr have to be initialised over the whole domain. Maybe it should be done at the init only `as we discussed with GM` ! [[BR]] 
    421421=> As what has been done for MLF "IF( nn_hls == 2 .AND. l_zdfsh2 ) CALL lbc_lnk( 'stp_RK3_stg', avm_k, 'W', 1.0_wp )" needs to be externalised from the tke routine.  [[BR]] 
    422422 
    423423 
    424 - rhop removal needs to be adressed properly. For now it has been quickly removed from RK3 but it is required for some DIA routines and over all for tra_mle (activated in ORCA2_ICE_PISCES configuration). The initial target was to compute rhop locally when needed on order to avoid to store a useless rhop array. But is means about 6 times. [[BR]] 
     424- `rhop` removal needs to be adressed properly. For now it has been quickly removed from RK3 but it is required for some DIA routines and over all for tra_mle (activated in ORCA2_ICE_PISCES configuration). The initial target was to compute rhop locally when needed on order to avoid to store a useless rhop array. But is means about 6 times. `see with GM` !!! [[BR]] 
    425425 
    426426=> src/OCE/TRD/trdglo.F90 : glo_dyn_wri changes maye useless since glo_dyn_wri never called !  [[BR]]