Ignore:
Timestamp:
Jul 31, 2014, 3:46:23 PM (10 years ago)
Author:
musat
Message:

Ajout variables t2m_min_mon et t2m_max_mon dans les fichier
histmth. Ce sont les tempe©rature a minimales et
maximales journalie¨re) moyeneées sur le mo. Le calcul
est fait "manuelleÃment" dans calcul_divers.h.
Teste en sequentiel (en local) avec calendrier a 360 et 365 jours
et en parallele MPI avec calendrier 360 jours (sur adapp).
IM

  • This line, and those below, will be ignored--

M phys_output_ctrlout_mod.F90
M phys_local_var_mod.F90
M phys_output_write_mod.F90
M calcul_divers.h

Location:
LMDZ5/trunk/libf/phylmd
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/calcul_divers.h

    r1912 r2103  
    3333!       print*,'initialisation itapm1 ',itapm1
    3434      ENDIF
     35!
     36! calcul temperatures minimale et maximale moyennees sur le mois
     37!
     38!initialisation debut de mois ou de journee pour les fichiers mensuels
     39  IF(itap.EQ.itapm1+1) THEN
     40     t2m_min_mon=0.
     41     t2m_max_mon=0.
     42  ENDIF
     43  IF(MOD(itap,NINT(un_jour/dtime)).EQ.1) THEN
     44     zt2m_min_mon=zt2m
     45     zt2m_max_mon=zt2m
     46  ENDIF
     47!calcul a chaque pas de temps pour les fichiers mensuels
     48     DO i = 1, klon
     49        zt2m_min_mon(i)=MIN(zt2m(i),zt2m_min_mon(i))
     50        zt2m_max_mon(i)=MAX(zt2m(i),zt2m_max_mon(i))
     51     ENDDO
     52!fin de journee
     53  IF(MOD(itap,NINT(un_jour/dtime)).EQ.0) THEN
     54   t2m_min_mon=t2m_min_mon+zt2m_min_mon
     55   t2m_max_mon=t2m_max_mon+zt2m_max_mon
     56  ENDIF
     57!fin mois
     58  IF(itap==itapm1) THEN
     59   t2m_min_mon=t2m_min_mon/mth_len
     60   t2m_max_mon=t2m_max_mon/mth_len
     61  ENDIF
     62!
  • LMDZ5/trunk/libf/phylmd/phys_local_var_mod.F90

    r2092 r2103  
    228228      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: wake_h, wbeff, zmax_th, zq2m, zt2m
    229229!$OMP THREADPRIVATE(wake_h, wbeff, zmax_th, zq2m, zt2m)
     230      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zt2m_min_mon, zt2m_max_mon
     231!$OMP THREADPRIVATE(zt2m_min_mon, zt2m_max_mon)
     232      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: t2m_min_mon, t2m_max_mon
     233!$OMP THREADPRIVATE(t2m_min_mon, t2m_max_mon)
    230234      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: weak_inversion
    231235!$OMP THREADPRIVATE(weak_inversion)
     
    403407      ALLOCATE(rain_lsc(klon), wake_h(klon), wbeff(klon), zmax_th(klon))
    404408      ALLOCATE(zq2m(klon), zt2m(klon), weak_inversion(klon))
     409      ALLOCATE(zt2m_min_mon(klon), zt2m_max_mon(klon))
     410      ALLOCATE(t2m_min_mon(klon), t2m_max_mon(klon))
    405411      ALLOCATE(sens(klon), flwp(klon), fiwp(klon))
    406412      ALLOCATE(ale_bl_stat(klon), alp_bl_conv(klon), alp_bl_det(klon))
     
    554560      DEALLOCATE(rain_lsc, wake_h, wbeff, zmax_th)
    555561      DEALLOCATE(zq2m, zt2m, weak_inversion)
     562      DEALLOCATE(zt2m_min_mon, zt2m_max_mon)
     563      DEALLOCATE(t2m_min_mon, t2m_max_mon)
    556564      DEALLOCATE(sens, flwp, fiwp)
    557565      DEALLOCATE(ale_bl_stat,alp_bl_conv,alp_bl_det)
  • LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r2057 r2103  
    4949  TYPE(ctrl_out), SAVE :: o_t2m = ctrl_out((/ 1, 1, 1, 5, 10, 10, 11, 11, 11 /), &
    5050    't2m', 'Temperature 2m', 'K', (/ ('', i=1, 9) /))
    51   TYPE(ctrl_out), SAVE :: o_t2m_min = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 /), &
     51  TYPE(ctrl_out), SAVE :: o_t2m_min = ctrl_out((/ 20, 1, 10, 10, 10, 10, 11, 11, 11 /), &
    5252    't2m_min', 'Temp 2m min', 'K', &
    5353      (/ "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)", "t_min(X)" /))
    54   TYPE(ctrl_out), SAVE :: o_t2m_max = ctrl_out((/ 1, 1, 10, 10, 10, 10, 11, 11, 11 /), &
     54  TYPE(ctrl_out), SAVE :: o_t2m_max = ctrl_out((/ 20, 1, 10, 10, 10, 10, 11, 11, 11 /), &
    5555    't2m_max', 'Temp 2m max', 'K', &
    5656      (/ "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)", &
    5757         "t_max(X)", "t_max(X)", "t_max(X)", "t_max(X)" /))
     58
     59  TYPE(ctrl_out), SAVE :: o_t2m_min_mon = ctrl_out((/ 1, 20, 20, 20, 20, 20, 20, 20, 20 /), &
     60    't2m_min_mon', 'Monthly average min 2m temperature', 'K', &
     61      (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))
     62  TYPE(ctrl_out), SAVE :: o_t2m_max_mon = ctrl_out((/ 1, 20, 20, 20, 20, 20, 20, 20, 20 /), &
     63    't2m_max_mon', 'Monthly average max 2m temperature', 'K', &
     64      (/ "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", &
     65         "inst(X)", "inst(X)", "inst(X)", "inst(X)" /))
    5866
    5967  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_t2m_srf = (/ &
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2102 r2103  
    3030         o_aireTER, o_flat, o_slp, o_tsol, &
    3131         o_t2m, o_t2m_min, o_t2m_max, &
     32         o_t2m_min_mon, o_t2m_max_mon, &
    3233         o_q2m, o_ustar, o_u10m, o_v10m, &
    3334         o_wind10m, o_wind10max, o_sicf, &
     
    172173
    173174    USE phys_local_var_mod, only: zxfluxlat, slp, zxtsol, zt2m, &
     175         t2m_min_mon, t2m_max_mon, &
    174176         zu10m, zv10m, zq2m, zustar, zxqsurf, qsol, &
    175177         rain_lsc, snow_lsc, evap, bils, sens, fder, &
     
    327329       CALL histwrite_phy(o_t2m_min, zt2m)
    328330       CALL histwrite_phy(o_t2m_max, zt2m)
     331       CALL histwrite_phy(o_t2m_max_mon, t2m_max_mon)
     332       CALL histwrite_phy(o_t2m_min_mon, t2m_min_mon)
    329333
    330334       IF (vars_defined) THEN
Note: See TracChangeset for help on using the changeset viewer.