Ignore:
Timestamp:
Oct 24, 2024, 1:55:38 PM (8 days ago)
Author:
abarral
Message:

Replace F77 netcdf library by F90 netcdf library

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/phyaqua_mod.f90

    r5268 r5270  
    517517    IMPLICIT NONE
    518518
    519     include "netcdf.inc"
    520 
    521519    INTEGER, INTENT (IN) :: klon
    522520    REAL, INTENT (IN) :: phy_nat(klon, 360)
     
    572570    USE mod_phys_lmdz_transfert_para, ONLY: gather
    573571    USE phys_cal_mod, ONLY: year_len
    574     use netcdf, only: nf90_def_var, nf90_double, nf90_float, nf90_put_var
     572    USE netcdf, ONLY: nf90_def_var, nf90_put_var, nf90_get_var, nf90_strerror, nf90_close, &
     573            nf90_enddef, nf90_put_att, nf90_unlimited, nf90_noerr, nf90_global, nf90_clobber, &
     574            nf90_64bit_offset, nf90_def_dim, nf90_create
    575575    USE lmdz_cppkeys_wrapper, ONLY: nf90_format
    576576    IMPLICIT NONE
    577     include "netcdf.inc"
    578577
    579578    INTEGER, INTENT (IN) :: klon
     
    606605      PRINT *, 'writelim: Ecriture du fichier limit'
    607606
    608       ierr = nf_create('limit.nc', IOR(NF_CLOBBER,NF_64BIT_OFFSET), nid)
    609 
    610       ierr = nf_put_att_text(nid, nf_global, 'title', 30, &
    611         'Fichier conditions aux limites')
    612       ! !        ierr = NF_DEF_DIM (nid, "points_physiques", klon, ndim)
    613       ierr = nf_def_dim(nid, 'points_physiques', klon_glo, ndim)
    614       ierr = nf_def_dim(nid, 'time', nf_unlimited, ntim)
     607      ierr = nf90_create('limit.nc', IOR(nf90_clobber,nf90_64bit_offset), nid)
     608
     609      ierr = nf90_put_att(nid, nf90_global, 'title', 'Fichier conditions aux limites')
     610      ! !        ierr = nf90_def_dim (nid, "points_physiques", klon, ndim)
     611      ierr = nf90_def_dim(nid, 'points_physiques', klon_glo, ndim)
     612      ierr = nf90_def_dim(nid, 'time', nf90_unlimited, ntim)
    615613
    616614      dims(1) = ndim
     
    618616
    619617      ierr = nf90_def_var(nid, 'TEMPS', nf90_format, [ntim], id_tim)
    620       ierr = nf_put_att_text(nid, id_tim, 'title', 17, 'Jour dans l annee')
     618      ierr = nf90_put_att(nid, id_tim, 'title', 'Jour dans l annee')
    621619
    622620      ierr = nf90_def_var(nid, 'NAT', nf90_format, dims, id_nat)
    623       ierr = nf_put_att_text(nid, id_nat, 'title', 23, &
    624         'Nature du sol (0,1,2,3)')
     621      ierr = nf90_put_att(nid, id_nat, 'title', 'Nature du sol (0,1,2,3)')
    625622
    626623      ierr = nf90_def_var(nid, 'SST', nf90_format, dims, id_sst)
    627       ierr = nf_put_att_text(nid, id_sst, 'title', 35, &
    628         'Temperature superficielle de la mer')
     624      ierr = nf90_put_att(nid, id_sst, 'title', 'Temperature superficielle de la mer')
    629625
    630626      ierr = nf90_def_var(nid, 'BILS', nf90_format, dims, id_bils)
    631       ierr = nf_put_att_text(nid, id_bils, 'title', 32, &
    632         'Reference flux de chaleur au sol')
     627      ierr = nf90_put_att(nid, id_bils, 'title', 'Reference flux de chaleur au sol')
    633628
    634629      ierr = nf90_def_var(nid, 'ALB', nf90_format, dims, id_alb)
    635       ierr = nf_put_att_text(nid, id_alb, 'title', 19, 'Albedo a la surface')
     630      ierr = nf90_put_att(nid, id_alb, 'title', 'Albedo a la surface')
    636631
    637632      ierr = nf90_def_var(nid, 'RUG', nf90_format, dims, id_rug)
    638       ierr = nf_put_att_text(nid, id_rug, 'title', 8, 'Rugosite')
     633      ierr = nf90_put_att(nid, id_rug, 'title', 'Rugosite')
    639634
    640635      ierr = nf90_def_var(nid, 'FTER', nf90_format, dims, id_fter)
    641       ierr = nf_put_att_text(nid, id_fter, 'title',10,'Frac. Land')
     636      ierr = nf90_put_att(nid, id_fter, 'title','Frac. Land')
    642637      ierr = nf90_def_var(nid, 'FOCE', nf90_format, dims, id_foce)
    643       ierr = nf_put_att_text(nid, id_foce, 'title',11,'Frac. Ocean')
     638      ierr = nf90_put_att(nid, id_foce, 'title','Frac. Ocean')
    644639      ierr = nf90_def_var(nid, 'FSIC', nf90_format, dims, id_fsic)
    645       ierr = nf_put_att_text(nid, id_fsic, 'title',13,'Frac. Sea Ice')
     640      ierr = nf90_put_att(nid, id_fsic, 'title','Frac. Sea Ice')
    646641      ierr = nf90_def_var(nid, 'FLIC', nf90_format, dims, id_flic)
    647       ierr = nf_put_att_text(nid, id_flic, 'title',14,'Frac. Land Ice')
    648 
    649       ierr = nf_enddef(nid)
    650       IF (ierr/=nf_noerr) THEN
     642      ierr = nf90_put_att(nid, id_flic, 'title','Frac. Land Ice')
     643
     644      ierr = nf90_enddef(nid)
     645      IF (ierr/=nf90_noerr) THEN
    651646        WRITE (*, *) 'writelim error: failed to end define mode'
    652         WRITE (*, *) nf_strerror(ierr)
     647        WRITE (*, *) nf90_strerror(ierr)
    653648      END IF
    654649
     
    657652      DO k = 1, year_len
    658653        ierr = nf90_put_var(nid, id_tim, k, [k])
    659         IF (ierr/=nf_noerr) THEN
     654        IF (ierr/=nf90_noerr) THEN
    660655          WRITE (*, *) 'writelim error with temps(k),k=', k
    661           WRITE (*, *) nf_strerror(ierr)
     656          WRITE (*, *) nf90_strerror(ierr)
    662657        END IF
    663658      END DO
     
    670665    IF (is_master) THEN
    671666      ierr = nf90_put_var(nid, id_nat, phy_glo)
    672       IF (ierr/=nf_noerr) THEN
     667      IF (ierr/=nf90_noerr) THEN
    673668        WRITE (*, *) 'writelim error with phy_nat'
    674         WRITE (*, *) nf_strerror(ierr)
     669        WRITE (*, *) nf90_strerror(ierr)
    675670      END IF
    676671    END IF
     
    679674    IF (is_master) THEN
    680675      ierr = nf90_put_var(nid, id_sst, phy_glo)
    681       IF (ierr/=nf_noerr) THEN
     676      IF (ierr/=nf90_noerr) THEN
    682677        WRITE (*, *) 'writelim error with phy_sst'
    683         WRITE (*, *) nf_strerror(ierr)
     678        WRITE (*, *) nf90_strerror(ierr)
    684679      END IF
    685680    END IF
     
    688683    IF (is_master) THEN
    689684      ierr = nf90_put_var(nid, id_bils, phy_glo)
    690       IF (ierr/=nf_noerr) THEN
     685      IF (ierr/=nf90_noerr) THEN
    691686        WRITE (*, *) 'writelim error with phy_bil'
    692         WRITE (*, *) nf_strerror(ierr)
     687        WRITE (*, *) nf90_strerror(ierr)
    693688      END IF
    694689    END IF
     
    697692    IF (is_master) THEN
    698693      ierr = nf90_put_var(nid, id_alb, phy_glo)
    699       IF (ierr/=nf_noerr) THEN
     694      IF (ierr/=nf90_noerr) THEN
    700695        WRITE (*, *) 'writelim error with phy_alb'
    701         WRITE (*, *) nf_strerror(ierr)
     696        WRITE (*, *) nf90_strerror(ierr)
    702697      END IF
    703698    END IF
     
    706701    IF (is_master) THEN
    707702      ierr = nf90_put_var(nid, id_rug, phy_glo)
    708       IF (ierr/=nf_noerr) THEN
     703      IF (ierr/=nf90_noerr) THEN
    709704        WRITE (*, *) 'writelim error with phy_rug'
    710         WRITE (*, *) nf_strerror(ierr)
     705        WRITE (*, *) nf90_strerror(ierr)
    711706      END IF
    712707    END IF
     
    715710    IF (is_master) THEN
    716711      ierr = nf90_put_var(nid, id_fter, phy_glo)
    717       IF (ierr/=nf_noerr) THEN
     712      IF (ierr/=nf90_noerr) THEN
    718713        WRITE (*, *) 'writelim error with phy_fter'
    719         WRITE (*, *) nf_strerror(ierr)
     714        WRITE (*, *) nf90_strerror(ierr)
    720715      END IF
    721716    END IF
     
    724719    IF (is_master) THEN
    725720      ierr = nf90_put_var(nid, id_foce, phy_glo)
    726       IF (ierr/=nf_noerr) THEN
     721      IF (ierr/=nf90_noerr) THEN
    727722        WRITE (*, *) 'writelim error with phy_foce'
    728         WRITE (*, *) nf_strerror(ierr)
     723        WRITE (*, *) nf90_strerror(ierr)
    729724      END IF
    730725    END IF
     
    733728    IF (is_master) THEN
    734729      ierr = nf90_put_var(nid, id_fsic, phy_glo)
    735       IF (ierr/=nf_noerr) THEN
     730      IF (ierr/=nf90_noerr) THEN
    736731        WRITE (*, *) 'writelim error with phy_fsic'
    737         WRITE (*, *) nf_strerror(ierr)
     732        WRITE (*, *) nf90_strerror(ierr)
    738733      END IF
    739734    END IF
     
    742737    IF (is_master) THEN
    743738      ierr = nf90_put_var(nid, id_flic, phy_glo)
    744       IF (ierr/=nf_noerr) THEN
     739      IF (ierr/=nf90_noerr) THEN
    745740        WRITE (*, *) 'writelim error with phy_flic'
    746         WRITE (*, *) nf_strerror(ierr)
     741        WRITE (*, *) nf90_strerror(ierr)
    747742      END IF
    748743    END IF
     
    750745    ! close file:
    751746    IF (is_master) THEN
    752       ierr = nf_close(nid)
     747      ierr = nf90_close(nid)
    753748    END IF
    754749
Note: See TracChangeset for help on using the changeset viewer.