Changeset 1912 for LMDZ5/trunk
- Timestamp:
- Dec 5, 2013, 6:32:35 PM (11 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/calcul_STDlev.h
r1907 r1912 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/trunk/libf/phylmd/calcul_divers.h
r1907 r1912 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/trunk/libf/phylmd/ini_undefSTD.F
r1907 r1912 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/trunk/libf/phylmd/moy_undefSTD.F
r1907 r1912 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 ENDIF 53 63 c 54 c calcul 1 fois pa r jour64 c calcul 1 fois pas mois, 1 fois par jour ou toutes les 6h 55 65 c 56 IF(MOD(itap,NINT(freq_outNMC(n)/dtime)).EQ.0) THEN 66 IF(n.EQ.1.AND.itap.EQ.itapm1.OR. 67 $n.GT.1.AND.MOD(itap,NINT(freq_outNMC(n)/dtime)).EQ.0) THEN 68 c 69 c print*,'moy_undefSTD n itap itapm1',n,itap,itapm1 57 70 c 58 71 DO k=1, nlevSTD … … 61 74 tsumSTD(i,k,n)=tsumSTD(i,k,n)/ 62 75 $ (freq_moyNMC(n)-tnondef(i,k,n)) 63 cIM BEG64 76 usumSTD(i,k,n)=usumSTD(i,k,n)/ 65 77 $ (freq_moyNMC(n)-tnondef(i,k,n)) … … 96 108 O3daysumSTD(i,k,n)=O3daysumSTD(i,k,n)/ 97 109 $ (freq_moyNMC(n)-tnondef(i,k,n)) 98 cIM END99 110 ELSE 100 111 tsumSTD(i,k,n)=missing_val -
LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r1907 r1912 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/trunk/libf/phylmd/phys_output_mod.F90
r1907 r1912 44 44 USE surface_data, ONLY : ok_snow 45 45 USE phys_output_ctrlout_mod 46 USE mod_grid_phy_lmdz, only: klon_glo 46 47 47 48 #ifdef CPP_XIOS … … 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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 479 488 ecrit_LES = ecrit_files(5) 480 489 ecrit_ins = ecrit_files(6) 481 490 freq_outNMC(1) = ecrit_files(7) 491 freq_outNMC(2) = ecrit_files(8) 492 freq_outNMC(3) = ecrit_files(9) 493 494 WRITE(lunout,*)'freq_outNMC(1)=',freq_outNMC(1) 495 WRITE(lunout,*)'freq_outNMC(2)=',freq_outNMC(2) 496 WRITE(lunout,*)'freq_outNMC(3)=',freq_outNMC(3) 482 497 WRITE(lunout,*)'swaero_diag=',swaero_diag 483 498 WRITE(lunout,*)'Fin phys_output_mod.F90' -
LMDZ5/trunk/libf/phylmd/physiq.F90
r1907 r1912 493 493 REAL un_jour 494 494 PARAMETER(un_jour=86400.) 495 INTEGER itapm1 496 SAVE itapm1 495 497 !====================================================================== 496 498 ! … … 3431 3433 ! SORTIES 3432 3434 !======================================================================= 3433 3435 ! 3436 !IM initialisation + calculs divers diag AMIP2 3437 ! 3438 include "calcul_divers.h" 3439 ! 3434 3440 !IM Interpolation sur les niveaux de pression du NMC 3435 3441 ! ------------------------------------------------- … … 3448 3454 ENDDO 3449 3455 ENDDO 3450 !3451 !IM initialisation + calculs divers diag AMIP23452 !3453 include "calcul_divers.h"3454 3456 ! 3455 3457 IF (type_trac == 'inca') THEN -
LMDZ5/trunk/libf/phylmd/undefSTD.F
r1907 r1912 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.