source: LMDZ6/trunk/libf/phylmd/calcul_divers.h

Last change on this file was 4556, checked in by musat, 13 months ago

Correction diagnostic ndayrain
Ionela Musat

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.5 KB
RevLine 
[1862]1!
[3435]2! $Id: calcul_divers.h 4556 2023-05-31 15:27:03Z abarral $
[1862]3!
[4556]4! itap : nombre de pas de temps de la physique
5! itapm1 : somme du nombre de pas de temps du/des mois precedent/s.
6! (itap - itapm1) : nombre de pas de temps du mois courant
[3435]7!
[4556]8! Ne pas modifier les IFs ci-dessous impliquant itapm1,
9! autrement les resultats seront faux !!
10!
11! Ici on utilise MOD(itap - itapm1,NINT(mth_len*un_jour/phys_tstep)).EQ.1)
12! pour detecter le debut de chaque mois lorsque  l on tourne par an.
13!
14! IM, 26.05.2023
15!
16!
17! Initialisations itapm1 du premier mois
[1912]18      IF(itap.EQ.1) THEN
19         itapm1=0
[4556]20!        print*,'initialisation itap=1 itapm1 ',itapm1
[1454]21      ENDIF
22
[4556]23!
[1912]24! Initialisation debut de mois
25      IF(itap.EQ.itapm1+1) THEN
[4556]26         ndayrain_mth(:)=0.
27!        print*,'Initialisation ndayrain_mth ',itap
28      ENDIF
29!
30! Initialisation debut de chaque jour
31      IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.1) THEN
[1912]32        nday_rain(:)=0.
33!       print*,'initialisation mois suivants day_rain itap',itap
34      ENDIF
[4556]35!
36! Calcul a chaque pas de temps de la physique
[1454]37         DO i = 1, klon
38            total_rain(i)=rain_fall(i)+snow_fall(i) 
[4556]39            IF(total_rain(i).GT.0.) nday_rain(i)=1.
[1454]40         ENDDO
[4556]41!
42! Cumul en fin de journee
43      IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.0) THEN
44         DO i = 1, klon
45            ndayrain_mth(i)=ndayrain_mth(i)+nday_rain(i)
46         ENDDO
[1454]47      ENDIF
[4556]48!
[1912]49! Initialisation fin de mois
[4556]50! Ne pas changer le IF ci-dessous, car le compteur itapm1 est augmente
51! apres, dans la boucle !!!
52! IM, 260523
[3435]53      IF(MOD(itap-itapm1,NINT(mth_len*un_jour/phys_tstep)).EQ.0) THEN
54        itapm1=itapm1+NINT(mth_len*un_jour/phys_tstep)
[4556]55!       print*,'fmois i i1 mjt',itap,itapm1,mth_len,un_jour,phys_tstep
[1912]56      ENDIF
[2103]57!
58! calcul temperatures minimale et maximale moyennees sur le mois
59!
[4556]60!initialisation debut de mois pour les fichiers mensuels annuels
[2103]61  IF(itap.EQ.itapm1+1) THEN
62     t2m_min_mon=0.
63     t2m_max_mon=0.
64  ENDIF
[4556]65!
66!initialisation debut de journee pour les fichiers mensuels annuels
[3435]67  IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.1) THEN
[2103]68     zt2m_min_mon=zt2m
69     zt2m_max_mon=zt2m
70  ENDIF
[4556]71!
72!calcul sur tous les pas de temps pour les fichiers mensuels annuels
[2103]73     DO i = 1, klon
74        zt2m_min_mon(i)=MIN(zt2m(i),zt2m_min_mon(i))
75        zt2m_max_mon(i)=MAX(zt2m(i),zt2m_max_mon(i))
76     ENDDO
[4556]77!
78!fin journee
[3435]79  IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.0) THEN
[2103]80   t2m_min_mon=t2m_min_mon+zt2m_min_mon
81   t2m_max_mon=t2m_max_mon+zt2m_max_mon
82  ENDIF
[4556]83!
[2103]84!fin mois
85  IF(itap==itapm1) THEN
86   t2m_min_mon=t2m_min_mon/mth_len
87   t2m_max_mon=t2m_max_mon/mth_len
88  ENDIF
89!
Note: See TracBrowser for help on using the repository browser.