Changeset 2538 for LMDZ5/trunk
- Timestamp:
- Jun 3, 2016, 4:12:16 PM (9 years ago)
- Location:
- LMDZ5/trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/DefLists/field_def_lmdz.xml
r2519 r2538 379 379 <field id="z0h_oce" long_name="roughness length, enthalpy oce" unit="m" /> 380 380 <field id="z0h_sic" long_name="roughness length, enthalpy sic" unit="m" /> 381 <field id="sens_rain_oce" long_name="Sensible heat flux associated withliquid prec. over ocean" unit="W/m2" /> 382 <field id="sens_rain_sic" long_name="Sensible heat flux associated with liquid prec. over seaice" unit="W/m2" /> 383 <field id="sens_snow_oce" long_name="Sensible heat flux associated with solid prec. over ocean" unit="W/m2" /> 384 <field id="sens_snow_sic" long_name="Sensible heat flux associated with solid prec. over seaice" unit="W/m2" /> 385 <field id="lat_rain_oce" long_name="Latent heat flux associated with liquid prec. over ocean" unit="W/m2" /> 386 <field id="lat_rain_sic" long_name="Latent heat flux associated with liquid prec. over seaice" unit="W/m2" /> 387 <field id="lat_snow_oce" long_name="Latent heat flux associated with solid prec. over ocean" unit="W/m2" /> 388 <field id="lat_snow_sic" long_name="Latent heat flux associated with solid prec. over seaice" unit="W/m2" /> 381 389 <field id="alb1" long_name="Surface VIS albedo" unit="-" /> 382 390 <field id="alb2" long_name="Surface Near IR albedo" unit="-" /> -
LMDZ5/trunk/libf/phylmd/calcul_fluxs_mod.F90
-
Property
svn:keywords
changed from
Author Date Id Revision
toId
r2254 r2538 1 ! 2 ! $Id$ 1 3 ! 2 4 MODULE calcul_fluxs_mod … … 9 11 radsol, dif_grnd, t1lay, q1lay, u1lay, v1lay, gustiness, & 10 12 fqsat, petAcoef, peqAcoef, petBcoef, peqBcoef, & 11 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 13 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 14 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol) 15 12 16 13 17 USE dimphy, ONLY : klon … … 49 53 ! dflux_s derivee du flux de chaleur sensible / Ts 50 54 ! dflux_l derivee du flux de chaleur latente / Ts 51 ! 55 ! sens_prec_liq flux sensible lié aux echanges de precipitations liquides 56 ! sens_prec_sol precipitations solides 57 ! lat_prec_liq flux latent lié aux echanges de precipitations liquides 58 ! lat_prec_sol precipitations solides 52 59 53 60 INCLUDE "YOETHF.h" … … 77 84 REAL, DIMENSION(klon), INTENT(OUT) :: tsurf_new, evap, fluxsens, fluxlat 78 85 REAL, DIMENSION(klon), INTENT(OUT) :: dflux_s, dflux_l 86 REAL, DIMENSION(klon), OPTIONAL :: sens_prec_liq, sens_prec_sol 87 REAL, DIMENSION(klon), OPTIONAL :: lat_prec_liq, lat_prec_sol 79 88 80 89 ! Variables locales … … 130 139 dflux_s = 0. 131 140 dflux_l = 0. 141 if (PRESENT(sens_prec_liq)) sens_prec_liq = 0. 142 if (PRESENT(sens_prec_sol)) sens_prec_sol = 0. 143 if (PRESENT(lat_prec_liq)) lat_prec_liq = 0. 144 if (PRESENT(lat_prec_sol)) lat_prec_sol = 0. 132 145 ! 133 146 ! zx_qs = qsat en kg/kg … … 243 256 !!$ & run_off(i) = run_off(i) + max(qsol(i) - max_eau_sol, 0.0) 244 257 !!$ qsol(i) = min(qsol(i), max_eau_sol) 258 ! 259 ! calcul de l'enthalpie des precipitations liquides et solides 260 ! 261 ! if (PRESENT(enth_prec_liq)) & 262 ! enth_prec_liq(i) = rcw * (t1lay(i) - tsurf(i)) * & 263 ! precip_rain(i) 264 ! if (PRESENT(enth_prec_sol)) & 265 ! enth_prec_sol(i) = rcs * (t1lay(i) - tsurf(i)) * & 266 ! precip_snow(i) 267 ! On calcule par rapport a T=0 268 if (PRESENT(sens_prec_liq)) & 269 sens_prec_liq(i) = rcw * (t1lay(i) - RTT) * & 270 precip_rain(i) 271 if (PRESENT(sens_prec_sol)) & 272 sens_prec_sol(i) = rcs * (t1lay(i) - RTT) * & 273 precip_snow(i) 274 if (PRESENT(lat_prec_liq)) & 275 lat_prec_liq(i) = precip_rain(i) * (RLVTT - RLVTT) 276 if (PRESENT(lat_prec_sol)) & 277 lat_prec_sol(i) = precip_snow(i) * (RLSTT - RLVTT) 245 278 ENDDO 279 280 281 ! if (PRESENT(sens_prec_liq)) & 282 ! WRITE(*,*)' calculs_fluxs sens_prec_liq (min, max)', & 283 ! MINVAL(sens_prec_liq(1:knon)), MAXVAL(sens_prec_liq(1:knon)) 284 ! if (PRESENT(sens_prec_sol)) & 285 ! WRITE(*,*)' calculs_fluxs sens_prec_sol (min, max)', & 286 ! MINVAL(sens_prec_sol(1:knon)), MAXVAL(sens_prec_sol(1:knon)) 287 246 288 ! 247 289 !**************************************************************************************** -
Property
svn:keywords
changed from
-
LMDZ5/trunk/libf/phylmd/cpl_mod.F90
r2429 r2538 52 52 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_windsp 53 53 !$OMP THREADPRIVATE(cpl_windsp) 54 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_sens_rain, cpl_sens_snow 55 !$OMP THREADPRIVATE(cpl_sens_rain, cpl_sens_snow) 54 56 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_taumod 55 57 !$OMP THREADPRIVATE(cpl_taumod) … … 90 92 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_windsp2D 91 93 !$OMP THREADPRIVATE(cpl_windsp2D) 94 REAL, ALLOCATABLE, DIMENSION(:,:,:), SAVE :: cpl_sens_rain2D, cpl_sens_snow2D 95 !$OMP THREADPRIVATE(cpl_sens_rain2D, cpl_sens_snow2D) 92 96 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: cpl_atm_co22D 93 97 !$OMP THREADPRIVATE(cpl_atm_co22D) … … 168 172 ALLOCATE(cpl_windsp(klon,2), stat = error) 169 173 sum_error = sum_error + error 170 ALLOCATE(cpl_taumod(klon,2), stat = error) 174 ALLOCATE(cpl_sens_rain(klon,2), stat = error) 175 sum_error = sum_error + error 176 ALLOCATE(cpl_sens_snow(klon,2), stat = error) 171 177 sum_error = sum_error + error 172 178 ALLOCATE(cpl_rriv2D(nbp_lon,jj_nb), stat=error) … … 531 537 SUBROUTINE cpl_send_ocean_fields(itime, knon, knindex, & 532 538 swdown, lwdown, fluxlat, fluxsens, & 533 precip_rain, precip_snow, evap, tsurf, fder, albsol, taux, tauy, windsp) 539 precip_rain, precip_snow, evap, tsurf, fder, albsol, taux, tauy, windsp,& 540 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol) 534 541 ! 535 542 ! This subroutine cumulates some fields for each time-step during a coupling … … 552 559 REAL, DIMENSION(klon), INTENT(IN) :: evap, tsurf, fder, albsol 553 560 REAL, DIMENSION(klon), INTENT(IN) :: taux, tauy, windsp 561 REAL, DIMENSION(klon), INTENT(IN) :: sens_prec_liq, sens_prec_sol 562 REAL, DIMENSION(klon), INTENT(IN) :: lat_prec_liq, lat_prec_sol 554 563 555 564 ! Local variables … … 583 592 cpl_tauy(1:knon,cpl_index) = 0.0 584 593 cpl_windsp(1:knon,cpl_index) = 0.0 594 cpl_sens_rain(1:knon,cpl_index) = 0.0 595 cpl_sens_snow(1:knon,cpl_index) = 0.0 585 596 cpl_taumod(1:knon,cpl_index) = 0.0 586 597 IF (carbon_cycle_cpl) cpl_atm_co2(1:knon,cpl_index) = 0.0 … … 614 625 cpl_windsp(ig,cpl_index) = cpl_windsp(ig,cpl_index) + & 615 626 windsp(ig) / REAL(nexca) 627 cpl_sens_rain(ig,cpl_index) = cpl_sens_rain(ig,cpl_index) + & 628 sens_prec_liq(ig) / REAL(nexca) 629 cpl_sens_snow(ig,cpl_index) = cpl_sens_snow(ig,cpl_index) + & 630 sens_prec_sol(ig) / REAL(nexca) 616 631 cpl_taumod(ig,cpl_index) = cpl_taumod(ig,cpl_index) + & 617 632 SQRT ( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) / REAL (nexca) … … 654 669 sum_error = sum_error + error 655 670 ALLOCATE(cpl_windsp2D(nbp_lon,jj_nb), stat=error) 671 sum_error = sum_error + error 672 ALLOCATE(cpl_sens_rain2D(nbp_lon,jj_nb,2), stat=error) 673 sum_error = sum_error + error 674 ALLOCATE(cpl_sens_snow2D(nbp_lon,jj_nb,2), stat=error) 656 675 sum_error = sum_error + error 657 676 ALLOCATE(cpl_taumod2D(nbp_lon,jj_nb,2), stat=error) … … 706 725 knon, knindex) 707 726 727 CALL gath2cpl(cpl_sens_rain(:,cpl_index), cpl_sens_rain2D(:,:,cpl_index), & 728 knon, knindex) 729 730 CALL gath2cpl(cpl_sens_snow(:,cpl_index), cpl_sens_snow2D(:,:,cpl_index), & 731 knon, knindex) 732 708 733 CALL gath2cpl(cpl_taumod(:,cpl_index), cpl_taumod2D(:,:,cpl_index), & 709 734 knon, knindex) … … 722 747 pctsrf, lafin, rlon, rlat, & 723 748 swdown, lwdown, fluxlat, fluxsens, & 724 precip_rain, precip_snow, evap, tsurf, fder, albsol, taux, tauy) 749 precip_rain, precip_snow, evap, tsurf, fder, albsol, taux, tauy,& 750 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol) 725 751 ! 726 752 ! This subroutine cumulates some fields for each time-step during a coupling … … 746 772 REAL, DIMENSION(klon), INTENT(IN) :: albsol, taux, tauy 747 773 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf 774 REAL, DIMENSION(klon), INTENT(IN) :: sens_prec_liq, sens_prec_sol 775 REAL, DIMENSION(klon), INTENT(IN) :: lat_prec_liq, lat_prec_sol 748 776 LOGICAL, INTENT(IN) :: lafin 749 777 … … 778 806 cpl_taux(1:knon,cpl_index) = 0.0 779 807 cpl_tauy(1:knon,cpl_index) = 0.0 808 cpl_sens_rain(1:knon,cpl_index) = 0.0 809 cpl_sens_snow(1:knon,cpl_index) = 0.0 780 810 cpl_taumod(1:knon,cpl_index) = 0.0 781 811 ENDIF … … 806 836 cpl_tauy(ig,cpl_index) = cpl_tauy(ig,cpl_index) + & 807 837 tauy(ig) / REAL(nexca) 838 cpl_sens_rain(ig,cpl_index) = cpl_sens_rain(ig,cpl_index) + & 839 sens_prec_liq(ig) / REAL(nexca) 840 cpl_sens_snow(ig,cpl_index) = cpl_sens_snow(ig,cpl_index) + & 841 sens_prec_sol(ig) / REAL(nexca) 808 842 cpl_taumod(ig,cpl_index) = cpl_taumod(ig,cpl_index) + & 809 843 SQRT ( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) / REAL(nexca) … … 839 873 sum_error = sum_error + error 840 874 ALLOCATE(cpl_windsp2D(nbp_lon,jj_nb), stat=error) 875 sum_error = sum_error + error 876 ALLOCATE(cpl_sens_rain2D(nbp_lon,jj_nb,2), stat=error) 877 sum_error = sum_error + error 878 ALLOCATE(cpl_sens_snow2D(nbp_lon,jj_nb,2), stat=error) 841 879 sum_error = sum_error + error 842 880 ALLOCATE(cpl_taumod2D(nbp_lon,jj_nb,2), stat=error) … … 889 927 890 928 CALL gath2cpl(cpl_tauy(:,cpl_index), cpl_tauy2D(:,:,cpl_index), & 929 knon, knindex) 930 931 CALL gath2cpl(cpl_sens_rain(:,cpl_index), cpl_sens_rain2D(:,:,cpl_index), & 932 knon, knindex) 933 934 CALL gath2cpl(cpl_sens_snow(:,cpl_index), cpl_sens_snow2D(:,:,cpl_index), & 891 935 knon, knindex) 892 936 … … 1078 1122 tab_flds(:,:,ids_nsfice) = cpl_nsol2D(:,:,2) 1079 1123 tab_flds(:,:,ids_dflxdt) = cpl_fder2D(:,:,2) 1124 tab_flds(:,:,ids_qraioc) = cpl_sens_rain2D(:,:,1) 1125 tab_flds(:,:,ids_qsnooc) = cpl_sens_snow2D(:,:,1) 1126 tab_flds(:,:,ids_qraiic) = cpl_sens_rain2D(:,:,2) 1127 tab_flds(:,:,ids_qsnoic) = cpl_sens_snow2D(:,:,2) 1080 1128 1081 1129 IF (version_ocean=='nemo') THEN … … 1279 1327 DEALLOCATE(cpl_taux2D, cpl_tauy2D, cpl_windsp2D, cpl_taumod2D, stat=error ) 1280 1328 sum_error = sum_error + error 1329 DEALLOCATE(cpl_sens_rain2D, cpl_sens_snow2D, stat=error) 1330 sum_error = sum_error + error 1331 1281 1332 1282 1333 IF (carbon_cycle_cpl) THEN -
LMDZ5/trunk/libf/phylmd/oasis.F90
r2429 r2538 55 55 INTEGER, PARAMETER :: ids_atmco2 = 24 56 56 INTEGER, PARAMETER :: ids_taumod = 25 57 INTEGER, PARAMETER :: maxsend = 25 ! Maximum number of fields to send 57 INTEGER, PARAMETER :: ids_qraioc = 26 58 INTEGER, PARAMETER :: ids_qsnooc = 27 59 INTEGER, PARAMETER :: ids_qraiic = 28 60 INTEGER, PARAMETER :: ids_qsnoic = 29 61 INTEGER, PARAMETER :: maxsend = 29 ! Maximum number of fields to send 58 62 59 63 ! Id for fields received from ocean … … 177 181 infosend(ids_atmco2)%action = .TRUE. ; infosend(ids_atmco2)%name = 'COATMCO2' 178 182 ENDIF 183 infosend(ids_qraioc)%action = .TRUE. ; infosend(ids_qraioc)%name = 'COQRAIOC' 184 infosend(ids_qsnooc)%action = .TRUE. ; infosend(ids_qsnooc)%name = 'COQSNOOC' 185 infosend(ids_qraiic)%action = .TRUE. ; infosend(ids_qraiic)%name = 'COQRAIIC' 186 infosend(ids_qsnoic)%action = .TRUE. ; infosend(ids_qsnoic)%name = 'COQSNOIC' 179 187 180 188 ELSE IF (version_ocean=='opa8') THEN -
LMDZ5/trunk/libf/phylmd/ocean_cpl_mod.F90
-
Property
svn:keywords
changed from
Author Date Id Revision
toId
r2254 r2538 1 ! 2 ! $Id$ 1 3 ! 2 4 MODULE ocean_cpl_mod … … 10 12 11 13 PUBLIC :: ocean_cpl_init, ocean_cpl_noice, ocean_cpl_ice 14 12 15 13 16 !**************************************************************************************** … … 63 66 USE calcul_fluxs_mod 64 67 USE indice_sol_mod 68 USE phys_output_var_mod, ONLY : sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o 69 USE cpl_mod, ONLY : gath2cpl 65 70 66 71 INCLUDE "YOMCST.h" … … 99 104 REAL, DIMENSION(klon), INTENT(OUT) :: tsurf_new 100 105 REAL, DIMENSION(klon), INTENT(OUT) :: dflux_s, dflux_l 106 101 107 102 108 ! Local variables 103 109 !**************************************************************************************** 104 INTEGER :: i 110 INTEGER :: i, j 105 111 INTEGER, DIMENSION(1) :: iloc 106 112 REAL, DIMENSION(klon) :: cal, beta, dif_grnd … … 110 116 REAL, DIMENSION(klon) :: u1_lay, v1_lay 111 117 LOGICAL :: check=.FALSE. 118 REAL, DIMENSION(klon) :: sens_prec_liq, sens_prec_sol 119 REAL, DIMENSION(klon) :: lat_prec_liq, lat_prec_sol 112 120 113 121 ! End definitions … … 130 138 dif_grnd = 0. 131 139 agesno(:) = 0. 140 sens_prec_liq = 0.; sens_prec_sol = 0.; lat_prec_liq = 0.; lat_prec_sol = 0. 141 132 142 133 143 DO i = 1, knon … … 141 151 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 142 152 f_qsat_oce,AcoefH, AcoefQ, BcoefH, BcoefQ, & 143 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 153 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 154 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol) 155 do j = 1, knon 156 i = knindex(j) 157 sens_prec_liq_o(i,1) = sens_prec_liq(j) 158 sens_prec_sol_o(i,1) = sens_prec_sol(j) 159 lat_prec_liq_o(i,1) = lat_prec_liq(j) 160 lat_prec_sol_o(i,1) = lat_prec_sol(j) 161 enddo 162 163 144 164 145 165 ! - Flux calculation at first modele level for U and V … … 171 191 CALL cpl_send_ocean_fields(itime, knon, knindex, & 172 192 swnet, lwnet, fluxlat, fluxsens, & 173 precip_rain, precip_snow, evap, tsurf_new, fder_new, alb1, flux_u1, flux_v1, windsp) 193 precip_rain, precip_snow, evap, tsurf_new, fder_new, alb1, flux_u1, flux_v1, windsp,& 194 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol) 174 195 175 196 … … 199 220 USE calcul_fluxs_mod 200 221 USE indice_sol_mod 222 USE phys_output_var_mod, ONLY : sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o 201 223 202 224 INCLUDE "YOMCST.h" … … 237 259 REAL, DIMENSION(klon), INTENT(OUT) :: tsurf_new 238 260 REAL, DIMENSION(klon), INTENT(OUT) :: dflux_s, dflux_l 261 239 262 240 263 ! Local variables 241 264 !**************************************************************************************** 242 INTEGER :: i 265 INTEGER :: i, j 243 266 INTEGER, DIMENSION(1) :: iloc 244 267 LOGICAL :: check=.FALSE. … … 249 272 REAL, DIMENSION(klon) :: u0, v0 250 273 REAL, DIMENSION(klon) :: u1_lay, v1_lay 274 REAL, DIMENSION(klon) :: sens_prec_liq, sens_prec_sol 275 REAL, DIMENSION(klon) :: lat_prec_liq, lat_prec_sol 251 276 252 277 ! End definitions … … 254 279 255 280 IF (check) WRITE(*,*)'Entering surface_seaice, knon=',knon 281 282 sens_prec_liq = 0.; sens_prec_sol = 0.; lat_prec_liq = 0.; lat_prec_sol = 0. 256 283 257 284 !**************************************************************************************** … … 285 312 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 286 313 f_qsat_oce,AcoefH, AcoefQ, BcoefH, BcoefQ, & 287 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 314 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 315 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol) 316 do j = 1, knon 317 i = knindex(j) 318 sens_prec_liq_o(i,2) = sens_prec_liq(j) 319 sens_prec_sol_o(i,2) = sens_prec_sol(j) 320 lat_prec_liq_o(i,2) = lat_prec_liq(j) 321 lat_prec_sol_o(i,2) = lat_prec_sol(j) 322 enddo 288 323 289 324 … … 317 352 pctsrf, lafin, rlon, rlat, & 318 353 swnet, lwnet, fluxlat, fluxsens, & 319 precip_rain, precip_snow, evap, tsurf_new, fder_new, alb1, flux_u1, flux_v1) 354 precip_rain, precip_snow, evap, tsurf_new, fder_new, alb1, flux_u1, flux_v1,& 355 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol) 356 320 357 321 358 -
Property
svn:keywords
changed from
-
LMDZ5/trunk/libf/phylmd/ocean_forced_mod.F90
-
Property
svn:keywords
changed from
Author Date Id Revision
toId
r2254 r2538 1 ! 2 ! $Id$ 1 3 ! 2 4 MODULE ocean_forced_mod … … 32 34 USE mod_grid_phy_lmdz 33 35 USE indice_sol_mod 36 USE phys_output_var_mod, ONLY : sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o 37 34 38 INCLUDE "YOMCST.h" 35 39 INCLUDE "clesphys.h" … … 66 70 ! Local variables 67 71 !**************************************************************************************** 68 INTEGER :: i 72 INTEGER :: i, j 69 73 REAL, DIMENSION(klon) :: cal, beta, dif_grnd 70 74 REAL, DIMENSION(klon) :: alb_neig, tsurf_lim, zx_sl … … 72 76 REAL, DIMENSION(klon) :: u1_lay, v1_lay 73 77 LOGICAL :: check=.FALSE. 78 REAL, DIMENSION(klon) :: sens_prec_liq, sens_prec_sol 79 REAL, DIMENSION(klon) :: lat_prec_liq, lat_prec_sol 74 80 75 81 !**************************************************************************************** … … 103 109 alb_neig(:) = 0. 104 110 agesno(:) = 0. 111 sens_prec_liq = 0.; sens_prec_sol = 0.; lat_prec_liq = 0.; lat_prec_sol = 0. 112 105 113 ! Suppose zero surface speed 106 114 u0(:)=0.0 … … 115 123 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 116 124 f_qsat_oce,AcoefH, AcoefQ, BcoefH, BcoefQ, & 117 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 125 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 126 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol) 127 128 do j = 1, knon 129 i = knindex(j) 130 sens_prec_liq_o(i,1) = sens_prec_liq(j) 131 sens_prec_sol_o(i,1) = sens_prec_sol(j) 132 lat_prec_liq_o(i,1) = lat_prec_liq(j) 133 lat_prec_sol_o(i,1) = lat_prec_sol(j) 134 enddo 135 118 136 119 137 ! - Flux calculation at first modele level for U and V … … 148 166 USE fonte_neige_mod, ONLY : fonte_neige 149 167 USE indice_sol_mod 168 USE phys_output_var_mod, ONLY : sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o 150 169 151 170 ! INCLUDE "indicesol.h" … … 189 208 !**************************************************************************************** 190 209 LOGICAL :: check=.FALSE. 191 INTEGER :: i 210 INTEGER :: i, j 192 211 REAL :: zfra 193 212 REAL, PARAMETER :: t_grnd=271.35 … … 197 216 REAL, DIMENSION(klon) :: u0, v0 198 217 REAL, DIMENSION(klon) :: u1_lay, v1_lay 218 REAL, DIMENSION(klon) :: sens_prec_liq, sens_prec_sol 219 REAL, DIMENSION(klon) :: lat_prec_liq, lat_prec_sol 220 199 221 200 222 !**************************************************************************************** … … 208 230 ! dflux_s, dflux_l and qsurf 209 231 !**************************************************************************************** 232 210 233 tsurf_tmp(:) = tsurf_in(:) 211 234 … … 227 250 228 251 beta = 1.0 252 sens_prec_liq = 0.; sens_prec_sol = 0.; lat_prec_liq = 0.; lat_prec_sol = 0. 253 229 254 ! Suppose zero surface speed 230 255 u0(:)=0.0 … … 237 262 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 238 263 f_qsat_oce,AcoefH, AcoefQ, BcoefH, BcoefQ, & 239 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 264 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 265 sens_prec_liq, sens_prec_sol, lat_prec_liq, lat_prec_sol) 266 do j = 1, knon 267 i = knindex(j) 268 sens_prec_liq_o(i,2) = sens_prec_liq(j) 269 sens_prec_sol_o(i,2) = sens_prec_sol(j) 270 lat_prec_liq_o(i,2) = lat_prec_liq(j) 271 lat_prec_sol_o(i,2) = lat_prec_sol(j) 272 enddo 240 273 241 274 ! - Flux calculation at first modele level for U and V -
Property
svn:keywords
changed from
-
LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r2536 r2538 162 162 TYPE(ctrl_out), SAVE :: o_evap = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 /), & 163 163 'evap', 'Evaporat', 'kg/(s*m2)', (/ ('', i=1, 9) /)) 164 165 TYPE(ctrl_out), SAVE :: o_sens_prec_liq_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 /), & 166 'sens_rain_oce', 'Sensible heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i=1, 9) /)) 167 TYPE(ctrl_out), SAVE :: o_sens_prec_liq_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 /), & 168 'sens_rain_sic', 'Sensible heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i=1, 9) /)) 169 TYPE(ctrl_out), SAVE :: o_sens_prec_sol_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 /), & 170 'sens_snow_oce', 'Sensible heat flux of solid prec. over ocean', 'W/m2', (/ ('', i=1, 9) /)) 171 TYPE(ctrl_out), SAVE :: o_sens_prec_sol_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 /), & 172 'sens_snow_sic', 'Sensible heat flux of solid prec. over seaice', 'W/m2', (/ ('', i=1, 9) /)) 173 TYPE(ctrl_out), SAVE :: o_lat_prec_liq_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 /), & 174 'lat_rain_oce', 'Latent heat flux of liquid prec. over ocean', 'W/m2', (/ ('', i=1, 9) /)) 175 TYPE(ctrl_out), SAVE :: o_lat_prec_liq_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 /), & 176 'lat_rain_sic', 'Latent heat flux of liquid prec. over seaice', 'W/m2', (/ ('', i=1, 9) /)) 177 TYPE(ctrl_out), SAVE :: o_lat_prec_sol_oce = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 /), & 178 'lat_snow_oce', 'Latent heat flux of solid prec. over ocean', 'W/m2', (/ ('', i=1, 9) /)) 179 TYPE(ctrl_out), SAVE :: o_lat_prec_sol_sic = ctrl_out((/ 5, 5, 10, 10, 5, 10, 11, 11, 11 /), & 180 'lat_snow_sic', 'Latent heat flux of solid prec. over seaice', 'W/m2', (/ ('', i=1, 9) /)) 181 164 182 165 183 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_evap_srf = (/ & -
LMDZ5/trunk/libf/phylmd/phys_output_var_mod.F90
r2529 r2538 76 76 END TYPE ctrl_out 77 77 78 REAL, SAVE, ALLOCATABLE :: sens_prec_liq_o(:,:), sens_prec_sol_o(:,:) 79 REAL, SAVE, ALLOCATABLE :: lat_prec_liq_o(:,:), lat_prec_sol_o(:,:) 80 !$OMP THREADPRIVATE(sens_prec_liq_o, sens_prec_sol_o,lat_prec_liq_o,lat_prec_sol_o) 81 78 82 CONTAINS 79 83 … … 90 94 allocate(snow_o(klon), zfra_o(klon)) 91 95 allocate(itau_con(klon)) 96 allocate(sens_prec_liq_o(klon,2)) 97 allocate(sens_prec_sol_o(klon,2)) 98 allocate(lat_prec_liq_o(klon,2)) 99 allocate(lat_prec_sol_o(klon,2)) 100 sens_prec_liq_o = 0.0 ; sens_prec_sol_o = 0.0 101 lat_prec_liq_o = 0.0 ; lat_prec_sol_o = 0.0 102 92 103 allocate (bils_ec(klon),bils_ech(klon),bils_tke(klon),bils_diss(klon),bils_kinetic(klon),bils_enthalp(klon),bils_latent(klon)) 93 104 -
LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90
r2536 r2538 163 163 o_dtr_sat, o_dtr_uscav, o_trac_cum, o_du_gwd_rando, o_dv_gwd_rando, & 164 164 o_ustr_gwd_hines,o_vstr_gwd_hines,o_ustr_gwd_rando,o_vstr_gwd_rando, & 165 o_ustr_gwd_front,o_vstr_gwd_front 165 o_ustr_gwd_front,o_vstr_gwd_front, & 166 o_sens_prec_liq_oce, o_sens_prec_liq_sic, & 167 o_sens_prec_sol_oce, o_sens_prec_sol_sic, & 168 o_lat_prec_liq_oce, o_lat_prec_liq_sic, & 169 o_lat_prec_sol_oce, o_lat_prec_sol_sic 166 170 167 171 USE phys_state_var_mod, only: pctsrf, paire_ter, rain_fall, snow_fall, & … … 257 261 itau_con, nfiles, clef_files, nid_files, & 258 262 zustr_gwd_hines, zvstr_gwd_hines,zustr_gwd_rando, zvstr_gwd_rando, & 259 zustr_gwd_front, zvstr_gwd_front 263 zustr_gwd_front, zvstr_gwd_front, & 264 sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o 265 266 260 267 USE ocean_slab_mod, only: tslab, slab_bils, slab_bilg, tice, seaice 261 268 USE pbl_surface_mod, only: snow … … 621 628 622 629 ENDDO 630 631 IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_liq_o(1 : klon, 1) 632 CALL histwrite_phy(o_sens_prec_liq_oce, zx_tmp_fi2d) 633 IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_liq_o(1 : klon, 2) 634 CALL histwrite_phy(o_sens_prec_liq_sic, zx_tmp_fi2d) 635 IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_sol_o(1 : klon, 1) 636 CALL histwrite_phy(o_sens_prec_sol_oce, zx_tmp_fi2d) 637 IF (vars_defined) zx_tmp_fi2d(1 : klon) = sens_prec_sol_o(1 : klon, 2) 638 CALL histwrite_phy(o_sens_prec_sol_sic, zx_tmp_fi2d) 639 640 IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_liq_o(1 : klon, 1) 641 CALL histwrite_phy(o_lat_prec_liq_oce, zx_tmp_fi2d) 642 IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_liq_o(1 : klon, 2) 643 CALL histwrite_phy(o_lat_prec_liq_sic, zx_tmp_fi2d) 644 IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_sol_o(1 : klon, 1) 645 CALL histwrite_phy(o_lat_prec_sol_oce, zx_tmp_fi2d) 646 IF (vars_defined) zx_tmp_fi2d(1 : klon) = lat_prec_sol_o(1 : klon, 2) 647 CALL histwrite_phy(o_lat_prec_sol_sic, zx_tmp_fi2d) 648 623 649 DO nsrf=1,nbsrf+1 624 650 CALL histwrite_phy(o_wstar(nsrf), wstar(1 : klon, nsrf)) -
LMDZ5/trunk/libf/phylmd/surf_ocean_mod.F90
r2455 r2538 1 ! 2 ! $Id$ 1 3 ! 2 4 MODULE surf_ocean_mod -
LMDZ5/trunk/libf/phylmd/surface_data.F90
-
Property
svn:keywords
changed from
Author Date Id Revision
toId
r2209 r2538 1 1 ! 2 ! $ Header$2 ! $Id$ 3 3 ! 4 4 MODULE surface_data -
Property
svn:keywords
changed from
Note: See TracChangeset
for help on using the changeset viewer.