source: dynamico_lmdz/simple_physics/phyparam/param/iophys.F90 @ 4220

Last change on this file since 4220 was 4176, checked in by dubos, 6 years ago

simple_physics : copy code from FH

File size: 3.1 KB
Line 
1      subroutine iophys_ecrit(nom,lllm,titre,unite,px)
2      USE dimphy
3      USE mod_phys_lmdz_para
4      USE mod_grid_phy_lmdz
5      IMPLICIT NONE
6
7
8
9!  Ecriture de variables diagnostiques au choix dans la physique
10!  dans un fichier NetCDF nomme  'diagfi'. Ces variables peuvent etre
11!  3d (ex : temperature), 2d (ex : temperature de surface), ou
12!  0d (pour un scalaire qui ne depend que du temps : ex : la longitude
13!  solaire)
14!  (ou encore 1d, dans le cas de testphys1d, pour sortir une colonne)
15!  La periode d'ecriture est donnee par
16!  "ecritphy " regle dans le fichier de controle de run :  run.def
17!
18!    writediagfi peut etre appele de n'importe quelle subroutine
19!    de la physique, plusieurs fois. L'initialisation et la creation du
20!    fichier se fait au tout premier appel.
21!
22! WARNING : les variables dynamique (u,v,t,q,ps)
23!  sauvees par writediagfi avec une
24! date donnee sont legerement differentes que dans le fichier histoire car
25! on ne leur a pas encore ajoute de la dissipation et de la physique !!!
26! IL est  RECOMMANDE d'ajouter les tendance physique a ces variables
27! avant l'ecriture dans diagfi (cf. physiq.F)
28
29! Modifs: Aug.2010 Ehouarn: enforce outputs to be real*4
30!
31!  parametres (input) :
32!  ----------
33!      unit : unite logique du fichier de sortie (toujours la meme)
34!      nom  : nom de la variable a sortir (chaine de caracteres)
35!      titre: titre de la variable (chaine de caracteres)
36!      unite : unite de la variable (chaine de caracteres)
37!      px : variable a sortir (real 0, 1, 2, ou 3d)
38!
39!=================================================================
40
41#include "dimensions.h"
42#include "paramet.h"
43#include "netcdf.inc"
44#include "iotd.h"
45
46
47! Arguments on input:
48      integer lllm
49      character (len=*) :: nom,titre,unite
50      integer imjmax
51      parameter (imjmax=100000)
52      real px(klon_omp,lllm)
53      real xglo(klon_glo,lllm)
54      real zx(iim,jjp1,lllm)
55
56
57      CALL Gather(px,xglo)
58!$OMP MASTER
59      IF (is_mpi_root) THEN       
60        CALL Grid1Dto2D_glo(xglo,zx)
61        call iotd_ecrit(nom,lllm,titre,unite,zx)
62      ENDIF
63!$OMP END MASTER
64
65      return
66      end
67
68!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
69      SUBROUTINE iophys_ini(fichnom,presnivs)
70      USE mod_phys_lmdz_para
71
72      IMPLICIT NONE
73
74!=======================================================================
75!
76!   Auteur:  L. Fairhead  ,  P. Le Van, Y. Wanherdrick, F. Forget
77!   -------
78!
79!   Objet:
80!   ------
81!
82!   'Initialize' the diagfi.nc file: write down dimensions as well
83!   as time-independent fields (e.g: geopotential, mesh area, ...)
84!
85!=======================================================================
86!-----------------------------------------------------------------------
87!   Declarations:
88!   -------------
89
90#include "dimensions.h"
91#include "paramet.h"
92#include "comgeom.h"
93! #include "comvert.h"
94REAL presnivs(llm)
95
96character*10 fichnom
97real pi
98
99!   Arguments:
100!   ----------
101
102!$OMP MASTER
103    IF (is_mpi_root) THEN       
104pi=2.*asin(1.)
105call iotd_ini('phys.nc     ', &
106iim,jjp1,llm,rlonv(1:iim)*180./pi,rlatu*180./pi,presnivs)
107    ENDIF
108!$OMP END MASTER
109
110      END
Note: See TracBrowser for help on using the repository browser.