Changeset 929ae37 in flexpart.git
- Timestamp:
- Dec 15, 2016, 11:35:02 PM (7 years ago)
- Branches:
- fp9.3.1-20161214-nc4
- Children:
- 4f17d14
- Parents:
- b9970e3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
flexpart_code/fpmetbinary_mod.F90
rb9970e3 r929ae37 302 302 303 303 INTEGER :: ncret ! Return value from NetCDF calls 304 INTEGER :: ncvarid ! NetCDF variable ID 305 304 306 INTEGER :: nxmax_dimid, nymax_dimid, nzmax_dimid, nuvzmax_dimid, nwzmax_dimid 307 308 INTEGER, DIMENSION(3) :: dim3dids ! Dimension IDs for 3D arrays 305 309 306 310 ! These are used when loading in dimensions from NC file … … 316 320 317 321 CHARACTER(LEN=128) :: errmesg 322 323 INTEGER, PARAMETER :: DEF_LEVEL = 3 318 324 319 325 if (op == 'DUMP') THEN … … 336 342 337 343 338 339 340 344 ! Scalar values 341 345 WRITE(iounit) nx, ny, nxmin1, nymin1, nxfield 342 346 WRITE(iounit) nuvz, nwz, nz, nmixz, nlev_ec 343 347 WRITE(iounit) dx, dy, xlon0, ylat0, dxconst, dyconst 348 349 ncret = nf90_def_var(ncid, 'nx', NF90_INT, ncvarid) 350 ncret = nf90_put_var(ncid, ncvarid, nx) 351 352 ncret = nf90_def_var(ncid, 'ny', NF90_INT, ncvarid) 353 ncret = nf90_put_var(ncid, ncvarid, ny) 354 355 ncret = nf90_def_var(ncid, 'nxmin1', NF90_INT, ncvarid) 356 ncret = nf90_put_var(ncid, ncvarid, nxmin1) 357 358 ncret = nf90_def_var(ncid, 'nymin1', NF90_INT, ncvarid) 359 ncret = nf90_put_var(ncid, ncvarid, nymin1) 360 361 ncret = nf90_def_var(ncid, 'nxfield', NF90_INT, ncvarid) 362 ncret = nf90_put_var(ncid, ncvarid, nxfield) 363 364 ncret = nf90_def_var(ncid, 'nuvz', NF90_INT, ncvarid) 365 ncret = nf90_put_var(ncid, ncvarid, nuvz) 366 367 ncret = nf90_def_var(ncid, 'nwz', NF90_INT, ncvarid) 368 ncret = nf90_put_var(ncid, ncvarid, nwz) 369 370 ncret = nf90_def_var(ncid, 'nz', NF90_INT, ncvarid) 371 ncret = nf90_put_var(ncid, ncvarid, nz) 372 373 ncret = nf90_def_var(ncid, 'nmixz', NF90_INT, ncvarid) 374 ncret = nf90_put_var(ncid, ncvarid, nmixz) 375 376 ncret = nf90_def_var(ncid, 'nlev_', NF90_INT, ncvarid) 377 ncret = nf90_put_var(ncid, ncvarid, nlev_ec) 378 379 ncret = nf90_def_var(ncid, 'dx', NF90_FLOAT, ncvarid) 380 ncret = nf90_put_var(ncid, ncvarid, dx) 381 382 ncret = nf90_def_var(ncid, 'dy', NF90_FLOAT, ncvarid) 383 ncret = nf90_put_var(ncid, ncvarid, dy) 384 385 ncret = nf90_def_var(ncid, 'xlon0', NF90_FLOAT, ncvarid) 386 ncret = nf90_put_var(ncid, ncvarid, xlon0) 387 388 ncret = nf90_def_var(ncid, 'ylat0', NF90_FLOAT, ncvarid) 389 ncret = nf90_put_var(ncid, ncvarid, ylat0) 390 391 ncret = nf90_def_var(ncid, 'dxconst', NF90_FLOAT, ncvarid) 392 ncret = nf90_put_var(ncid, ncvarid, dxconst) 393 394 ncret = nf90_def_var(ncid, 'dyconst', NF90_FLOAT, ncvarid) 395 ncret = nf90_put_var(ncid, ncvarid, dyconst) 396 397 344 398 345 399 ! Fixed fields, static in time … … 362 416 WRITE(iounit) clouds(:,:,:,cm_index) 363 417 WRITE(iounit) cloudsh(:,:,cm_index) 418 419 dim3dids = (/nxmax_dimid, nymax_dimid, nzmax_dimid/) 420 421 ncret = nf90_def_var(ncid, 'uu', NF90_FLOAT, & 422 & dim3dids, ncvarid) 423 ncret = nf90_def_var_deflate(ncid, ncvarid, & 424 & shuffle=0, & 425 & deflate=1, & 426 & deflate_level=DEF_LEVEL) 427 ncret = nf90_put_var(ncid, ncvarid, & 428 & uu(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 429 430 ncret = nf90_def_var(ncid, 'vv', NF90_FLOAT, & 431 & dim3dids, ncvarid) 432 ncret = nf90_def_var_deflate(ncid, ncvarid, & 433 & shuffle=0, & 434 & deflate=1, & 435 & deflate_level=DEF_LEVEL) 436 ncret = nf90_put_var(ncid, ncvarid, & 437 & vv(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 438 439 ncret = nf90_def_var(ncid, 'uupol', NF90_FLOAT, & 440 & dim3dids, ncvarid) 441 ncret = nf90_def_var_deflate(ncid, ncvarid, & 442 & shuffle=0, & 443 & deflate=1, & 444 & deflate_level=DEF_LEVEL) 445 ncret = nf90_put_var(ncid, ncvarid, & 446 & uupol(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 447 448 ncret = nf90_def_var(ncid, 'vvpol', NF90_FLOAT, & 449 & dim3dids, ncvarid) 450 ncret = nf90_def_var_deflate(ncid, ncvarid, & 451 & shuffle=0, & 452 & deflate=1, & 453 & deflate_level=DEF_LEVEL) 454 ncret = nf90_put_var(ncid, ncvarid, & 455 & vvpol(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 456 457 ncret = nf90_def_var(ncid, 'ww', NF90_FLOAT, & 458 & dim3dids, ncvarid) 459 ncret = nf90_def_var_deflate(ncid, ncvarid, & 460 & shuffle=0, & 461 & deflate=1, & 462 & deflate_level=DEF_LEVEL) 463 ncret = nf90_put_var(ncid, ncvarid, & 464 & ww(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 465 466 ncret = nf90_def_var(ncid, 'tt', NF90_FLOAT, & 467 & dim3dids, ncvarid) 468 ncret = nf90_def_var_deflate(ncid, ncvarid, & 469 & shuffle=0, & 470 & deflate=1, & 471 & deflate_level=DEF_LEVEL) 472 ncret = nf90_put_var(ncid, ncvarid, & 473 & tt(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 474 475 ncret = nf90_def_var(ncid, 'qv', NF90_FLOAT, & 476 & dim3dids, ncvarid) 477 ncret = nf90_def_var_deflate(ncid, ncvarid, & 478 & shuffle=0, & 479 & deflate=1, & 480 & deflate_level=DEF_LEVEL) 481 ncret = nf90_put_var(ncid, ncvarid, & 482 & qv(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 483 484 ncret = nf90_def_var(ncid, 'pv', NF90_FLOAT, & 485 & dim3dids, ncvarid) 486 ncret = nf90_def_var_deflate(ncid, ncvarid, & 487 & shuffle=0, & 488 & deflate=1, & 489 & deflate_level=DEF_LEVEL) 490 ncret = nf90_put_var(ncid, ncvarid, & 491 & pv(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 492 493 ncret = nf90_def_var(ncid, 'rho', NF90_FLOAT, & 494 & dim3dids, ncvarid) 495 ncret = nf90_def_var_deflate(ncid, ncvarid, & 496 & shuffle=0, & 497 & deflate=1, & 498 & deflate_level=DEF_LEVEL) 499 ncret = nf90_put_var(ncid, ncvarid, & 500 & rho(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 501 502 ncret = nf90_def_var(ncid, 'drhodz', NF90_FLOAT, & 503 & dim3dids, ncvarid) 504 ncret = nf90_def_var_deflate(ncid, ncvarid, & 505 & shuffle=0, & 506 & deflate=1, & 507 & deflate_level=DEF_LEVEL) 508 ncret = nf90_put_var(ncid, ncvarid, & 509 & drhodz(0:nxmax-1, 0:nymax-1, 1:nzmax, cm_index)) 510 511 512 dim3dids = (/nxmax_dimid, nymax_dimid, nuvzmax_dimid/) 513 514 ncret = nf90_def_var(ncid, 'tth', NF90_FLOAT, & 515 & dim3dids, ncvarid) 516 ncret = nf90_def_var_deflate(ncid, ncvarid, & 517 & shuffle=0, & 518 & deflate=1, & 519 & deflate_level=DEF_LEVEL) 520 ncret = nf90_put_var(ncid, ncvarid, & 521 & tth(0:nxmax-1, 0:nymax-1, 1:nuvzmax, cm_index)) 522 523 ncret = nf90_def_var(ncid, 'qvh', NF90_FLOAT, & 524 & dim3dids, ncvarid) 525 ncret = nf90_def_var_deflate(ncid, ncvarid, & 526 & shuffle=0, & 527 & deflate=1, & 528 & deflate_level=DEF_LEVEL) 529 ncret = nf90_put_var(ncid, ncvarid, & 530 & qvh(0:nxmax-1, 0:nymax-1, 1:nuvzmax, cm_index)) 531 532 ncret = nf90_def_var(ncid, 'pplev', NF90_FLOAT, & 533 & dim3dids, ncvarid) 534 ncret = nf90_def_var_deflate(ncid, ncvarid, & 535 & shuffle=0, & 536 & deflate=1, & 537 & deflate_level=DEF_LEVEL) 538 ncret = nf90_put_var(ncid, ncvarid, & 539 & pplev(0:nxmax-1, 0:nymax-1, 1:nuvzmax, cm_index)) 540 541 542 543 364 544 365 545 ! 2d fields … … 553 733 READ(iounit) dx, dy, xlon0, ylat0, dxconst, dyconst 554 734 735 736 737 ! Get the varid , then read into scalar variable 738 ncret = nf90_inq_varid(ncid, 'nx', ncvarid) 739 ncret = nf90_get_var(ncid, ncvarid, nx) 740 741 ncret = nf90_inq_varid(ncid, 'ny', ncvarid) 742 ncret = nf90_get_var(ncid, ncvarid, ny) 743 744 ncret = nf90_inq_varid(ncid, 'nxmin1', ncvarid) 745 ncret = nf90_get_var(ncid, ncvarid, nxmin1) 746 747 ncret = nf90_inq_varid(ncid, 'nymin1', ncvarid) 748 ncret = nf90_get_var(ncid, ncvarid, nymin1) 749 750 ncret = nf90_inq_varid(ncid, 'nxfield', ncvarid) 751 ncret = nf90_get_var(ncid, ncvarid, nxfield) 752 753 ncret = nf90_inq_varid(ncid, 'nuvz', ncvarid) 754 ncret = nf90_get_var(ncid, ncvarid, nuvz) 755 756 ncret = nf90_inq_varid(ncid, 'nwz', ncvarid) 757 ncret = nf90_get_var(ncid, ncvarid, nwz) 758 759 ncret = nf90_inq_varid(ncid, 'nz', ncvarid) 760 ncret = nf90_get_var(ncid, ncvarid, nz) 761 762 ncret = nf90_inq_varid(ncid, 'nmixz', ncvarid) 763 ncret = nf90_get_var(ncid, ncvarid, nmixz) 764 765 ncret = nf90_inq_varid(ncid, 'nlev_ec', ncvarid) 766 ncret = nf90_get_var(ncid, ncvarid, nlev_ec) 767 768 ncret = nf90_inq_varid(ncid, 'dx', ncvarid) 769 ncret = nf90_get_var(ncid, ncvarid, dx) 770 771 ncret = nf90_inq_varid(ncid, 'dy', ncvarid) 772 ncret = nf90_get_var(ncid, ncvarid, dy) 773 774 ncret = nf90_inq_varid(ncid, 'xlon0', ncvarid) 775 ncret = nf90_get_var(ncid, ncvarid, xlon0) 776 777 ncret = nf90_inq_varid(ncid, 'ylat0', ncvarid) 778 ncret = nf90_get_var(ncid, ncvarid, ylat0) 779 780 ncret = nf90_inq_varid(ncid, 'dxconst', ncvarid) 781 ncret = nf90_get_var(ncid, ncvarid, dxconst) 782 783 ncret = nf90_inq_varid(ncid, 'dyconst', ncvarid) 784 ncret = nf90_get_var(ncid, ncvarid, dyconst) 785 786 787 788 789 790 555 791 ! Fixed fields, static in time 556 792 READ(iounit) oro, excessoro, lsm, xlanduse, height … … 572 808 READ(iounit) clouds(:,:,:,cm_index) 573 809 READ(iounit) cloudsh(:,:,cm_index) 810 811 812 813 814 ! Get the varid and read the variable into the array 815 ncret = nf90_inq_varid(ncid, 'uu', ncvarid) 816 ncret = nf90_get_var(ncid, ncvarid, uu) 817 818 ncret = nf90_inq_varid(ncid, 'vv', ncvarid) 819 ncret = nf90_get_var(ncid, ncvarid, vv) 820 821 ncret = nf90_inq_varid(ncid, 'uupol', ncvarid) 822 ncret = nf90_get_var(ncid, ncvarid, uupol) 823 824 ncret = nf90_inq_varid(ncid, 'vvpol', ncvarid) 825 ncret = nf90_get_var(ncid, ncvarid, vvpol) 826 827 ncret = nf90_inq_varid(ncid, 'ww', ncvarid) 828 ncret = nf90_get_var(ncid, ncvarid, ww) 829 830 ncret = nf90_inq_varid(ncid, 'tt', ncvarid) 831 ncret = nf90_get_var(ncid, ncvarid, tt) 832 833 ncret = nf90_inq_varid(ncid, 'qv', ncvarid) 834 ncret = nf90_get_var(ncid, ncvarid, qv) 835 836 ncret = nf90_inq_varid(ncid, 'pv', ncvarid) 837 ncret = nf90_get_var(ncid, ncvarid, pv) 838 839 ncret = nf90_inq_varid(ncid, 'rho', ncvarid) 840 ncret = nf90_get_var(ncid, ncvarid, rho) 841 842 ncret = nf90_inq_varid(ncid, 'drhodz', ncvarid) 843 ncret = nf90_get_var(ncid, ncvarid, drhodz) 844 845 ncret = nf90_inq_varid(ncid, 'tth', ncvarid) 846 ncret = nf90_get_var(ncid, ncvarid, tth) 847 848 ncret = nf90_inq_varid(ncid, 'qvh', ncvarid) 849 ncret = nf90_get_var(ncid, ncvarid, qvh) 850 851 ncret = nf90_inq_varid(ncid, 'pplev', ncvarid) 852 ncret = nf90_get_var(ncid, ncvarid, pplev) 853 854 855 856 857 858 859 574 860 575 861 ! 2d fields
Note: See TracChangeset
for help on using the changeset viewer.