25 INTEGER,
INTENT(IN) :: ncid
26 CHARACTER(LEN=*),
INTENT(IN) :: id
28 INTEGER,
INTENT(IN) :: ll
31 REAL,
ALLOCATABLE,
SAVE :: var_tmp(:,:), var_glo(:)
32 INTEGER :: start(4), count(4), l, ierr
34 start(:)=[1,1,1,1]; count(:)=[iip1,
jjp1,1,1]
46 DO l=1,ll; var_tmp(:,l)=var(:,l);
END DO
52 CALL err(nf90_put_var(ncid,
nvarid,var_glo,start,count),
"put",id)
58 DEALLOCATE(var_glo,var_tmp)
75 INTEGER,
INTENT(IN) :: ncid
76 CHARACTER(LEN=*),
INTENT(IN) :: id
78 INTEGER,
INTENT(IN) :: ll
81 REAL,
ALLOCATABLE,
SAVE :: var_tmp(:,:), var_glo(:)
82 INTEGER :: start(4), count(4), l, ierr
84 start(:)=[1,1,1,1]; count(:)=[iip1,jjm,1,1]
96 DO l=1,ll; var_tmp(:,l)=var(:,l);
END DO
102 CALL err(nf90_put_var(ncid,
nvarid,var_glo,start,count),
"put",id)
108 DEALLOCATE(var_glo,var_tmp)
125 INTEGER,
INTENT(IN) :: ncid
126 CHARACTER(LEN=*),
INTENT(IN) :: id
128 INTEGER,
INTENT(IN) :: ll
131 REAL,
ALLOCATABLE,
SAVE :: var_tmp(:,:), var_glo(:)
132 INTEGER :: start(4), count(4), l, ierr
134 start(:)=[1,1,1,1]; count(:)=[iip1,
jjp1,1,1]
149 CALL err(nf90_get_var(ncid,
nvarid,var_glo,start,count),
"get",id)
156 DO l=1,ll; var(:,l)=var_tmp(:,l);
END DO
160 DEALLOCATE(var_glo,var_tmp)
171 SUBROUTINE cre_var(ncid,var,title,did,units)
177 INTEGER,
INTENT(IN) :: ncid
178 CHARACTER(LEN=*),
INTENT(IN) :: var, title
179 INTEGER,
INTENT(IN) :: did(:)
180 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: units
183 CALL err(nf90_def_var(ncid,var,nf90_double,did,
nvarid),
"inq",var)
185 CALL err(nf90_def_var(ncid,var,nf90_float ,did,
nvarid),
"inq",var)
187 IF(title/=
"")
CALL err(nf90_put_att(ncid,
nvarid,
"title",title),var)
188 IF(
PRESENT(units))
CALL err(nf90_put_att(ncid,
nvarid,
"units",units),var)
197 SUBROUTINE put_var(ncid,var,title,did,v,units)
203 INTEGER,
INTENT(IN) :: ncid
204 CHARACTER(LEN=*),
INTENT(IN) :: var, title
205 INTEGER,
INTENT(IN) :: did(:)
206 REAL,
INTENT(IN) :: v(:)
207 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: units
209 INTEGER :: nd, k, nn(2)
210 IF(
PRESENT(units))
CALL cre_var(ncid,var,title,did,units)
211 IF(.NOT.
PRESENT(units))
CALL cre_var(ncid,var,title,did)
212 CALL err(nf90_enddef(ncid))
214 DO k=1,nd;
CALL err(nf90_inquire_dimension(ncid,did(k),len=nn(k)));
END DO
215 IF(nd==1)
CALL err(nf90_put_var(ncid,
nvarid,reshape(v,nn(1:1))),var)
216 IF(nd==2)
CALL err(nf90_put_var(ncid,
nvarid,reshape(v,nn(1:2))),var)
217 CALL err(nf90_redef(ncid))
225 FUNCTION msg(typ,nam)
231 CHARACTER(LEN=256) :: msg
232 CHARACTER(LEN=*),
INTENT(IN) :: typ
233 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: nam
236 CASE(
'open'); msg=
"Opening failed for <"//trim(
fil)//
">"
237 CASE(
'close'); msg=
"Closing failed for <"//trim(
fil)//
">"
238 CASE(
'get'); msg=
"Reading failed for <"//trim(nam)//
">"
239 CASE(
'put'); msg=
"Writting failed for <"//trim(nam)//
">"
240 CASE(
'inq'); msg=
"Missing field <"//trim(nam)//
">"
241 CASE(
'fnd'); msg=
"Found field <"//trim(nam)//
">"
243 msg=trim(msg)//
" in file <"//trim(
fil)//
">"
252 SUBROUTINE err(ierr,typ,nam)
258 INTEGER,
INTENT(IN) :: ierr
259 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: typ
260 CHARACTER(LEN=*),
OPTIONAL,
INTENT(IN) :: nam
262 IF(ierr==nf90_noerr)
RETURN
263 IF(.NOT.
PRESENT(typ))
THEN
!$Header llmm1 INTEGER ip1jmp1
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 scatter_field_u(field_glo, field_loc, ll)
!$Header llmm1 INTEGER ip1jm
subroutine err(ierr, typ, nam)
character(len=256), save, public modname
character(len=256) function, public msg(typ, nam)
subroutine gather_field_v(field_loc, field_glo, ll)
subroutine, public dynredem_write_v(ncid, id, var, ll)
subroutine gather_field_u(field_loc, field_glo, 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 dynredem_read_u(ncid, id, var, ll)
subroutine, public put_var(ncid, var, title, did, v, units)
subroutine, public cre_var(ncid, var, title, did, units)