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)