Changes between Version 37 and Version 38 of ticket/0663_MLF
- Timestamp:
- 2010-09-14T22:18:29+02:00 (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ticket/0663_MLF
v37 v38 52 52 '''sbc_oce.F90 :''' add "before" forcing fields (denoted by a '_b' sufix) 53 53 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. 54 55 55 56 [[BR]] 56 57 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... 58 59 59 60 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. … … 67 68 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. 68 69 70 Swap and restart of sbc_(h/s)c 71 69 72 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) 70 73 … … 74 77 75 78 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. 77 82 78 83 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. … … 80 85 CAUTION 2 : the thickness used in the penetration should be the mean of the two consecutive time step ! 81 86 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) 96 105 97 106 [[BR]] … … 103 112 [[BR]] 104 113 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 140 116 141 117 '''tranxt.F90 : ''' Changes for modified time filtering - only in the variable volume case … … 143 119 remove atfp * rdt * ( 'heat_content_forcing_n' - 'heat_content_forcing_b' ) from heat content time filter 144 120 121 remove atfp * rdt * ( 'salt_content_forcing_n' - 'salt_content_forcing_b' ) from heat content time filter 122 145 123 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 ) / rau0153 124 154 125 [[BR]]