Ignore:
Timestamp:
03/18/11 17:35:53 (13 years ago)
Author:
jbrlod
Message:

experience 3D

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/meshmask.h

    r8 r14  
    410410} 
    411411 
    412 void write_rst_var(int t,   int ncid, int dimids[]) { 
     412void write_out_var_init (int ncid, int dimids[]) 
     413{ 
     414  //Ecrit les variables de navigation pour les sorties 
    413415YREAL vect[NZ*NY*NX]; 
    414416  
     417 
    415418//nav_lon 
    416419 for(int j=0;j<NY;j++) 
     
    432435} 
    433436zncwrite(NZ,"nav_lev",ncid,dimids,vect); 
     437} 
     438 
     439void write_out_var(int t, int ncid, char const *suff ) 
     440{ 
     441  YREAL vect [NZ*NY*NX]; 
     442  char varname[200]; 
     443 int dimids[4]; 
     444//retrouve les dimensions 
     445 nc_inq_dimid(ncid,"x",&dimids[3]); 
     446 nc_inq_dimid(ncid,"y",&dimids[2]); 
     447 nc_inq_dimid(ncid,"z",&dimids[1]); 
     448 nc_inq_dimid(ncid,"t",&dimids[0]); 
     449 
     450  //u 
     451  if (t==0) sprintf(varname,"ua_c_%s",suff); 
     452  else sprintf (varname,"ub_%s",suff); 
     453  for(int k=0;k<NZ;k++) 
     454    for(int j=0;j<NY;j++) 
     455      for(int i=0;i<NX;i++){ 
     456        if (t==0) vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_ua_c(0,i,j,k); 
     457        else vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_ub(0,i,j,k,t-1); 
     458     } 
     459  voncwrite(0,NZ,NY,NX,varname,ncid,dimids,vect); 
     460   
     461  //u 
     462  if (t==0) sprintf(varname,"va_c_%s",suff); 
     463  else sprintf (varname,"vb_%s",suff); 
     464  for(int k=0;k<NZ;k++) 
     465    for(int j=0;j<NY;j++) 
     466      for(int i=0;i<NX;i++){ 
     467        if (t==0) vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_va_c(0,i,j,k); 
     468        else vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_vb(0,i,j,k,t-1); 
     469      } 
     470  voncwrite(0,NZ,NY,NX,varname,ncid,dimids,vect); 
     471   
     472  //t 
     473  if (t==0) sprintf(varname,"ta_c_%s",suff); 
     474  else sprintf (varname,"tb_%s",suff); 
     475  for(int k=0;k<NZ;k++) 
     476    for(int j=0;j<NY;j++) 
     477      for(int i=0;i<NX;i++){ 
     478        if (t==0) vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_ta_c(0,i,j,k); 
     479        else vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_tb(0,i,j,k,t-1); 
     480      } 
     481  voncwrite(0,NZ,NY,NX,varname,ncid,dimids,vect); 
     482   
     483  //s 
     484  if (t==0) sprintf(varname,"sa_c_%s",suff); 
     485  else sprintf (varname,"sb_%s",suff); 
     486  for(int k=0;k<NZ;k++) 
     487    for(int j=0;j<NY;j++) 
     488      for(int i=0;i<NX;i++){ 
     489        if (t==0) vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_sa_c(0,i,j,k); 
     490        else vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_sb(0,i,j,k,t-1); 
     491      } 
     492  voncwrite(0,NZ,NY,NX,varname,ncid,dimids,vect); 
     493   
     494  //ssh 
     495  if (t==0) sprintf(varname,"sshn_c_%s",suff); 
     496  else sprintf (varname,"sshb_%s",suff); 
     497  for(int j=0;j<NY;j++) 
     498    for(int i=0;i<NX;i++){ 
     499      if (t==0)  vect[(j)*(NX)+(i)]=YS_sshn_c(0,i,j); 
     500      else vect[(j)*(NX)+(i)]=YS_sshb(0,i,j,t-1); 
     501    } 
     502  soncwrite(0,NY,NX,varname,ncid,dimids,vect); 
     503   
     504} 
     505 
     506 
     507void write_rst_var(int t,   int ncid, int dimids[]) { 
     508YREAL vect[NZ*NY*NX]; 
     509  
     510//nav_lon 
     511 for(int j=0;j<NY;j++) 
     512      for(int i=0;i<NX;i++){ 
     513        vect[(j)*(NX)+(i)]=nav_lon( i, j ); 
     514      } 
     515 sncwrite(NY,NX,"nav_lon",ncid,dimids,vect); 
     516  
     517 //nav_lat 
     518 for(int j=0;j<NY;j++) 
     519   for(int i=0;i<NX;i++){ 
     520     vect[(j)*(NX)+(i)]=nav_lat( i, j ); 
     521   } 
     522 sncwrite(NY,NX,"nav_lat",ncid,dimids,vect); 
     523  
     524 //nav_lev 
     525 for(int k=0;k<NZ;k++){ 
     526  vect[k]=nav_lev[k];   
     527} 
     528zncwrite(NZ,"nav_lev",ncid,dimids,vect); 
    434529 
    435530//time_counter 
Note: See TracChangeset for help on using the changeset viewer.