- Timestamp:
- May 13, 2013, 2:53:28 PM (12 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/clesphys.h
r1737 r1753 12 12 LOGICAL cycle_diurne,soil_model,new_oliq,ok_orodr,ok_orolf 13 13 LOGICAL ok_limitvrai 14 INTEGER nbapp_rad, iflag_con 14 INTEGER nbapp_rad, iflag_con,iflag_ener_conserv 15 15 REAL co2_ppm, co2_ppm0, solaire 16 16 REAL(kind=8) RCO2, RCH4, RN2O, RCFC11, RCFC12 … … 79 79 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, & 80 80 & ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con & 81 & , iflag_ener_conserv & 81 82 & , co2_ppm, solaire & 82 83 & , RCO2, RCH4, RN2O, RCFC11, RCFC12 & -
LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
r1737 r1753 169 169 LOGICAL,SAVE :: ok_orodr_omp, ok_orolf_omp, ok_limitvrai_omp 170 170 INTEGER, SAVE :: nbapp_rad_omp, iflag_con_omp 171 INTEGER, SAVE :: iflag_ener_conserv_omp 171 172 LOGICAL,SAVE :: ok_strato_omp 172 173 LOGICAL,SAVE :: ok_hines_omp … … 653 654 CALL getin('iflag_con',iflag_con_omp) 654 655 656 !Config Key = iflag_ener_conserv 657 !Config Desc = Flag de convection 658 !Config Def = 1 659 !Config Help = Flag pour la convection les options suivantes existent : 660 !Config -1 pour Kinetic energy correction 661 !Config 1 conservation kinetic and enthalpy 662 iflag_ener_conserv_omp = -1 663 CALL getin('iflag_ener_conserv',iflag_ener_conserv_omp) 664 665 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 655 666 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 656 667 !! … … 1637 1648 nbapp_rad = nbapp_rad_omp 1638 1649 iflag_con = iflag_con_omp 1650 iflag_ener_conserv = iflag_ener_conserv_omp 1639 1651 1640 1652 epmax = epmax_omp … … 1845 1857 write(lunout,*)'nbapp_rad=',nbapp_rad 1846 1858 write(lunout,*)'iflag_con=',iflag_con 1859 write(lunout,*)'iflag_ener_conserv=',iflag_ener_conserv 1847 1860 write(lunout,*)' epmax = ', epmax 1848 1861 write(lunout,*)' ok_adj_ema = ', ok_adj_ema -
LMDZ5/trunk/libf/phylmd/phys_output_mod.F90
r1742 r1753 156 156 type(ctrl_out),save :: o_LWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'LWdnSFCclr') 157 157 type(ctrl_out),save :: o_bils = ctrl_out((/ 1, 2, 10, 5, 10, 10 /),'bils') 158 type(ctrl_out),save :: o_bils_ec = ctrl_out((/ 1, 2, 10, 5, 10, 10 /),'bils_ec') 159 type(ctrl_out),save :: o_bils_kinetic = ctrl_out((/ 1, 2, 10, 5, 10, 10 /),'bils_kinetic') 160 type(ctrl_out),save :: o_bils_enthalp = ctrl_out((/ 1, 2, 10, 5, 10, 10 /),'bils_enthalp') 161 type(ctrl_out),save :: o_bils_latent = ctrl_out((/ 1, 2, 10, 5, 10, 10 /),'bils_latent') 158 162 type(ctrl_out),save :: o_sens = ctrl_out((/ 1, 1, 10, 10, 5, 10 /),'sens') 159 163 type(ctrl_out),save :: o_fder = ctrl_out((/ 1, 2, 10, 10, 10, 10 /),'fder') … … 1038 1042 CALL histdef2d(iff,clef_stations(iff),o_LWdnSFCclr%flag,o_LWdnSFCclr%name, "Down. CS IR rad. at surface", "W/m2") 1039 1043 CALL histdef2d(iff,clef_stations(iff),o_bils%flag,o_bils%name, "Surf. total heat flux", "W/m2") 1044 CALL histdef2d(iff,clef_stations(iff),o_bils_ec%flag,o_bils_ec%name, "Surf. total heat flux", "W/m2") 1045 CALL histdef2d(iff,clef_stations(iff),o_bils_kinetic%flag,o_bils_kinetic%name, "Surf. total heat flux", "W/m2") 1046 CALL histdef2d(iff,clef_stations(iff),o_bils_enthalp%flag,o_bils_enthalp%name, "Surf. total heat flux", "W/m2") 1047 CALL histdef2d(iff,clef_stations(iff),o_bils_latent%flag,o_bils_latent%name, "Surf. total heat flux", "W/m2") 1040 1048 CALL histdef2d(iff,clef_stations(iff),o_sens%flag,o_sens%name, "Sensible heat flux", "W/m2") 1041 1049 CALL histdef2d(iff,clef_stations(iff),o_fder%flag,o_fder%name, "Heat flux derivation", "W/m2") -
LMDZ5/trunk/libf/phylmd/phys_output_var_mod.F90
r1335 r1753 15 15 !$OMP THREADPRIVATE(snow_o, zfra_o) 16 16 INTEGER, save, ALLOCATABLE :: itau_con(:) ! Nombre de pas ou rflag <= 1 17 REAL, ALLOCATABLE :: bils_ec(:) ! Contribution of energy conservation 18 REAL, ALLOCATABLE :: bils_kinetic(:) ! bilan de chaleur au sol, kinetic 19 REAL, ALLOCATABLE :: bils_enthalp(:) ! bilan de chaleur au sol 20 REAL, ALLOCATABLE :: bils_latent(:) ! bilan de chaleur au sol 21 17 22 !$OMP THREADPRIVATE(itau_con) 18 23 … … 27 32 allocate(snow_o(klon), zfra_o(klon)) 28 33 allocate(itau_con(klon)) 34 allocate (bils_ec(klon),bils_kinetic(klon),bils_enthalp(klon),bils_latent(klon)) 29 35 30 36 END SUBROUTINE phys_output_var_init … … 36 42 37 43 deallocate(snow_o,zfra_o,itau_con) 44 deallocate (bils_ec,bils_kinetic,bils_enthalp,bils_latent) 38 45 39 46 END SUBROUTINE phys_output_var_end -
LMDZ5/trunk/libf/phylmd/phys_output_write.h
r1742 r1753 358 358 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 359 359 $o_bils%name,itau_w,bils) 360 ENDIF 361 362 IF (o_bils_ec%flag(iff)<=lev_files(iff)) THEN 363 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 364 $o_bils_ec%name,itau_w,bils_ec) 365 ENDIF 366 367 IF (o_bils_kinetic%flag(iff)<=lev_files(iff)) THEN 368 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 369 $o_bils_kinetic%name,itau_w,bils_kinetic) 370 ENDIF 371 372 IF (o_bils_latent%flag(iff)<=lev_files(iff)) THEN 373 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 374 $o_bils_latent%name,itau_w,bils_latent) 375 ENDIF 376 377 IF (o_bils_enthalp%flag(iff)<=lev_files(iff)) THEN 378 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 379 $o_bils_enthalp%name,itau_w,bils_enthalp) 360 380 ENDIF 361 381 … … 2021 2041 2022 2042 IF (o_dtec%flag(iff)<=lev_files(iff)) THEN 2023 zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev) 2043 zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys 2024 2044 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2025 2045 $o_dtec%name,itau_w,zx_tmp_fi3d) -
LMDZ5/trunk/libf/phylmd/physiq.F
r1742 r1753 722 722 723 723 REAL bils(klon) ! bilan de chaleur au sol 724 724 725 REAL wfbilo(klon,nbsrf) ! bilan d'eau, pour chaque 725 726 C ! type de sous-surface et pondere par la fraction … … 751 752 SAVE lmt_pas ! frequence de mise a jour 752 753 c$OMP THREADPRIVATE(lmt_pas) 753 real zmasse(klon, llm) 754 real zmasse(klon, llm),exner(klon, llm) 754 755 C (column-density of mass of air in a cell, in kg m-2) 755 756 real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 … … 3748 3749 c Accumuler les variables a stocker dans les fichiers histoire: 3749 3750 c 3750 c+jld ec_conser 3751 DO k = 1, klev 3752 DO i = 1, klon 3753 ZRCPD = RCPD*(1.0+RVTMP2*q_seri(i,k)) 3754 d_t_ec(i,k)=0.5/ZRCPD 3755 $ *(u(i,k)**2+v(i,k)**2-u_seri(i,k)**2-v_seri(i,k)**2) 3756 ENDDO 3757 ENDDO 3758 3759 DO k = 1, klev 3760 DO i = 1, klon 3761 t_seri(i,k)=t_seri(i,k)+d_t_ec(i,k) 3762 d_t_ec(i,k) = d_t_ec(i,k)/dtime 3763 END DO 3764 END DO 3765 c-jld ec_conser 3751 3752 !================================================================ 3753 ! Conversion of kinetic and potential energy into heat, for 3754 ! parameterisation of subgrid-scale motions 3755 !================================================================ 3756 3757 d_t_ec(:,:)=0. 3758 forall (k=1: llm) exner(:, k) = (pplay(:, k)/paprs(:,1))**RKAPPA 3759 CALL ener_conserv(klon,klev,pdtphys,u,v,t,qx(:,:,ivap), 3760 s u_seri,v_seri,t_seri,q_seri, 3761 s zmasse,exner,d_t_ec) 3762 t_seri(:,:)=t_seri(:,:)+d_t_ec(:,:) 3763 3766 3764 cIM 3767 3765 IF (ip_ebil_phy.ge.1) THEN … … 3833 3831 END IF 3834 3832 3835 c============================================================= 3833 3836 3834 c 3837 3835 c Convertir les incrementations en tendances
Note: See TracChangeset
for help on using the changeset viewer.