LMDZ
iotd_ini.F90
Go to the documentation of this file.
1  SUBROUTINE iotd_ini(fichnom,iim,jjm,llm,prlonv,prlatu,pcoordv)
2  IMPLICIT NONE
3 
4 !=======================================================================
5 !
6 ! Auteur: F. Hourdin
7 ! -------
8 !
9 ! Objet:
10 ! ------
11 ! Light interface for netcdf outputs. can be used outside LMDZ
12 !
13 !=======================================================================
14 !-----------------------------------------------------------------------
15 ! Declarations:
16 ! -------------
17 
18 #include "netcdf.inc"
19 #include "iotd.h"
20 
21 ! Arguments:
22 ! ----------
23 
24  integer iim,jjm,llm
25  real prlonv(iim),prlatu(jjm),pcoordv(llm),timestep
26  INTEGER id_FOCE
27 
28  integer corner(4),edges(4),ndim
29  real px(1000)
30  character (len=10) :: nom
31 
32 ! Local:
33 ! ------
34  INTEGER ierr
35 
36  integer :: nvarid
37  integer, dimension(2) :: id
38  integer :: varid
39 
40  character*10 fichnom
41  real*4 rlonv(iim),rlatu(jjm),coordv(llm)
42 
43  real pi
44 
45  print*,'INIIO prlonv ',prlonv
46  imax=iim
47  jmax=jjm
48  lmax=llm
49 
50  rlonv=prlonv
51  rlatu=prlatu
52  coordv=pcoordv
53 
54 !-----------------------------------------------------------------------
55 
56 
57  pi=2.*asin(1.)
58 
59 ! Define dimensions
60 
61  ! Create the NetCDF file
62  ierr=nf_create(fichnom, nf_clobber, nid)
63  ! Define the 'Time' dimension
64  ierr=nf_def_dim(nid,"Time",nf_unlimited,dim_coord(4))
65  ! Define the 'Time' variable
66  ierr=nf_def_var(nid, "Time", nf_float, 1, dim_coord(4),varid)
67 ! ! Add a long_name attribute
68 ! ierr=NF_PUT_ATT_TEXT(nid, varid, "long_name",4,"Time")
69 ! ! Add a units attribute
70  ierr=nf_put_att_text(nid, varid,'units',29,"days since 0000-00-0 00:00:00")
71  ! Switch out of NetCDF Define mode
72 
73  ierr=nf_def_dim(nid, "longitude", iim, dim_coord(1))
74  ierr=nf_def_dim(nid, "latitude", jjm, dim_coord(2))
75  ierr=nf_def_dim(nid, "altitude", llm, dim_coord(3))
76 
77 
78  ierr=nf_enddef(nid)
79 !
80 ! Contol parameters for this run
81 ! --------------------------
82 
83  ierr=nf_redef(nid)
84  ierr=nf_def_var(nid,"longitude", nf_float, 1, dim_coord(1),nvarid)
85 ! ierr=NF_PUT_ATT_TEXT(nid,nvarid,"long_name", 14,
86 ! . "East longitude")
87 ! ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',12,"degrees_east")
88  ierr=nf_enddef(nid)
89  ierr=nf_put_var_real(nid,nvarid,rlonv)
90  print*,ierr
91 
92 ! --------------------------
93  ierr=nf_redef(nid)
94  ierr=nf_def_var(nid, "latitude", nf_float, 1, dim_coord(2),nvarid)
95 ! ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',13,"degrees_north")
96 ! ierr=NF_PUT_ATT_TEXT(nid,nvarid,"long_name", 14,"North latitude")
97  ierr=nf_enddef(nid)
98  ierr=nf_put_var_real(nid,nvarid,rlatu)
99 !
100 ! --------------------------
101  ierr=nf_redef(nid)
102  ierr=nf_def_var(nid, "altitude", nf_float, 1,dim_coord(3),nvarid)
103  ierr=nf_put_att_text(nid,nvarid,"long_name",10,"pseudo-alt")
104 ! ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',2,"km")
105  if ( pcoordv(2)>pcoordv(1) ) then
106  ierr=nf_put_att_text(nid,nvarid,"long_name",10,"pseudo-alt")
107  ierr=nf_put_att_text(nid,nvarid,'positive',2,"up")
108  else
109  ierr=nf_put_att_text(nid,nvarid,"long_name",8,"pressure")
110  ierr = nf_put_att_text(nid,nvarid,'positive',4,"down")
111  endif
112  ierr=nf_enddef(nid)
113 
114  ierr=nf_put_var_real(nid,nvarid,coordv)
115 !
116  END
subroutine iotd_ini(fichnom, iim, jjm, llm, prlonv, prlatu, pcoordv)
Definition: iotd_ini.F90:2
integer imax
Definition: iotd.h:1
nid INTEGER nid
Definition: iotd.h:16
nid INTEGER dim_coord
Definition: iotd.h:16
jmax
Definition: iotd.h:1
lmax
Definition: iotd.h:1