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)