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

Last change on this file was 3435, checked in by Laurent Fairhead, 6 years ago

"Historic" :-) commit merging the physics branch used for DYNAMICO with the LMDZ trunk.
The same physics branch can now be used seamlessly with the traditional lon-lat LMDZ
dynamical core and DYNAMICO.
Testing consisted in running a lon-lat LMDZ bucket simulation with the NPv6.1 physics package
with the original trunk sources and the merged sources. Tests were succesful in the sense that
numeric continuity was preserved in the restart files from both simulation. Further tests
included running both versions of the physics codes for one year in a LMDZOR setting in which
the restart files also came out identical.

Caution:

  • as the physics package now manages unstructured grids, grid information needs to be transmitted

to the surface scheme ORCHIDEE. This means that the interface defined in surf_land_orchidee_mod.F90
is only compatible with ORCHIDEE version orchidee2.1 and later versions. If previous versions of
ORCHIDEE need to be used, the CPP key ORCHIDEE_NOUNSTRUCT needs to be set at compilation time.
This is done automatically if makelmdz/makelmdz_fcm are called with the veget orchidee2.0 switch

  • due to a limitation in XIOS, the time at which limit conditions will be read in by DYNAMICO will be

delayed by one physic timestep with respect to the time it is read in by the lon-lat model. This is caused
by the line

IF (MOD(itime-1, lmt_pas) == 0 .OR. (jour_lu /= jour .AND. grid_type /= unstructured)) THEN ! time to read

in limit_read_mod.F90

Work still needed on COSP integration and XML files for DYNAMICO

EM, YM, LF

  • 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: 1.6 KB
Line 
1!
2! $Id: calcul_divers.h 3435 2019-01-22 15:21:59Z aclsce $
3!
4!
5! Initialisations diverses au tout debut
6      IF(itap.EQ.1) THEN
7         itapm1=0
8      ENDIF
9
10! Initialisation debut de mois
11      IF(itap.EQ.itapm1+1) THEN
12        nday_rain(:)=0.
13!       print*,'initialisation mois suivants day_rain itap',itap
14      ENDIF
15
16! Calcul fin de journee : total_rain, nday_rain
17      IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.0) THEN
18!        print*,'calcul nday_rain itap ',itap
19         DO i = 1, klon
20            total_rain(i)=rain_fall(i)+snow_fall(i) 
21            IF(total_rain(i).GT.0.) nday_rain(i)=nday_rain(i)+1.
22         ENDDO
23      ENDIF
24
25! Initialisation fin de mois
26      IF(MOD(itap-itapm1,NINT(mth_len*un_jour/phys_tstep)).EQ.0) THEN
27        itapm1=itapm1+NINT(mth_len*un_jour/phys_tstep)
28!       print*,'initialisation itapm1 ',itapm1
29      ENDIF
30!
31! calcul temperatures minimale et maximale moyennees sur le mois
32!
33!initialisation debut de mois ou de journee pour les fichiers mensuels
34  IF(itap.EQ.itapm1+1) THEN
35     t2m_min_mon=0.
36     t2m_max_mon=0.
37  ENDIF
38  IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.1) THEN
39     zt2m_min_mon=zt2m
40     zt2m_max_mon=zt2m
41  ENDIF
42!calcul a chaque pas de temps pour les fichiers mensuels
43     DO i = 1, klon
44        zt2m_min_mon(i)=MIN(zt2m(i),zt2m_min_mon(i))
45        zt2m_max_mon(i)=MAX(zt2m(i),zt2m_max_mon(i))
46     ENDDO
47!fin de journee
48  IF(MOD(itap,NINT(un_jour/phys_tstep)).EQ.0) THEN
49   t2m_min_mon=t2m_min_mon+zt2m_min_mon
50   t2m_max_mon=t2m_max_mon+zt2m_max_mon
51  ENDIF
52!fin mois
53  IF(itap==itapm1) THEN
54   t2m_min_mon=t2m_min_mon/mth_len
55   t2m_max_mon=t2m_max_mon/mth_len
56  ENDIF
57!
Note: See TracBrowser for help on using the repository browser.