LMDZ
iophys.F90
Go to the documentation of this file.
1  subroutine iophys_ecrit(nom,lllm,titre,unite,px)
2  USE dimphy
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
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"
94 
95 real pi
96 
97 ! Arguments:
98 ! ----------
99 
100 !$OMP MASTER
101  IF (is_mpi_root) THEN
102 pi=2.*asin(1.)
103 call iotd_ini('phys.nc ', &
104 iim,jjp1,llm,rlonv(1:iim)*180./pi,rlatu*180./pi,presnivs)
105  ENDIF
106 !$OMP END MASTER
107 
108  END
109 
110 #ifdef und
111  SUBROUTINE gr_fi_ecrit(nfield,nlon,iim,jjmp1,fi,ecrit)
112  IMPLICIT none
113 
114 !=======================================================================
115  INTEGER nfield,nlon,iim,jjmp1, jjm
116  REAL fi(nlon,nfield), ecrit(iim*jjmp1,nfield)
117 
118  INTEGER i, n, ig
119 
120  jjm = jjmp1 - 1
121  DO n = 1, nfield
122  DO i=1,iim
123  ecrit(i,n) = fi(1,n)
124  ecrit(i+jjm*iim,n) = fi(nlon,n)
125  ENDDO
126  DO ig = 1, nlon - 2
127  ecrit(iim+ig,n) = fi(1+ig,n)
128  ENDDO
129  ENDDO
130  RETURN
131  END
132 
133 #endif
subroutine iotd_ecrit(nom, llm, titre, unite, px)
Definition: iotd_ecrit.F90:2
integer, save klon_glo
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
!$Header!CDK comgeom COMMON comgeom rlatu
Definition: comgeom.h:25
!$Id presnivs(llm)
subroutine iophys_ini
Definition: iophys.F90:70
!IM Implemente en modes sequentiel et parallele CALL gather(rlat, rlat_glo) CALL bcast(rlat_glo) CALL gather(rlon
!$Header jjp1
Definition: paramet.h:14
!$Header!integer nvarmx parameter(nfmx=10, imx=200, jmx=150, lmx=200, nvarmx=1000) real xd(imx
c c zjulian c cym CALL iim cym klev iim
Definition: ini_bilKP_ave.h:24
subroutine gr_fi_ecrit(nfield, nlon, iim, jjmp1, fi, ecrit)
Definition: gr_fi_ecrit.F90:5
subroutine iophys_ecrit(nom, lllm, titre, unite, px)
Definition: iophys.F90:2
Definition: dimphy.F90:1
!$Header!CDK comgeom COMMON comgeom rlonv
Definition: comgeom.h:25