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

Replace F77 netcdf library by F90 netcdf library

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmdiso/phyaqua_mod.F90

    r5249 r5270  
    539539    IMPLICIT NONE
    540540
    541     include "netcdf.inc"
    542 
    543541    INTEGER, INTENT (IN) :: klon
    544542    REAL, INTENT (IN) :: phy_nat(klon, 360)
     
    593591    USE mod_phys_lmdz_transfert_para, ONLY: gather
    594592    USE phys_cal_mod, ONLY: year_len
    595     USE netcdf, ONLY: nf90_put_var, nf90_def_var
     593    USE netcdf, ONLY: nf90_clobber, nf90_close, nf90_noerr, nf90_strerror, nf90_put_att, nf90_def_var, &
     594            nf90_def_dim, nf90_create, nf90_put_var, nf90_unlimited, nf90_global, nf90_64bit_offset, &
     595            nf90_enddef
    596596    USE lmdz_cppkeys_wrapper, ONLY: nf90_format
    597597    IMPLICIT NONE
    598     include "netcdf.inc"
    599598
    600599    INTEGER, INTENT (IN) :: klon
     
    627626      PRINT *, 'writelim: Ecriture du fichier limit'
    628627
    629       ierr = nf_create('limit.nc', IOR(NF_CLOBBER,NF_64BIT_OFFSET), nid)
    630 
    631       ierr = nf_put_att_text(nid, nf_global, 'title', 30, &
    632         'Fichier conditions aux limites')
    633       ! !        ierr = NF_DEF_DIM (nid, "points_physiques", klon, ndim)
    634       ierr = nf_def_dim(nid, 'points_physiques', klon_glo, ndim)
    635       ierr = nf_def_dim(nid, 'time', nf_unlimited, ntim)
     628      ierr = nf90_create('limit.nc', IOR(nf90_clobber,nf90_64bit_offset), nid)
     629
     630      ierr = nf90_put_att(nid, nf90_global, 'title', 'Fichier conditions aux limites')
     631      ! !        ierr = nf90_def_dim (nid, "points_physiques", klon, ndim)
     632      ierr = nf90_def_dim(nid, 'points_physiques', klon_glo, ndim)
     633      ierr = nf90_def_dim(nid, 'time', nf90_unlimited, ntim)
    636634
    637635      dims(1) = ndim
     
    639637
    640638      ierr = nf90_def_var(nid, 'TEMPS', nf90_format, ntim, id_tim)
    641       ierr = nf_put_att_text(nid, id_tim, 'title', 17, 'Jour dans l annee')
     639      ierr = nf90_put_att(nid, id_tim, 'title', 'Jour dans l annee')
    642640
    643641      ierr = nf90_def_var(nid, 'NAT', nf90_format, dims, id_nat)
    644       ierr = nf_put_att_text(nid, id_nat, 'title', 23, &
    645         'Nature du sol (0,1,2,3)')
     642      ierr = nf90_put_att(nid, id_nat, 'title', 'Nature du sol (0,1,2,3)')
    646643
    647644      ierr = nf90_def_var(nid, 'SST', nf90_format, dims, id_sst)
    648       ierr = nf_put_att_text(nid, id_sst, 'title', 35, &
    649         'Temperature superficielle de la mer')
     645      ierr = nf90_put_att(nid, id_sst, 'title', 'Temperature superficielle de la mer')
    650646
    651647      ierr = nf90_def_var(nid, 'BILS', nf90_format, dims, id_bils)
    652       ierr = nf_put_att_text(nid, id_bils, 'title', 32, &
    653         'Reference flux de chaleur au sol')
     648      ierr = nf90_put_att(nid, id_bils, 'title', 'Reference flux de chaleur au sol')
    654649
    655650      ierr = nf90_def_var(nid, 'ALB', nf90_format, dims, id_alb)
    656       ierr = nf_put_att_text(nid, id_alb, 'title', 19, 'Albedo a la surface')
     651      ierr = nf90_put_att(nid, id_alb, 'title', 'Albedo a la surface')
    657652
    658653      ierr = nf90_def_var(nid, 'RUG', nf90_format, dims, id_rug)
    659       ierr = nf_put_att_text(nid, id_rug, 'title', 8, 'Rugosite')
     654      ierr = nf90_put_att(nid, id_rug, 'title', 'Rugosite')
    660655
    661656      ierr = nf90_def_var(nid, 'FTER', nf90_format, dims, id_fter)
    662       ierr = nf_put_att_text(nid, id_fter, 'title',10,'Frac. Land')
     657      ierr = nf90_put_att(nid, id_fter, 'title','Frac. Land')
    663658      ierr = nf90_def_var(nid, 'FOCE', nf90_format, dims, id_foce)
    664       ierr = nf_put_att_text(nid, id_foce, 'title',11,'Frac. Ocean')
     659      ierr = nf90_put_att(nid, id_foce, 'title','Frac. Ocean')
    665660      ierr = nf90_def_var(nid, 'FSIC', nf90_format, dims, id_fsic)
    666       ierr = nf_put_att_text(nid, id_fsic, 'title',13,'Frac. Sea Ice')
     661      ierr = nf90_put_att(nid, id_fsic, 'title','Frac. Sea Ice')
    667662      ierr = nf90_def_var(nid, 'FLIC', nf90_format, dims, id_flic)
    668       ierr = nf_put_att_text(nid, id_flic, 'title',14,'Frac. Land Ice')
    669 
    670       ierr = nf_enddef(nid)
    671       IF (ierr/=nf_noerr) THEN
     663      ierr = nf90_put_att(nid, id_flic, 'title','Frac. Land Ice')
     664
     665      ierr = nf90_enddef(nid)
     666      IF (ierr/=nf90_noerr) THEN
    672667        WRITE (*, *) 'writelim error: failed to end define mode'
    673         WRITE (*, *) nf_strerror(ierr)
     668        WRITE (*, *) nf90_strerror(ierr)
    674669      END IF
    675670
     
    678673      DO k = 1, year_len
    679674        ierr = nf90_put_var(nid, id_tim, k, [k])
    680         IF (ierr/=nf_noerr) THEN
     675        IF (ierr/=nf90_noerr) THEN
    681676          WRITE (*, *) 'writelim error with temps(k),k=', k
    682           WRITE (*, *) nf_strerror(ierr)
     677          WRITE (*, *) nf90_strerror(ierr)
    683678        END IF
    684679      END DO
     
    691686    IF (is_master) THEN
    692687      ierr = nf90_put_var(nid, id_nat, phy_glo)
    693       IF (ierr/=nf_noerr) THEN
     688      IF (ierr/=nf90_noerr) THEN
    694689        WRITE (*, *) 'writelim error with phy_nat'
    695         WRITE (*, *) nf_strerror(ierr)
     690        WRITE (*, *) nf90_strerror(ierr)
    696691      END IF
    697692    END IF
     
    700695    IF (is_master) THEN
    701696      ierr = nf90_put_var(nid, id_sst, phy_glo)
    702       IF (ierr/=nf_noerr) THEN
     697      IF (ierr/=nf90_noerr) THEN
    703698        WRITE (*, *) 'writelim error with phy_sst'
    704         WRITE (*, *) nf_strerror(ierr)
     699        WRITE (*, *) nf90_strerror(ierr)
    705700      END IF
    706701    END IF
     
    709704    IF (is_master) THEN
    710705      ierr = nf90_put_var(nid, id_bils, phy_glo)
    711       IF (ierr/=nf_noerr) THEN
     706      IF (ierr/=nf90_noerr) THEN
    712707        WRITE (*, *) 'writelim error with phy_bil'
    713         WRITE (*, *) nf_strerror(ierr)
     708        WRITE (*, *) nf90_strerror(ierr)
    714709      END IF
    715710    END IF
     
    718713    IF (is_master) THEN
    719714      ierr = nf90_put_var(nid, id_alb, phy_glo)
    720       IF (ierr/=nf_noerr) THEN
     715      IF (ierr/=nf90_noerr) THEN
    721716        WRITE (*, *) 'writelim error with phy_alb'
    722         WRITE (*, *) nf_strerror(ierr)
     717        WRITE (*, *) nf90_strerror(ierr)
    723718      END IF
    724719    END IF
     
    727722    IF (is_master) THEN
    728723      ierr = nf90_put_var(nid, id_rug, phy_glo)
    729       IF (ierr/=nf_noerr) THEN
     724      IF (ierr/=nf90_noerr) THEN
    730725        WRITE (*, *) 'writelim error with phy_rug'
    731         WRITE (*, *) nf_strerror(ierr)
     726        WRITE (*, *) nf90_strerror(ierr)
    732727      END IF
    733728    END IF
     
    736731    IF (is_master) THEN
    737732      ierr = nf90_put_var(nid, id_fter, phy_glo)
    738       IF (ierr/=nf_noerr) THEN
     733      IF (ierr/=nf90_noerr) THEN
    739734        WRITE (*, *) 'writelim error with phy_fter'
    740         WRITE (*, *) nf_strerror(ierr)
     735        WRITE (*, *) nf90_strerror(ierr)
    741736      END IF
    742737    END IF
     
    745740    IF (is_master) THEN
    746741      ierr = nf90_put_var(nid, id_foce, phy_glo)
    747       IF (ierr/=nf_noerr) THEN
     742      IF (ierr/=nf90_noerr) THEN
    748743        WRITE (*, *) 'writelim error with phy_foce'
    749         WRITE (*, *) nf_strerror(ierr)
     744        WRITE (*, *) nf90_strerror(ierr)
    750745      END IF
    751746    END IF
     
    754749    IF (is_master) THEN
    755750      ierr = nf90_put_var(nid, id_fsic, phy_glo)
    756       IF (ierr/=nf_noerr) THEN
     751      IF (ierr/=nf90_noerr) THEN
    757752        WRITE (*, *) 'writelim error with phy_fsic'
    758         WRITE (*, *) nf_strerror(ierr)
     753        WRITE (*, *) nf90_strerror(ierr)
    759754      END IF
    760755    END IF
     
    763758    IF (is_master) THEN
    764759      ierr = nf90_put_var(nid, id_flic, phy_glo)
    765       IF (ierr/=nf_noerr) THEN
     760      IF (ierr/=nf90_noerr) THEN
    766761        WRITE (*, *) 'writelim error with phy_flic'
    767         WRITE (*, *) nf_strerror(ierr)
     762        WRITE (*, *) nf90_strerror(ierr)
    768763      END IF
    769764    END IF
     
    771766    ! close file:
    772767    IF (is_master) THEN
    773       ierr = nf_close(nid)
     768      ierr = nf90_close(nid)
    774769    END IF
    775770
Note: See TracChangeset for help on using the changeset viewer.