Changeset 1921 for LMDZ5/branches/testing/libf
- Timestamp:
- Dec 20, 2013, 10:04:40 AM (11 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 1912-1920
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phy1d/1DUTILS.h
r1910 r1921 105 105 ! initial profile from GCSS file 106 106 ! LS convergence imposed from GCSS file 107 ! = 50 ==> forcing_fire = .true. 107 108 ! = 59 ==> forcing_sandu = .true. 108 109 ! initial profiles from sanduref file: see prof.inp.001 -
LMDZ5/branches/testing/libf/phy1d/lmdz1d.F
r1910 r1921 266 266 ! initial profile from GCSS file 267 267 ! LS convergence imposed from GCSS file 268 !forcing_type = 50 ==> forcing_fire = .true. 269 ! forcing from fire.nc 268 270 !forcing_type = 59 ==> forcing_sandu = .true. 269 271 ! initial profiles from sanduref file: see prof.inp.001 … … 297 299 elseif (forcing_type .eq.40) THEN 298 300 forcing_GCSSold = .true. 301 elseif (forcing_type .eq.50) THEN 302 forcing_fire = .true. 299 303 elseif (forcing_type .eq.59) THEN 300 304 forcing_sandu = .true. … … 818 822 819 823 fcoriolis=2.*sin(rpi*xlat/180.)*romega 820 if (forcing_radconv ) then824 if (forcing_radconv .or. forcing_fire) then 821 825 fcoriolis=0.0 822 826 dt_cooling=0.0 -
LMDZ5/branches/testing/libf/phylmd/calcul_STDlev.h
r1910 r1921 6 6 missing_val=nf90_fill_real 7 7 ! 8 !IM freq_moyNMC = frequences auxquelles on moyenne les champs accumules 9 !IM sur les niveaux de pression standard du NMC 10 DO n=1, nout 11 freq_moyNMC(n)=freq_outNMC(n)/freq_calNMC(n) 12 ENDDO 13 ! 14 CALL ini_undefSTD(itap,freq_outNMC) 8 CALL ini_undefSTD(itap,itapm1) 15 9 ! 16 10 !IM on interpole les champs sur les niveaux STD de pression … … 135 129 !IM on somme les valeurs toutes les freq_calNMC secondes 136 130 ! 137 CALL undefSTD(itap, freq_calNMC,read_climoz)138 ! 139 !IM on moyenne a la fin du mois ou du jour (toutes les freq_outNMC secondes)140 ! 141 CALL moy_undefSTD(itap, freq_outNMC,freq_moyNMC)131 CALL undefSTD(itap, read_climoz) 132 ! 133 !IM on moyenne a la fin du mois, du jour ou toutes les 6h 134 ! 135 CALL moy_undefSTD(itap,itapm1) 142 136 ! 143 137 CALL plevel(klon,klev,.true.,pplay,50000., & -
LMDZ5/branches/testing/libf/phylmd/calcul_divers.h
r1910 r1921 2 2 ! $Header$ 3 3 ! 4 5 ! Initialisations diverses au "debut" du mois 6 IF(debut) THEN 7 nday_rain(:)=0. 8 4 ! Initialisations diverses au tout debut 5 IF(itap.EQ.1) THEN 6 itapm1=0 9 7 ! surface terre 10 paire_ter(:)=0.11 8 DO i=1, klon 12 9 IF(pctsrf(i,is_ter).GT.0.) THEN … … 16 13 ENDIF 17 14 18 !IM Calcul une fois par jour : total_rain, nday_rain 19 IF(MOD(itap,INT(un_jour/dtime)).EQ.0) THEN 15 ! Initialisation debut de mois 16 IF(itap.EQ.itapm1+1) THEN 17 nday_rain(:)=0. 18 ! print*,'initialisation mois suivants day_rain itap',itap 19 ENDIF 20 21 ! Calcul fin de journee : total_rain, nday_rain 22 IF(MOD(itap,NINT(un_jour/dtime)).EQ.0) THEN 23 ! print*,'calcul nday_rain itap ',itap 20 24 DO i = 1, klon 21 25 total_rain(i)=rain_fall(i)+snow_fall(i) … … 23 27 ENDDO 24 28 ENDIF 29 30 ! Initialisation fin de mois 31 IF(MOD(itap-itapm1,NINT(mth_len*un_jour/dtime)).EQ.0) THEN 32 itapm1=itapm1+NINT(mth_len*un_jour/dtime) 33 ! print*,'initialisation itapm1 ',itapm1 34 ENDIF -
LMDZ5/branches/testing/libf/phylmd/conf_phys_m.F90
r1910 r1921 1336 1336 !Config Desc = freq_outNMC(2) = frequence de sortie fichiers histdayNMC 1337 1337 !Config Desc = freq_outNMC(3) = frequence de sortie fichiers histhfNMC 1338 !Config Def = 2592000., 86400., 21600. 1339 !Config Help = 1340 ! 1341 freq_outNMC_omp(1) = mth_len *86400.1342 freq_outNMC_omp(2) = 86400.1343 freq_outNMC_omp(3) = 21600.1338 !Config Def = 2592000., 86400., 21600. (1mois, 1jour, 6h) 1339 !Config Help = 1340 ! 1341 freq_outNMC_omp(1) = mth_len 1342 freq_outNMC_omp(2) = 1. 1343 freq_outNMC_omp(3) = 1./4. 1344 1344 call getin('freq_outNMC',freq_outNMC_omp) 1345 1345 ! -
LMDZ5/branches/testing/libf/phylmd/indice_sol_mod.F90
r1910 r1921 4 4 ! terre ! ocean ! glacier continental ! glace de mer 5 5 6 INTEGER, PARAMETER :: is_ave=nbsrf+1 ! glacier continental6 INTEGER, PARAMETER :: is_ave=nbsrf+1 ! valeur moyenne sur l'ensemble des surfaces 7 7 REAL, PARAMETER :: epsfra=1.0E-05 8 8 -
LMDZ5/branches/testing/libf/phylmd/ini_undefSTD.F
r1910 r1921 3 3 ! 4 4 5 SUBROUTINE ini_undefSTD(itap, 6 $ freq_outNMC) 5 SUBROUTINE ini_undefSTD(itap,itapm1) 7 6 USE dimphy 8 7 USE phys_state_var_mod ! Variables sauvegardees de la physique 8 USE phys_cal_mod, only : mth_len 9 9 IMPLICIT none 10 include "clesphys.h" 10 11 c 11 12 c==================================================================== … … 36 37 c variables Input/Output 37 38 c INTEGER nlevSTD, klevSTD, itap 38 INTEGER itap 39 INTEGER itap, itapm1 39 40 c PARAMETER(klevSTD=17) 40 41 c REAL dtime … … 44 45 INTEGER i, k, n 45 46 c PARAMETER(nout=3) !nout=1 day/nout=2 mth/nout=3 NMC 46 REAL freq_outNMC(nout) 47 c REAL freq_outNMC(nout) 48 REAL un_jour 49 PARAMETER(un_jour=86400.) 47 50 c 48 51 c variables Output … … 52 55 DO n=1, nout 53 56 c 54 c initialisation variables en debut d e la journee ou du mois57 c initialisation variables en debut du mois, de la journee ou des 6h 55 58 c 56 IF(MOD(itap,NINT(freq_outNMC(n)/dtime)).EQ.1.) THEN 59 IF(n.EQ.1.AND.itap-itapm1.EQ.1.OR. 60 &n.GT.1.AND.MOD(itap,NINT(freq_outNMC(n)/dtime)).EQ.1) THEN 61 c print*,'ini_undefSTD n itap',n,itap 57 62 DO k=1, nlevSTD 58 63 DO i=1, klon … … 78 83 ENDDO !i 79 84 ENDDO !k 80 c 81 ENDIF !MOD(itap,NINT(freq_outNMC(n)/dtime)).EQ.1. 82 c 85 ENDIF ! 83 86 ENDDO !n 84 c85 87 RETURN 86 88 END -
LMDZ5/branches/testing/libf/phylmd/moy_undefSTD.F
r1910 r1921 2 2 ! $Id$ 3 3 ! 4 SUBROUTINE moy_undefSTD(itap, freq_outNMC,freq_moyNMC)4 SUBROUTINE moy_undefSTD(itap,itapm1) 5 5 USE netcdf 6 6 USE dimphy 7 USE phys_state_var_mod ! Variables sauvegardees de la physique 7 USE phys_state_var_mod 8 USE phys_cal_mod, only : mth_len 8 9 IMPLICIT none 10 include "clesphys.h" 9 11 c 10 12 c==================================================================== … … 33 35 c INTEGER nlevSTD, klevSTD, itap 34 36 c PARAMETER(klevSTD=17) 35 INTEGER itap 37 INTEGER itap, itapm1 36 38 c 37 39 c variables locales … … 40 42 INTEGER i, k, n 41 43 c REAL dtime, freq_outNMC(nout), freq_moyNMC(nout) 42 REAL freq_outNMC(nout), freq_moyNMC(nout) 44 c REAL freq_outNMC(nout), freq_calNMC(nout) 45 REAL freq_moyNMC(nout) 43 46 c 44 47 c variables Output … … 46 49 c REAL tsumSTD(klon,klevSTD,nout) 47 50 c 51 REAL un_jour 52 PARAMETER(un_jour=86400.) 48 53 REAL missing_val 49 54 c … … 51 56 c 52 57 DO n=1, nout 58 IF(freq_outNMC(n).LT.0) THEN 59 freq_moyNMC(n)=(mth_len*un_jour)/freq_calNMC(n) 60 c print*,'moy_undefSTD n freq_out freq_moy =', 61 c $n,freq_moyNMC(n) 62 ELSE 63 freq_moyNMC(n)=freq_outNMC(n)/freq_calNMC(n) 64 ENDIF 53 65 c 54 c calcul 1 fois pa r jour66 c calcul 1 fois pas mois, 1 fois par jour ou toutes les 6h 55 67 c 56 IF(MOD(itap,NINT(freq_outNMC(n)/dtime)).EQ.0) THEN 68 IF(n.EQ.1.AND.itap.EQ.itapm1.OR. 69 $n.GT.1.AND.MOD(itap,NINT(freq_outNMC(n)/dtime)).EQ.0) THEN 70 c 71 c print*,'moy_undefSTD n itap itapm1',n,itap,itapm1 57 72 c 58 73 DO k=1, nlevSTD … … 61 76 tsumSTD(i,k,n)=tsumSTD(i,k,n)/ 62 77 $ (freq_moyNMC(n)-tnondef(i,k,n)) 63 cIM BEG64 78 usumSTD(i,k,n)=usumSTD(i,k,n)/ 65 79 $ (freq_moyNMC(n)-tnondef(i,k,n)) … … 96 110 O3daysumSTD(i,k,n)=O3daysumSTD(i,k,n)/ 97 111 $ (freq_moyNMC(n)-tnondef(i,k,n)) 98 cIM END99 112 ELSE 100 113 tsumSTD(i,k,n)=missing_val -
LMDZ5/branches/testing/libf/phylmd/pbl_surface_mod.F90
r1910 r1921 333 333 REAL, DIMENSION(klon, klev), INTENT(OUT) :: d_u ! change in u speed 334 334 REAL, DIMENSION(klon, klev), INTENT(OUT) :: d_v ! change in v speed 335 REAL, DIMENSION(klon, klev,nbsrf+1), INTENT(OUT) :: zcoefh ! coef for turbulent diffusion of T and Q, mean for each grid point 336 REAL, DIMENSION(klon, klev,nbsrf+1), INTENT(OUT) :: zcoefm ! coef for turbulent diffusion of U and V (?), mean for each grid point 335 336 REAL, INTENT(OUT):: zcoefh(:, :, :) ! (klon, klev, nbsrf + 1) 337 ! coef for turbulent diffusion of T and Q, mean for each grid point 338 339 REAL, INTENT(OUT):: zcoefm(:, :, :) ! (klon, klev, nbsrf + 1) 340 ! coef for turbulent diffusion of U and V (?), mean for each grid point 337 341 338 342 ! Output only for diagnostics -
LMDZ5/branches/testing/libf/phylmd/phys_output_ctrlout_mod.F90
r1910 r1921 500 500 501 501 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_uSTDlevs = (/ & 502 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u850', "Zonal wind 1hPa", "m/s", &503 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 504 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u700', "Zonal wind 2hPa", "m/s", &505 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 506 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u500', "Zonal wind 3hPa", "m/s", &507 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 508 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u200', "Zonal wind 4hPa", "m/s", &509 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 510 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u100', "Zonal wind 5hPa", "m/s", &511 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 512 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u50', "Zonal wind 6hPa", "m/s", &513 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 514 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u10', "Zonal wind 7hPa", "m/s", &502 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u850', "Zonal wind 850hPa", "m/s", & 503 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 504 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u700', "Zonal wind 700hPa", "m/s", & 505 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 506 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u500', "Zonal wind 500hPa", "m/s", & 507 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 508 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u200', "Zonal wind 200hPa", "m/s", & 509 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 510 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u100', "Zonal wind 100hPa", "m/s", & 511 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 512 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u50', "Zonal wind 50hPa", "m/s", & 513 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 514 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'u10', "Zonal wind 10hPa", "m/s", & 515 515 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 516 516 517 517 TYPE(ctrl_out), SAVE, DIMENSION(7) :: o_vSTDlevs = (/ & 518 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v850', "Meridional wind 1hPa", "m/s", &518 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v850', "Meridional wind 850hPa", "m/s", & 519 519 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 520 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v700', "Meridional wind 2hPa", "m/s", &520 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v700', "Meridional wind 700hPa", "m/s", & 521 521 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 522 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v500', "Meridional wind 3hPa", "m/s", &522 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v500', "Meridional wind 500hPa", "m/s", & 523 523 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 524 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v200', "Meridional wind 4hPa", "m/s", &524 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v200', "Meridional wind 200hPa", "m/s", & 525 525 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 526 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v100', "Meridional wind 5hPa", "m/s", &526 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v100', "Meridional wind 100hPa", "m/s", & 527 527 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 528 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v50', "Meridional wind 6hPa", "m/s", &528 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v50', "Meridional wind 50hPa", "m/s", & 529 529 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 530 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v10', "Meridional wind 7hPa", "m/s", &530 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'v10', "Meridional wind 10hPa", "m/s", & 531 531 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 532 532 … … 534 534 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w850', "Vertical wind 1hPa", "Pa/s", & 535 535 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 536 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w700', "Vertical wind 2hPa", "Pa/s", &537 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 538 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w500', "Vertical wind 3hPa", "Pa/s", &539 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 540 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w200', "Vertical wind 4hPa", "Pa/s", &541 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 542 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w100', "Vertical wind 5hPa", "Pa/s", &543 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 544 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w50', "Vertical wind 6hPa", "Pa/s", &545 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 546 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w10', "Vertical wind 7hPa", "Pa/s", &536 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w700', "Vertical wind 700hPa", "Pa/s", & 537 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 538 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w500', "Vertical wind 500hPa", "Pa/s", & 539 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 540 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w200', "Vertical wind 200hPa", "Pa/s", & 541 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 542 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w100', "Vertical wind 100hPa", "Pa/s", & 543 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 544 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w50', "Vertical wind 50hPa", "Pa/s", & 545 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 546 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'w10', "Vertical wind 10hPa", "Pa/s", & 547 547 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 548 548 … … 550 550 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t850', "Temperature 1hPa", "K", & 551 551 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 552 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t700', "Temperature 2hPa", "K", &553 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 554 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t500', "Temperature 3hPa", "K", &555 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 556 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t200', "Temperature 4hPa", "K", &557 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 558 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t100', "Temperature 5hPa", "K", &559 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 560 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t50', "Temperature 6hPa", "K", &561 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 562 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t10', "Temperature 7hPa", "K", &552 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t700', "Temperature 700hPa", "K", & 553 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 554 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t500', "Temperature 500hPa", "K", & 555 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 556 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t200', "Temperature 200hPa", "K", & 557 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 558 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t100', "Temperature 100hPa", "K", & 559 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 560 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t50', "Temperature 50hPa", "K", & 561 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 562 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'t10', "Temperature 10hPa", "K", & 563 563 (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 564 564 … … 566 566 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q850', "Specific humidity 1hPa", & 567 567 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 568 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q700', "Specific humidity 2hPa", &568 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q700', "Specific humidity 700hPa", & 569 569 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 570 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q500', "Specific humidity 3hPa", &570 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q500', "Specific humidity 500hPa", & 571 571 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 572 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q200', "Specific humidity 4hPa", &572 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q200', "Specific humidity 200hPa", & 573 573 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 574 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q100', "Specific humidity 5hPa", &574 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q100', "Specific humidity 100hPa", & 575 575 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 576 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q50', "Specific humidity 6hPa", &576 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q50', "Specific humidity 50hPa", & 577 577 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 578 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q10', "Specific humidity 7hPa", &578 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'q10', "Specific humidity 10hPa", & 579 579 "kg/kg", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 580 580 … … 582 582 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z850', "Geopotential height 1hPa", & 583 583 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 584 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z700', "Geopotential height 2hPa", &584 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z700', "Geopotential height 700hPa", & 585 585 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 586 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z500', "Geopotential height 3hPa", &586 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z500', "Geopotential height 500hPa", & 587 587 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 588 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z200', "Geopotential height 4hPa", &588 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z200', "Geopotential height 200hPa", & 589 589 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 590 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z100', "Geopotential height 5hPa", &590 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z100', "Geopotential height 100hPa", & 591 591 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 592 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z50', "Geopotential height 6hPa", &592 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z50', "Geopotential height 50hPa", & 593 593 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)), & 594 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z10', "Geopotential height 7hPa", &594 ctrl_out((/ 1, 7, 7, 10, 10, 10, 11, 11, 11 /),'z10', "Geopotential height 10hPa", & 595 595 "m", (/ 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)', 'inst(X)' /)) /) 596 596 -
LMDZ5/branches/testing/libf/phylmd/phys_output_mod.F90
r1910 r1921 7 7 USE aero_mod, only : naero_spc,name_aero 8 8 USE phys_output_write_mod, ONLY : phys_output_write 9 REAL, DIMENSION(nfiles),SAVE :: ecrit_files 9 10 10 11 ! Abderrahmane 12 2007 … … 44 45 USE surface_data, ONLY : ok_snow 45 46 USE phys_output_ctrlout_mod 47 USE mod_grid_phy_lmdz, only: klon_glo 46 48 47 49 #ifdef CPP_XIOS … … 105 107 CHARACTER(LEN=6) :: type_ocean 106 108 CHARACTER(LEN=3) :: ctetaSTD(nbteta) 107 REAL, DIMENSION(nfiles) :: ecrit_files108 109 INTEGER, DIMENSION(iim*jjmp1) :: ndex2d 109 110 INTEGER, DIMENSION(iim*jjmp1*klev) :: ndex3d … … 207 208 ecrit_files(5) = ecrit_LES 208 209 ecrit_files(6) = ecrit_ins 209 ecrit_files(7) = freq_outNMC(1) /86400.210 ecrit_files(8) = freq_outNMC(2) /86400.211 ecrit_files(9) = freq_outNMC(3) /86400.210 ecrit_files(7) = freq_outNMC(1) 211 ecrit_files(8) = freq_outNMC(2) 212 ecrit_files(9) = freq_outNMC(3) 212 213 213 214 !! Lectures des parametres de sorties dans physiq.def … … 248 249 ! ug Réglage du calendrier xios 249 250 !Temps julian => an, mois, jour, heure 250 CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian) 251 IF (klon_glo==1) THEN 252 CALL ymds2ju(annee_ref, 1, day_ref, hour, zjulian) 253 ELSE 254 CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian) 255 END IF 251 256 CALL ju2ymds(zjulian, x_an, x_mois, x_jour, x_heure) 252 257 CALL wxios_set_cal(dtime, calend, x_an, x_mois, x_jour, x_heure) … … 278 283 ! ...)*86400. 279 284 ecrit_files(iff)=ecrit_files(iff)*86400. 285 ELSE IF (chtimestep(iff).eq.'-1') then 286 PRINT*,'ecrit_files(',iff,') < 0 so IOIPSL work on different' 287 PRINT*,'months length' 288 ecrit_files(iff)=-1. 280 289 else 281 290 CALL convers_timesteps(chtimestep(iff),dtime,ecrit_files(iff)) … … 304 313 305 314 idayref = day_ref 306 ! CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)307 ! correction pour l heure initiale !jyg308 ! !jyg309 CALL ymds2ju(annee_ref, 1, idayref, hour, zjulian) !jyg 310 ! correction pour l heure initiale !jyg311 ! !jyg312 !!! CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) !jyg313 ! correction pour l heure initiale !jyg 314 ! !jyg 315 ! CALL ymds2ju(annee_ref, 1, idayref, hour, zjulian) !jyg 316 315 ! A noter pour 316 ! l heure initiale - dans les fichiers histoire hist* - on met comme 317 ! heure de debut soit la vraie heure (pour le 1D) soit 0h (pour le 3D) 318 ! afin d avoir une seule sortie mensuelle par mois lorsque l on tourne 319 ! par annee (IM). 320 ! 321 IF (klon_glo==1) THEN 322 CALL ymds2ju(annee_ref, 1, idayref, hour, zjulian) !jyg 323 ELSE 324 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 325 END IF 317 326 !!!!!!!!!!!!!!!!! Traitement dans le cas ou l'on veut stocker sur un domaine limite !! 318 327 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 482 491 WRITE(lunout,*)'swaero_diag=',swaero_diag 483 492 WRITE(lunout,*)'Fin phys_output_mod.F90' 493 484 494 end SUBROUTINE phys_output_open 485 495 -
LMDZ5/branches/testing/libf/phylmd/phys_output_write_mod.F90
r1910 r1921 18 18 pplay, lmax_th, aerosol_couple, & 19 19 ok_ade, ok_aie, ivap, new_aod, ok_sync, & 20 ptconv, read_climoz, clevSTD, freq_moyNMC,ptconvth, &20 ptconv, read_climoz, clevSTD, ptconvth, & 21 21 d_t, qx, d_qx, zmasse, flag_aerosol_strat) 22 22 … … 230 230 USE wxios, only: wxios_update_calendar, wxios_closedef 231 231 #endif 232 USE phys_cal_mod, only : mth_len 232 233 233 234 IMPLICIT NONE … … 269 270 REAL, PARAMETER :: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 270 271 REAL, PARAMETER :: missing_val=nf90_fill_real 272 REAL, PARAMETER :: un_jour=86400. 271 273 272 274 ! On calcul le nouveau tau: … … 1194 1196 DO i=1, klon 1195 1197 IF(tnondef(i,k,iff-6).NE.missing_val) THEN 1198 IF(freq_outNMC(iff-6).LT.0) THEN 1199 freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6) 1200 ELSE 1201 freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6) 1202 ENDIF 1196 1203 zx_tmp_fi3d(i,k) = (100.*tnondef(i,k,iff-6))/freq_moyNMC(iff-6) 1197 1204 ELSE -
LMDZ5/branches/testing/libf/phylmd/physiq.F90
r1910 r1921 493 493 REAL un_jour 494 494 PARAMETER(un_jour=86400.) 495 INTEGER itapm1 !pas de temps de la physique du(es) mois precedents 496 SAVE itapm1 !mis a jour le dernier pas de temps du mois en cours 497 !$OMP THREADPRIVATE(itapm1) 495 498 !====================================================================== 496 499 ! … … 1254 1257 !$OMP BARRIER 1255 1258 1259 freq_outNMC(1) = ecrit_files(7) 1260 freq_outNMC(2) = ecrit_files(8) 1261 freq_outNMC(3) = ecrit_files(9) 1262 WRITE(lunout,*)'OK freq_outNMC(1)=',freq_outNMC(1) 1263 WRITE(lunout,*)'OK freq_outNMC(2)=',freq_outNMC(2) 1264 WRITE(lunout,*)'OK freq_outNMC(3)=',freq_outNMC(3) 1256 1265 1257 1266 include "ini_histday_seri.h" … … 1730 1739 zxtsol, zxfluxlat, zt2m, qsat2m, & 1731 1740 d_t_vdf, d_q_vdf, d_u_vdf, d_v_vdf, d_t_diss, & 1732 coefh, coefm, slab_wfbils, & 1741 coefh(1:klon,1:klev,1:nbsrf+1), coefm(1:klon,1:klev,1:nbsrf+1), & 1742 slab_wfbils, & 1733 1743 qsol, zq2m, s_pblh, s_lcl, & 1734 1744 s_capCL, s_oliqCL, s_cteiCL,s_pblT, & … … 2809 2819 paprs, & 2810 2820 pplay, & 2811 coefh( :,:,is_ave), &2821 coefh(1:klon,1:klev,is_ave), & 2812 2822 pphi, & 2813 2823 t_seri, & … … 3340 3350 paprs, pplay, pmfu, pmfd, & 3341 3351 pen_u, pde_u, pen_d, pde_d, & 3342 cdragh, coefh( :,:,is_ave), fm_therm, entr_therm, &3352 cdragh, coefh(1:klon,1:klev,is_ave), fm_therm, entr_therm, & 3343 3353 u1, v1, ftsol, pctsrf, & 3344 3354 zustar, zu10m, zv10m, & … … 3368 3378 t,pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, & 3369 3379 fm_therm,entr_therm, & 3370 cdragh,coefh( :,:,is_ave),u1,v1,ftsol,pctsrf, &3380 cdragh,coefh(1:klon,1:klev,is_ave),u1,v1,ftsol,pctsrf, & 3371 3381 frac_impa, frac_nucl, & 3372 3382 pphis,airephy,dtime,itap, & … … 3431 3441 ! SORTIES 3432 3442 !======================================================================= 3433 3443 ! 3444 !IM initialisation + calculs divers diag AMIP2 3445 ! 3446 include "calcul_divers.h" 3447 ! 3434 3448 !IM Interpolation sur les niveaux de pression du NMC 3435 3449 ! ------------------------------------------------- … … 3448 3462 ENDDO 3449 3463 ENDDO 3450 !3451 !IM initialisation + calculs divers diag AMIP23452 !3453 include "calcul_divers.h"3454 3464 ! 3455 3465 IF (type_trac == 'inca') THEN … … 3649 3659 pplay, lmax_th, aerosol_couple, & 3650 3660 ok_ade, ok_aie, ivap, new_aod, ok_sync, & 3651 ptconv, read_climoz, clevSTD, freq_moyNMC,&3661 ptconv, read_climoz, clevSTD, & 3652 3662 ptconvth, d_t, qx, d_qx, zmasse, & 3653 3663 flag_aerosol_strat) -
LMDZ5/branches/testing/libf/phylmd/undefSTD.F
r1910 r1921 2 2 ! $Id$ 3 3 ! 4 SUBROUTINE undefSTD(itap, freq_calNMC,read_climoz)4 SUBROUTINE undefSTD(itap, read_climoz) 5 5 USE netcdf 6 6 USE dimphy 7 7 USE phys_state_var_mod ! Variables sauvegardees de la physique 8 8 IMPLICIT none 9 include "clesphys.h" 9 10 c 10 11 c==================================================================== … … 42 43 c PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC 43 44 INTEGER i, k, n 44 45 c REAL freq_calNMC(nout) 45 46 INTEGER read_climoz 46 47 c
Note: See TracChangeset
for help on using the changeset viewer.