Changeset 2042 for LMDZ5/trunk/libf
- Timestamp:
- May 14, 2014, 11:18:03 AM (11 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/ener_conserv.F90
r1907 r2042 20 20 ! From module 21 21 USE phys_local_var_mod, ONLY : d_u_vdf,d_v_vdf,d_t_vdf,d_u_ajs,d_v_ajs,d_t_ajs,d_u_con,d_v_con,d_t_con,d_t_diss 22 USE phys_output_var_mod, ONLY : bils_ec,bils_tke,bils_kinetic,bils_enthalp,bils_latent,bils_diss 22 USE phys_local_var_mod, ONLY : d_t_eva,d_t_lsc,d_q_eva,d_q_lsc 23 USE phys_output_var_mod, ONLY : bils_ec,bils_ech,bils_tke,bils_kinetic,bils_enthalp,bils_latent,bils_diss 23 24 24 25 IMPLICIT none … … 41 42 REAL, DIMENSION(klon,klev+1) :: fluxu,fluxv,fluxt 42 43 REAL, DIMENSION(klon,klev+1) :: dddu,dddv,dddt 43 REAL, DIMENSION(klon,klev) :: d_u,d_v,d_t,zv,zu 44 REAL, DIMENSION(klon,klev) :: d_u,d_v,d_t,zv,zu,d_t_ech 44 45 REAL ZRCPD 45 46 … … 131 132 132 133 do k=1,klev 133 d_t_ec (:,k)=-(dddu(:,k)+dddu(:,k+1)+dddv(:,k)+dddv(:,k+1) &134 & +rcpd*(dddt(:,k)+dddt(:,k+1)))/(2.*rcpd*masse(:,k))134 d_t_ech(:,k)=-(rcpd*(dddt(:,k)+dddt(:,k+1)))/(2.*rcpd*masse(:,k)) 135 d_t_ec(:,k)=-(dddu(:,k)+dddu(:,k+1)+dddv(:,k)+dddv(:,k+1))/(2.*rcpd*masse(:,k))+d_t_ech(:,k) 135 136 enddo 136 ! d_t_ec=0.137 137 138 138 ENDIF … … 141 141 ! Computation of integrated enthalpie and kinetic energy variation 142 142 ! FH (hourdin@lmd.jussieu.fr), 2013/04/25 143 ! bils_ec : energie conservation term 144 ! bils_ech : part of this term linked to temperature 145 ! bils_tke : change of TKE 146 ! bils_diss : dissipation of TKE (when activated) 147 ! bils_kinetic : change of kinetic energie of the column 148 ! bils_enthalp : change of enthalpie 149 ! bils_latent : change of latent heat. Computed between 150 ! after reevaporation (at the beginning of the physics) 151 ! and before large scale condensation (fisrtilp) 143 152 !================================================================ 144 153 145 154 bils_ec(:)=0. 155 bils_ech(:)=0. 146 156 bils_tke(:)=0. 147 157 bils_diss(:)=0. … … 151 161 DO k=1,klev 152 162 bils_ec(:)=bils_ec(:)-d_t_ec(:,k)*masse(:,k) 163 bils_ech(:)=bils_ech(:)-d_t_ech(:,k)*masse(:,k) 153 164 bils_tke(:)=bils_tke(:)+0.5*(dtke(:,k)+dtke(:,k+1))*masse(:,k) 154 165 bils_diss(:)=bils_diss(:)-d_t_diss(:,k)*masse(:,k) … … 157 168 & -puo(:,k)*puo(:,k)-pvo(:,k)*pvo(:,k)) 158 169 bils_enthalp(:)= & 159 & bils_enthalp(:)+masse(:,k)*(ptn(:,k)-pto(:,k)+d_t_ec(:,k)) 170 & bils_enthalp(:)+masse(:,k)*(ptn(:,k)-pto(:,k)+d_t_ec(:,k)-d_t_eva(:,k)-d_t_lsc(:,k)) 171 ! & bils_enthalp(:)+masse(:,k)*(ptn(:,k)-pto(:,k)+d_t_ec(:,k)) 160 172 bils_latent(:)=bils_latent(:)+masse(:,k)* & 161 & (pqn(:,k)-pqo(:,k)) 173 ! & (pqn(:,k)-pqo(:,k)) 174 & (pqn(:,k)-pqo(:,k)-d_q_eva(:,k)-d_q_lsc(:,k)) 162 175 ENDDO 163 176 bils_ec(:)=rcpd*bils_ec(:)/pdtphys 177 bils_ech(:)=rcpd*bils_ech(:)/pdtphys 164 178 bils_tke(:)=bils_tke(:)/pdtphys 165 179 bils_diss(:)=rcpd*bils_diss(:)/pdtphys -
LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r2003 r2042 237 237 'bils_diss', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 9) /)) 238 238 TYPE(ctrl_out), SAVE :: o_bils_ec = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 /), & 239 'bils_ec', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 9) /)) 239 'bils_ec', 'Surf. total heat flux correction', 'W/m2', (/ ('', i=1, 9) /)) 240 TYPE(ctrl_out), SAVE :: o_bils_ech = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 /), & 241 'bils_ech', 'Surf. total heat flux correction', 'W/m2', (/ ('', i=1, 9) /)) 240 242 TYPE(ctrl_out), SAVE :: o_bils_kinetic = ctrl_out((/ 1, 2, 10, 5, 10, 10, 11, 11, 11 /), & 241 243 'bils_kinetic', 'Surf. total heat flux', 'W/m2', (/ ('', i=1, 9) /)) -
LMDZ5/trunk/libf/phylmd/phys_output_var_mod.F90
r1938 r2042 17 17 !$OMP THREADPRIVATE(itau_con) 18 18 REAL, ALLOCATABLE :: bils_ec(:) ! Contribution of energy conservation 19 REAL, ALLOCATABLE :: bils_ech(:) ! Contribution of energy conservation 19 20 REAL, ALLOCATABLE :: bils_tke(:) ! Contribution of energy conservation 20 21 REAL, ALLOCATABLE :: bils_diss(:) ! Contribution of energy conservation … … 22 23 REAL, ALLOCATABLE :: bils_enthalp(:) ! bilan de chaleur au sol 23 24 REAL, ALLOCATABLE :: bils_latent(:) ! bilan de chaleur au sol 24 !$OMP THREADPRIVATE(bils_ec,bils_ tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent)25 !$OMP THREADPRIVATE(bils_ec,bils_ech,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent) 25 26 26 27 … … 83 84 allocate(snow_o(klon), zfra_o(klon)) 84 85 allocate(itau_con(klon)) 85 allocate (bils_ec(klon),bils_ tke(klon),bils_diss(klon),bils_kinetic(klon),bils_enthalp(klon),bils_latent(klon))86 allocate (bils_ec(klon),bils_ech(klon),bils_tke(klon),bils_diss(klon),bils_kinetic(klon),bils_enthalp(klon),bils_latent(klon)) 86 87 87 88 IF (ok_gwd_rando) allocate(zustr_gwd_rando(klon), zvstr_gwd_rando(klon)) … … 95 96 96 97 deallocate(snow_o,zfra_o,itau_con) 97 deallocate (bils_ec,bils_ tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent)98 deallocate (bils_ec,bils_ech,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent) 98 99 99 100 END SUBROUTINE phys_output_var_end -
LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90
r2003 r2042 45 45 o_LWupSFC, o_LWdnSFC, o_LWupSFCclr, & 46 46 o_LWdnSFCclr, o_bils, o_bils_diss, & 47 o_bils_ec, o_bils_tke, o_bils_kinetic, &47 o_bils_ec,o_bils_ech, o_bils_tke, o_bils_kinetic, & 48 48 o_bils_latent, o_bils_enthalp, o_sens, & 49 49 o_fder, o_ffonte, o_fqcalving, o_fqfonte, & … … 217 217 218 218 USE phys_output_var_mod, only: vars_defined, snow_o, zfra_o, bils_diss, & 219 bils_ec, bils_tke, bils_kinetic, bils_latent, bils_enthalp, &219 bils_ec,bils_ech, bils_tke, bils_kinetic, bils_latent, bils_enthalp, & 220 220 itau_con, nfiles, clef_files, nid_files, zvstr_gwd_rando 221 221 USE indice_sol_mod, only: nbsrf … … 467 467 CALL histwrite_phy(o_bils_diss, bils_diss) 468 468 CALL histwrite_phy(o_bils_ec, bils_ec) 469 CALL histwrite_phy(o_bils_ech, bils_ech) 469 470 CALL histwrite_phy(o_bils_tke, bils_tke) 470 471 CALL histwrite_phy(o_bils_kinetic, bils_kinetic)
Note: See TracChangeset
for help on using the changeset viewer.