Changeset 7 for trunk/include/meshmask.h
- Timestamp:
- 03/07/11 11:49:01 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/meshmask.h
r6 r7 1 #define nav_lon( i, j ) (nav_lon[(j)*(NX)+(i)]) 2 #define nav_lat( i, j ) (nav_lat[(j)*(NX)+(i)]) 1 3 #define e1u( i, j ) (e1u[(j)*(NX)+(i)]) 2 4 #define e2u( i, j ) (e2u[(j)*(NX)+(i)]) … … 20 22 // tous les indices commencent de 0 21 23 //domzgr_substitute.h90 key_zco 24 # define nav_lev( i , j , k ) nav_lev[k] 22 25 # define fsdept( i , j , k ) gdept_0[k] 23 26 # define fsdepw( i , j , k ) gdepw_0[k] … … 52 55 # define fsahmv(i,j,k) ahm0 53 56 57 double nav_lon[NY*NX]; // from mesh_mask.nc 58 double nav_lat[NY*NX]; // from mesh_mask.nc 54 59 double e1u[NY*NX]; // from mesh_mask.nc 55 60 double e2u[NY*NX]; // from mesh_mask.nc … … 60 65 double e1f[NY*NX]; // from mesh_mask.nc 61 66 double e2f[NY*NX]; // from mesh_mask.nc 67 double nav_lev[NZ]; // from mesh_mask.nc 62 68 double e3t_0[NZ]; // from mesh_mask.nc 63 69 double e3w_0[NZ]; // from mesh_mask.nc … … 81 87 char const *mesh_mask_file = PATH_NCFILES"/mesh_mask.nc"; 82 88 int mesh_mask_file_id; 89 int nav_lon_id, nav_lat_id, nav_lev_id; //Utiliser juste pour info 83 90 int e1u_id,e2u_id,e1v_id,e2v_id,e1t_id,e2t_id,e1f_id,e2f_id,e3t_0_id,e3w_0_id; 84 91 int mbathy_id,gphit_id,gphiu_id,gphiv_id,gphif_id,gdept_0_id,gdepw_0_id; … … 106 113 107 114 115 108 116 //Ecriture du netcdf 109 117 void write_rst_global_att(int ncid); //Ecrit les attributs globaux du restart standard 110 118 void voncwrite(int t,int znbval,int ynbval, int xnbval, char const *var_name,int ncid,int dimids[], YREAL vect[]); 119 void soncwrite(int t,int ynbval, int xnbval, char const *var_name,int ncid,int dimids[], YREAL vect[]); 120 void zoncwrite(int t,int znbval,char const *var_name,int ncid,int dimids[], YREAL vect[]); 121 void zncwrite(int znbval,char const *var_name,int ncid,int dimids[], YREAL vect[]); 122 void sncwrite(int ynbval, int xnbval, char const *var_name,int ncid,int dimids[], YREAL vect[]); 111 123 void define_dim(int ncid, int dimid[]); 112 124 //défini les dimensions en x,y,z, et t (unlimited), … … 119 131 mesh_mask_file_id=Ouvre_nc(mesh_mask_file); 120 132 133 nav_lon_id=Var_id(mesh_mask_file_id,"nav_lon"); 134 snclire(NY,NX, mesh_mask_file_id, nav_lon_id,nav_lon); 135 136 nav_lat_id=Var_id(mesh_mask_file_id,"nav_lat"); 137 snclire(NY,NX, mesh_mask_file_id, nav_lat_id,nav_lat); 138 121 139 e1u_id=Var_id(mesh_mask_file_id,"e1u"); 122 140 sonclire(0, NY,NX, mesh_mask_file_id, e1u_id,e1u); … … 181 199 bmask_id=Var_id(mesh_mask_file_id,"bmask"); 182 200 sonclire(0, NY,NX, mesh_mask_file_id, bmask_id,bmask); 201 202 nav_lev_id=Var_id(mesh_mask_file_id,"nav_lev"); 203 znclire(NZ, mesh_mask_file_id, nav_lev_id,nav_lev); 183 204 184 205 gdept_0_id=Var_id(mesh_mask_file_id,"gdept_0"); … … 358 379 //dimid={t_id,z_id,y_id,x_id}; 359 380 { 360 381 nc_redef(ncid); 361 382 nc_def_dim(ncid,"x",NX,&dimid[3]); 362 383 nc_def_dim(ncid,"y",NY,&dimid[2]); 363 384 nc_def_dim(ncid,"z",NZ,&dimid[1]); 364 385 nc_def_dim(ncid,"t",NC_UNLIMITED,&dimid[0]); 365 386 nc_enddef(ncid); 366 387 367 388 368 389 } 390 391 void write_rst_var(int t, int ncid, int dimids[]) { 392 YREAL vect[NZ*NY*NX]; 393 394 //nav_lon 395 for(int j=0;j<NY;j++) 396 for(int i=0;i<NX;i++){ 397 vect[(j)*(NX)+(i)]=nav_lon( i, j ); 398 } 399 sncwrite(NY,NX,"nav_lon",ncid,dimids,vect); 400 401 //nav_lat 402 for(int j=0;j<NY;j++) 403 for(int i=0;i<NX;i++){ 404 vect[(j)*(NX)+(i)]=nav_lat( i, j ); 405 } 406 sncwrite(NY,NX,"nav_lat",ncid,dimids,vect); 407 408 //nav_lev 409 for(int k=0;k<NZ;k++){ 410 vect[k]=nav_lev[k]; 411 } 412 zncwrite(NZ,"nav_lev",ncid,dimids,vect); 413 414 //gcx 415 for(int j=0;j<NY;j++) 416 for(int i=0;i<NX;i++){ 417 vect[(j)*(NX)+(i)]=YS_gcx2(0,i,j,t); 418 } 419 soncwrite(0,NY,NX,"gcx",ncid,dimids,vect); 420 421 //gcxb 422 for(int j=0;j<NY;j++) 423 for(int i=0;i<NX;i++){ 424 vect[(j)*(NX)+(i)]=YS_gcx2(0,i,j,t-1); 425 } 426 soncwrite(0,NY,NX,"gcxb",ncid,dimids,vect); 427 428 //sshb 429 for(int j=0;j<NY;j++) 430 for(int i=0;i<NX;i++){ 431 vect[(j)*(NX)+(i)]=YS_sshb(0,i,j,t); 432 } 433 soncwrite(0,NY,NX,"sshb",ncid,dimids,vect); 434 435 //sshn 436 for(int j=0;j<NY;j++) 437 for(int i=0;i<NX;i++){ 438 vect[(j)*(NX)+(i)]=YS_sshn(0,i,j,t); 439 } 440 soncwrite(0,NY,NX,"sshn",ncid,dimids,vect); 441 442 //ub 443 for(int k=0;k<NZ;k++) 444 for(int j=0;j<NY;j++) 445 for(int i=0;i<NX;i++){ 446 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_ub(0,i,j,k,t); 447 } 448 voncwrite(0,NZ,NY,NX,"ub",ncid,dimids,vect); 449 450 //vb 451 for(int k=0;k<NZ;k++) 452 for(int j=0;j<NY;j++) 453 for(int i=0;i<NX;i++){ 454 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_vb(0,i,j,k,t); 455 } 456 voncwrite(0,NZ,NY,NX,"vb",ncid,dimids,vect); 457 458 //tb 459 for(int k=0;k<NZ;k++) 460 for(int j=0;j<NY;j++) 461 for(int i=0;i<NX;i++){ 462 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_tb(0,i,j,k,t); 463 } 464 voncwrite(0,NZ,NY,NX,"tb",ncid,dimids,vect); 465 466 //sb 467 for(int k=0;k<NZ;k++) 468 for(int j=0;j<NY;j++) 469 for(int i=0;i<NX;i++){ 470 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_sb(0,i,j,k,t); 471 } 472 voncwrite(0,NZ,NY,NX,"sb",ncid,dimids,vect); 473 474 //rotb 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 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_rotn(0,i,j,k,t-1); 479 } 480 voncwrite(0,NZ,NY,NX,"rotb",ncid,dimids,vect); 481 482 //hdivb 483 for(int k=0;k<NZ;k++) 484 for(int j=0;j<NY;j++) 485 for(int i=0;i<NX;i++){ 486 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_hdivn(0,i,j,k,t-1); 487 } 488 voncwrite(0,NZ,NY,NX,"hdivb",ncid,dimids,vect); 489 490 //un 491 for(int k=0;k<NZ;k++) 492 for(int j=0;j<NY;j++) 493 for(int i=0;i<NX;i++){ 494 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_ua(0,i,j,k,t); 495 } 496 voncwrite(0,NZ,NY,NX,"un",ncid,dimids,vect); 497 498 //vn 499 for(int k=0;k<NZ;k++) 500 for(int j=0;j<NY;j++) 501 for(int i=0;i<NX;i++){ 502 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_va(0,i,j,k,t); 503 } 504 voncwrite(0,NZ,NY,NX,"vn",ncid,dimids,vect); 505 506 //tn 507 for(int k=0;k<NZ;k++) 508 for(int j=0;j<NY;j++) 509 for(int i=0;i<NX;i++){ 510 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_ta(0,i,j,k,t); 511 } 512 voncwrite(0,NZ,NY,NX,"tn",ncid,dimids,vect); 513 514 //sn 515 for(int k=0;k<NZ;k++) 516 for(int j=0;j<NY;j++) 517 for(int i=0;i<NX;i++){ 518 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_sa(0,i,j,k,t); 519 } 520 voncwrite(0,NZ,NY,NX,"sn",ncid,dimids,vect); 521 522 //rotn 523 for(int k=0;k<NZ;k++) 524 for(int j=0;j<NY;j++) 525 for(int i=0;i<NX;i++){ 526 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_rotn(0,i,j,k,t); 527 } 528 voncwrite(0,NZ,NY,NX,"rotn",ncid,dimids,vect); 529 530 //hdivn 531 for(int k=0;k<NZ;k++) 532 for(int j=0;j<NY;j++) 533 for(int i=0;i<NX;i++){ 534 vect[(k)*(NY*NX)+(j)*(NX)+(i)]=YS_hdivn(0,i,j,k,t); 535 } 536 voncwrite(0,NZ,NY,NX,"hdivn",ncid,dimids,vect); 537 538 539 } 540 541 369 542 370 543 void write_rst_global_att(int ncid) {
Note: See TracChangeset
for help on using the changeset viewer.