source: trunk/LMDZ.VENUS/libf/phyvenus/phyredem.F90 @ 1723

Last change on this file since 1723 was 1621, checked in by emillour, 8 years ago

Further work on full dynamics/physics separation.

LMDZ.COMMON:

  • added phy_common/vertical_layers_mod.F90 to store information on vertical grid. This is where routines in the physics should get the information.
  • The contents of vertical_layers_mod intialized via dynphy_lonlat/inigeomphy_mod.F90.

LMDZ.MARS:

  • physics now completely decoupled from dynamics; the physics package may now be compiled as a library (-libphy option of makelmdz_fcm).
  • created an "ini_tracer_mod" routine in module "tracer_mod" for a cleaner initialization of the later.
  • removed some purely dynamics-related outputs (etot0, zoom parameters, etc.) from diagfi.nc and stats.nc outputs as these informations are not available in the physics.

LMDZ.GENERIC:

  • physics now completely decoupled from dynamics; the physics package may now be compiled as a library (-libphy option of makelmdz_fcm).
  • added nqtot to tracer_h.F90.
  • removed some purely dynamics-related outputs (etot0, zoom parameters, etc.) from diagfi.nc and stats.nc outputs as these informations are not available in the physics.

LMDZ.VENUS:

  • physics now completely decoupled from dynamics; the physics package may now be compiled as a library (-libphy option of makelmdz_fcm).
  • added infotrac_phy.F90 to store information on tracers in the physics. Initialized via iniphysiq.
  • added cpdet_phy_mod.F90 to store t2tpot etc. functions to be used in the physics. Initialized via iniphysiq. IMPORTANT: there are some hard-coded constants! These should match what is in cpdet_mod.F90 in the dynamics.
  • got rid of references to moyzon_mod module within the physics. The required variables (tmoy, plevmoy) are passed to the physics as arguments to physiq.

LMDZ.TITAN:

  • added infotrac_phy.F90 to store information on tracers in the physics. Initialized via iniphysiq.
  • added cpdet_phy_mod.F90 to store t2tpot etc. functions to be used in the physics.
  • Extra work required to completely decouple physics and dynamics: moyzon_mod should be cleaned up and information passed from dynamics to physics as as arguments. Likewise moyzon_ch and moyzon_mu should not be queried from logic_mod (which is in the dynamics).

EM

File size: 3.2 KB
Line 
1!
2! $Id: $
3!
4      SUBROUTINE phyredem (fichnom)
5
6      USE dimphy
7      USE mod_grid_phy_lmdz
8      USE mod_phys_lmdz_para
9      USE iophy
10      USE phys_state_var_mod
11      USE iostart, only : open_restartphy,close_restartphy, &
12                          put_var,put_field
13      use geometry_mod, only: longitude_deg, latitude_deg
14      USE time_phylmdz_mod, only: day_end, annee_ref, itau_phy, raz_date
15
16      implicit none
17!======================================================================
18! Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818
19! Objet: Lecture de l'etat initial pour la physique
20!======================================================================
21#include "netcdf.inc"
22#include "dimsoil.h"
23#include "clesphys.h"
24#include "tabcontrol.h"
25!======================================================================
26
27character(len=*),intent(in) :: fichnom
28REAL    :: tab_cntrl(length)
29integer :: isoil
30CHARACTER(len=2) :: str2
31
32
33! open file
34
35      CALL open_restartphy(fichnom)
36
37! tab_cntrl() contains run parameters
38
39      tab_cntrl(:)=0.0
40 
41      tab_cntrl(1) = dtime
42      tab_cntrl(2) = radpas
43      tab_cntrl(3) = 0.0
44      tab_cntrl(4) = solaire
45      tab_cntrl(5) = 0
46      tab_cntrl(6) = nbapp_rad
47
48      IF( cycle_diurne ) tab_cntrl( 7 ) = 1.
49      IF(   soil_model ) tab_cntrl( 8 ) = 1.
50      IF(     ok_orodr ) tab_cntrl(10 ) = 1.
51      IF(     ok_orolf ) tab_cntrl(11 ) = 1.
52      IF( ok_gw_nonoro ) tab_cntrl(12 ) = 1.
53
54      tab_cntrl(13) = day_end
55      tab_cntrl(14) = annee_ref
56      tab_cntrl(15) = itau_phy
57
58      CALL put_var("controle","Parametres de controle",tab_cntrl)
59
60! coordinates
61
62      CALL put_field("longitude", &
63                     "Longitudes de la grille physique",longitude_deg)
64     
65      CALL put_field("latitude", &
66                     "Latitudes de la grille physique",latitude_deg)
67
68! variables
69
70      CALL put_field("TS","Temperature de surface",ftsol)
71
72      DO isoil=1, nsoilmx
73        IF (isoil.LE.99) THEN
74        WRITE(str2,'(i2.2)') isoil
75        CALL put_field("Tsoil"//str2, &
76                       "Temperature du sol No."//str2,ftsoil(:,isoil))
77        ELSE
78        PRINT*, "Trop de couches"
79        CALL abort
80        ENDIF
81      ENDDO
82
83      CALL put_field("ALBE","albedo de surface",falbe)
84      CALL put_field("solsw","Rayonnement solaire a la surface",solsw)
85      CALL put_field("sollw","Rayonnement IR a la surface",sollw)
86      CALL put_field("fder","Derive de flux",fder)
87      CALL put_field("dlw","Derivee flux IR",dlw)
88      CALL put_field("sollwdown","Flux IR vers le bas a la surface",sollwdown)
89      CALL put_field("RADS","Rayonnement net a la surface",radsol)
90      CALL put_field("ZMEA","zmea Orographie sous-maille",zmea)
91      CALL put_field("ZSTD","zstd Orographie sous-maille",zstd)
92      CALL put_field("ZSIG","zsig Orographie sous-maille",zsig)
93      CALL put_field("ZGAM","zgam Orographie sous-maille",zgam)
94      CALL put_field("ZTHE","zthe Orographie sous-maille",zthe)
95      CALL put_field("ZPIC","zpic Orographie sous-maille",zpic)
96      CALL put_field("ZVAL","zval Orographie sous-maille",zval)
97
98      CALL put_field("TANCIEN","T Previous iteration",t_ancien)
99
100! close file
101
102      CALL close_restartphy
103!$OMP BARRIER
104
105      END SUBROUTINE phyredem
Note: See TracBrowser for help on using the repository browser.