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.
ticket/0663_MLF (diff) – NEMO

Changes between Version 37 and Version 38 of ticket/0663_MLF


Ignore:
Timestamp:
2010-09-14T22:18:29+02:00 (14 years ago)
Author:
mlelod
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ticket/0663_MLF

    v37 v38  
    5252   '''sbc_oce.F90 :''' add "before" forcing fields (denoted by a '_b' sufix)  
    5353      All ocean forcing components are involved, i.e.  utau_b, vtau_b, qns_b, qsr_b, emp_b,and  emps_b 
     54      6 other fields are introduced: sbc_hc_n and sbc_hc_b are the surface heat content foring at now and before time steps, sbc_sc_n and sbc_sc_b are the surface salt content forcing at now and before time steps and qsr_hc_n and qsr_hc_b are the 3D penetrative solar heat content forcing at now and before time steps. 
    5455 
    5556   [[BR]] 
    5657    
    57    '''sbcmod.F90 :''' add the swap of surface fields and the read/write in the restart file. 
     58   '''sbcmod.F90 :''' add the swap of surface fields and the read/write in the restart file, except for sbc_hc_(n/b), sbc_sc_(n/b) ans qsr_hc_(n/b). Note: when writing restart files, the utau_b, vtau_b, qns_b variables etc... contain utau, vtau, qns etc... 
    5859 
    5960      Beginning of sbs routine, introduce the swap, but only for kt >= nit000+1. If no restart, the '_b' fields is known only at the end of the sbc calculation. Therefore we have choosen to regroup the setting of '_b' fields at nit000 at the end of sbc routine.  
     
    6768      The thermohalin fluxes (qns, emp, emps) are now applied as the mean of 2 consecutive time-steps (kt+1/2 and kt-1/2). This involes the following changes : (1) incorporate the time mean of the forcing ; (2) put the IF-ELSE-ENDIF outside the DO-loop for vector optimisation ; (3) remove the key_zco optimisation (increase readability) as zco is less and less used ; (4) correct a bug in vvl case, where salt flux associated with freezing/melting were not taken into account. 
    6869 
     70      Swap and restart of sbc_(h/s)c 
     71 
    6972      CAUTION 1 : bug in the salt flux in key_vvl ===> modif in limsbc_2.F90 (emps becomes a salt flux in vvl,limsbc, limsbc_2 and CICE interface must be modified) 
    7073 
     
    7477 
    7578 
    76    '''traqsr.F90 : ''' applied the solar heat flux (qsr) as the mean of 2 consecutive time-steps (kt+1/2 and kt-1/2) 
     79   '''traqsr.F90 : ''' apply the solar heat flux (qsr) as the mean of 2 consecutive time-steps (kt+1/2 and kt-1/2) 
     80 
     81      The 3D heat content tendency term of penetrative solar flux is stored in "qsr_hc_n" in all cases. To that purpose, the division by fse3t in the computation of etot3 has been removed. It is done in the next step, when heat content tendency is converted to temperature tendency and added to ta. 
    7782 
    7883      CAUTION 1 : the case where the light penetration is provided by the bio-model ( i.e. lk_qsr_bio = ln_qsr_bio =.true. is not yet treated. It probably requires changes in p4zopt.F90 and trcopt.F90. Not completely obvious since this depends on the TOP time-stepping strategy. 
     
    8085      CAUTION 2 : the thickness used in the penetration should be the mean of the two consecutive time step ! 
    8186 
    82    [[BR]] 
    83  
    84  
    85    '''dynzdf_exp.F90 : ''' applied the stress (utau, vtau) as the mean of 2 consecutive time-steps (kt+1/2 and kt-1/2) 
    86  
    87    [[BR]] 
    88  
    89  
    90    '''dynzdf_imp.F90 : ''' applied the stress (utau, vtau) as the mean of 2 consecutive time-steps (kt+1/2 and kt-1/2) 
    91  
    92    [[BR]] 
    93  
    94  
    95    '''sshwzv.F90 : ''' applied the freshwater flux (emp) as the mean of 2 consecutive time-steps (kt+1/2 and kt-1/2) 
     87      Swap and restart of qsr_hc 
     88 
     89   [[BR]] 
     90 
     91 
     92   '''dynzdf_exp.F90 : ''' apply the stress (utau, vtau) as the mean of 2 consecutive time-steps (kt+1/2 and kt-1/2) 
     93 
     94   [[BR]] 
     95 
     96 
     97   '''dynzdf_imp.F90 : ''' apply the stress (utau, vtau) as the mean of 2 consecutive time-steps (kt+1/2 and kt-1/2) 
     98 
     99   [[BR]] 
     100 
     101 
     102   '''sshwzv.F90 : ''' apply the freshwater flux (emp) as the mean of 2 consecutive time-steps (kt+1/2 and kt-1/2) 
     103 
     104    Not related to this ticket: surface weighted averaging for the computation of sshf_a and sshf_b in vvl case (as for sshu and sshv) 
    96105 
    97106   [[BR]] 
     
    103112   [[BR]] 
    104113 
    105    '''sbc_oce : ''' Declaration of new forcing fields needed for modified forcing and modified filtering 
    106  
    107       Heat content trend due to SBC non solar fluxes (2D) at now and before time steps stored in sbc_trd_hc_n and sbc_trd_hc_b. 
    108  
    109       Salt content trend due to SBC fluxes (2D) at now and before time steps stored in sbc_trd_sc_n and sbc_trd_sc_b. 
    110  
    111       Heat content trends due to penetrative solar radiation (3D) are stored at now and before time steps in qsr_trd_hc_n and qsr_trd_hc_b. 
    112  
    113    '''sbcmod : '''  
    114  
    115       Correction of a little bug in restart "put":  when writing restart files, the utau_b, vtau_b, qns_b variables etc... contain utau, vtau, qns. 
    116  
    117    '''trasbc : ''' Changes for modified forcing integration 
    118  
    119       Swap and restart of sbc_trd_(h/s)c 
    120  
    121       sbc_trd_(h/s)c_n is added to ta in forward Euler time stepping case 
    122  
    123       0.5 * ( sbc_trd_(h/s)c_b + sbc_trd_(h/s)c_n ) is aded to "ta" in the leap-frog time stepping case 
    124  
    125    '''traqsr : ''' Changes for modified forcing integration 
    126  
    127       Swap and restart of qsr_trd_hc 
    128  
    129       The 3D heat content tendency term of penetrative solar flux is stored in "qsr_trd_hc_n" in all cases. To that purpose, the division by fse3t in the computation of etot3 has been removed. It is done in the next step, when heat content tendency is converted to temperature tendency and added to ta. 
    130  
    131       CAUTION : the case where the light penetration is provided by the bio-model ( i.e. lk_qsr_bio = ln_qsr_bio =.true. is not yet treated. It probably requires changes in p4zopt.F90 and trcopt.F90. Not completely obvious since this depends on the TOP time-stepping strategy. 
    132  
    133       Then only qsr_trd_hc_n variable is aded to ta in the forward Euler time stepping case and 0.5 * ( qsr_trd_hc_b + qsr_trd_hc_n ) is added to ta in the leap-frog time stepping case. 
    134  
    135    '''sshwzv : '''  
    136  
    137       surface weighted averaging for the computation of sshf_a and sshf_b in vvl case (as for sshu and sshv) 
    138  
    139       filter correction when computing sshb in vvl case: remove atfp * rdt * ( 'volume_forcing_n' - 'volume_forcing_b' ) from volume time filter 
     114 
     115   '''sshwzv : ''' filter correction when computing sshb in vvl case: remove atfp * rdt * ( 'volume_forcing_n' - 'volume_forcing_b' ) from volume time filter 
    140116 
    141117   '''tranxt.F90 : ''' Changes for modified time filtering - only in the variable volume case 
     
    143119      remove atfp * rdt * ( 'heat_content_forcing_n' - 'heat_content_forcing_b' ) from heat content time filter 
    144120 
     121      remove atfp * rdt * ( 'salt_content_forcing_n' - 'salt_content_forcing_b' ) from heat content time filter 
     122 
    145123      remove atfp * rdt * ( 'volume_forcing_n'       - 'volume_forcing_b'       ) from volume       time filter 
    146  
    147    [[BR]] 
    148  
    149  
    150    '''sshwzv.F90 : '''  a additional term appears in the filter (the last part of the RHS) : 
    151  
    152       sshn = ssha + atfp * ( sshb -2 sshn + ssha ) - atfp * rdt * ( emp_b - emp ) / rau0 
    153124 
    154125   [[BR]]