Changeset 3616 for LMDZ6/branches/IPSLCM6.0.15
- Timestamp:
- Dec 16, 2019, 2:10:03 PM (5 years ago)
- Location:
- LMDZ6/branches/IPSLCM6.0.15
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/IPSLCM6.0.15/DefLists/field_def_lmdz.xml
r3554 r3616 49 49 <field id="wind10max" long_name="10m wind speed max" unit="m/s" /> 50 50 <field id="sfcWindmax" field_ref="wind10m" operation="maximum" /> 51 <field id="wind100m" long_name="100-m wind speed" unit="m/s" /> 51 52 <field id="sicf" long_name="Sea-ice fraction" unit="-" /> 52 53 <field id="q2m" long_name="Specific humidity 2m" unit="kg/kg" /> -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_ctrlout_mod.F90
r3487 r3616 279 279 TYPE(ctrl_out), SAVE :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11, 11/), & 280 280 'wind10m', '10-m wind speed', 'm/s', (/ ('', i=1, 10) /)) 281 TYPE(ctrl_out), SAVE :: o_wind100m = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 282 'wind100m', '100-m wind speed', 'm/s', (/ ('', i=1, 10) /)) 281 283 TYPE(ctrl_out), SAVE :: o_wind10max = ctrl_out((/ 10, 1, 10, 10, 10, 10, 11, 11, 11, 11/), & 282 284 'wind10max', '10m wind speed max', 'm/s', & -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_output_write_mod.F90
r3483 r3616 39 39 o_t2m_min_mon, o_t2m_max_mon, & 40 40 o_q2m, o_ustar, o_u10m, o_v10m, & 41 o_wind10m, o_wind10max, o_ gusts, o_sicf, &41 o_wind10m, o_wind10max, o_wind100m, o_gusts, o_sicf, & 42 42 o_psol, o_mass, o_qsurf, o_qsol, & 43 43 o_precip, o_rain_fall, o_rain_con, o_ndayrain, o_plul, o_pluc, o_plun, & … … 367 367 USE print_control_mod, ONLY: prt_level,lunout 368 368 369 370 369 #ifdef CPP_XIOS 371 370 ! ug Pour les sorties XIOS … … 379 378 #endif 380 379 USE tracinca_mod, ONLY: config_inca 380 381 USE vertical_layers_mod, ONLY: presnivs 381 382 382 383 IMPLICIT NONE … … 421 422 REAL, DIMENSION(klev,2) :: Ahyb_mid_bounds, Bhyb_mid_bounds 422 423 INTEGER :: ilev 424 INTEGER, SAVE :: kmax_100m 425 !$OMP THREADPRIVATE(kmax_100m) 423 426 #ifndef CPP_XIOS 424 427 REAL :: missing_val … … 436 439 LOGICAL, PARAMETER :: debug_strataer=.FALSE. 437 440 #endif 441 REAL,DIMENSION(klon,klev) :: z, dz 442 REAL,DIMENSION(klon) :: zrho, zt 438 443 439 444 ! On calcul le nouveau tau: … … 446 451 ELSE 447 452 iinitend = 1 453 ENDIF 454 455 IF (.NOT.vars_defined) THEN 456 kmax_100m=1 457 DO k=1, klev-1 458 IF (presnivs(k).GT.0.97*101325.) kmax_100m = k !--finding out max level for 100 m with a good margin 459 ENDDO 448 460 ENDIF 449 461 … … 678 690 679 691 CALL histwrite_phy(o_gusts, gustiness) 692 693 IF (vars_defined) THEN 694 DO k = 1, kmax_100m !--we could stop much lower 695 zrho(:) = pplay(:,k)/t_seri(:,k)/RD ! air density in kg/m3 696 dz(:,k) = (paprs(:,k)-paprs(:,k+1))/zrho(:)/RG ! layer thickness in m 697 IF (k==1) THEN 698 z(:,1) = (paprs(:,1)-pplay(:,1))/zrho(:)/RG ! altitude middle of first layer in m 699 zt(:) = dz(:,1) ! altitude top of first layer in m 700 ELSE 701 z(:,k) = zt(:) + (paprs(:,k)-pplay(:,k))/zrho(:)/RG ! altitude middle of layer k in m 702 zt(:) = zt(:) + dz(:,k) ! altitude top of layer k in m 703 ENDIF 704 ENDDO 705 zx_tmp_fi2d(:)=missing_val 706 DO k=1, kmax_100m-1 !--we could stop much lower 707 DO i=1,klon 708 IF (z(i,k).LT.100..AND.z(i,k+1).GE.100.) THEN 709 zx_tmp_fi2d(i)=SQRT( (u_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(u_seri(i,k+1)-u_seri(i,k)))**2.0 + & 710 (v_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(v_seri(i,k+1)-v_seri(i,k)))**2.0 ) 711 ENDIF 712 ENDDO 713 ENDDO 714 ENDIF 715 CALL histwrite_phy(o_wind100m, zx_tmp_fi2d) 680 716 681 717 IF (vars_defined) THEN
Note: See TracChangeset
for help on using the changeset viewer.