24 INTEGER,
INTENT(IN) :: ncid
25 CHARACTER(LEN=*),
INTENT(IN) :: id
26 REAL,
INTENT(IN) :: var(iip1,
jjp1,
ll)
27 INTEGER,
INTENT(IN) :: ll
30 INTEGER :: start(4), count(4)
32 start(:)=[1,1,1,1]; count(:)=[iip1,
jjp1,ll,1]
33 CALL err(nf90_inq_varid(ncid,id,
nvarid),
"inq",id)
34 CALL err(nf90_put_var(ncid,
nvarid,var,start,count),
"put",id)
49 INTEGER,
INTENT(IN) :: ncid
50 CHARACTER(LEN=*),
INTENT(IN) :: id
51 REAL,
INTENT(IN) :: var(iip1,jjm,
ll)
52 INTEGER,
INTENT(IN) :: ll
55 INTEGER :: start(4), count(4)
57 start(:)=[1,1,1,1]; count(:)=[iip1,jjm,ll,1]
58 CALL err(nf90_inq_varid(ncid,id,
nvarid),
"inq",id)
59 CALL err(nf90_put_var(ncid,
nvarid,var,start,count),
"put",id)
74 INTEGER,
INTENT(IN) :: ncid
75 CHARACTER(LEN=*),
INTENT(IN) :: id
76 REAL,
INTENT(OUT) :: var(iip1,
jjp1,
ll)
77 INTEGER,
INTENT(IN) :: ll
80 INTEGER :: start(4), count(4)
82 start(:)=[1,1,1,1]; count(:)=[iip1,
jjp1,ll,1]
83 CALL err(nf90_inq_varid(ncid,id,
nvarid),
"inq",id)
84 CALL err(nf90_get_var(ncid,
nvarid,var,start,count),
"get",id)
93 SUBROUTINE cre_var(ncid,var,title,did,units)
99 INTEGER,
INTENT(IN) :: ncid
100 CHARACTER(LEN=*),
INTENT(IN) :: var, title
101 INTEGER,
INTENT(IN) :: did(:)
102 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: units
105 CALL err(nf90_def_var(ncid,var,nf90_double,did,
nvarid),
"inq",var)
107 CALL err(nf90_def_var(ncid,var,nf90_float ,did,
nvarid),
"inq",var)
109 IF(title/=
"")
CALL err(nf90_put_att(ncid,
nvarid,
"title",title),var)
110 IF(
PRESENT(units))
CALL err(nf90_put_att(ncid,
nvarid,
"units",units),var)
119 SUBROUTINE put_var1(ncid,var,title,did,v,units)
125 INTEGER,
INTENT(IN) :: ncid
126 CHARACTER(LEN=*),
INTENT(IN) :: var, title
127 INTEGER,
INTENT(IN) :: did(1)
128 REAL,
INTENT(IN) :: v(:)
129 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: units
131 IF(
PRESENT(units))
CALL cre_var(ncid,var,title,did,units)
132 IF(.NOT.
PRESENT(units))
CALL cre_var(ncid,var,title,did)
133 CALL err(nf90_enddef(ncid))
134 CALL err(nf90_put_var(ncid,
nvarid,v),
"put",var)
135 CALL err(nf90_redef(ncid))
144 SUBROUTINE put_var2(ncid,var,title,did,v,units)
150 INTEGER,
INTENT(IN) :: ncid
151 CHARACTER(LEN=*),
INTENT(IN) :: var, title
152 INTEGER,
INTENT(IN) :: did(2)
153 REAL,
INTENT(IN) :: v(:,:)
154 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: units
156 IF(
PRESENT(units))
CALL cre_var(ncid,var,title,did,units)
157 IF(.NOT.
PRESENT(units))
CALL cre_var(ncid,var,title,did)
158 CALL err(nf90_enddef(ncid))
159 CALL err(nf90_put_var(ncid,
nvarid,v),
"put",var)
160 CALL err(nf90_redef(ncid))
169 FUNCTION msg(typ,nam)
175 CHARACTER(LEN=256) :: msg
176 CHARACTER(LEN=*),
INTENT(IN) :: typ
177 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: nam
180 CASE(
'open'); msg=
"Opening failed for <"//trim(
fil)//
">"
181 CASE(
'close'); msg=
"Closing failed for <"//trim(
fil)//
">"
182 CASE(
'get'); msg=
"Reading failed for <"//trim(nam)//
">"
183 CASE(
'put'); msg=
"Writting failed for <"//trim(nam)//
">"
184 CASE(
'inq'); msg=
"Missing field <"//trim(nam)//
">"
185 CASE(
'fnd'); msg=
"Found field <"//trim(nam)//
">"
187 msg=trim(msg)//
" in file <"//trim(
fil)//
">"
196 SUBROUTINE err(ierr,typ,nam)
202 INTEGER,
INTENT(IN) :: ierr
203 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: typ
204 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: nam
206 IF(ierr==nf90_noerr)
RETURN
207 IF(.NOT.
PRESENT(typ))
THEN
subroutine, public put_var2(ncid, var, title, did, v, units)
subroutine get_var1(var, v)
subroutine, public dynredem_write_u(ncid, id, var, ll)
character(len=256), save, public fil
subroutine abort_gcm(modname, message, ierr)
subroutine err(ierr, typ, nam)
character(len=256), save, public modname
character(len=256) function, public msg(typ, nam)
subroutine, public dynredem_write_v(ncid, id, var, ll)
!$Id Turb_fcg!implicit none!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc!cette routine permet d obtenir hq et ainsi de!pouvoir calculer la convergence et le cisaillement dans la physiq!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc INTEGER klev REAL ll
subroutine, public put_var1(ncid, var, title, did, v, units)
subroutine, public dynredem_read_u(ncid, id, var, ll)
subroutine, public cre_var(ncid, var, title, did, units)