Changeset 4253


Ignore:
Timestamp:
Sep 20, 2022, 4:09:48 PM (20 months ago)
Author:
lguez
Message:

Replace nf_def_var by nf90_def_var

The immediate motivation is a bug fix: nf_def_var was called with a
scalar instead of array actual argument for dummy array argument
vdims. The simplest way to correct this bug is to replace by a call to
nf90_def_var.

Location:
LMDZ6/trunk/libf
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3d/guide_mod.F90

    r4252 r4253  
    17101710    USE comvert_mod, ONLY: presnivs
    17111711    use netcdf95, only: nf95_def_var, nf95_put_var
    1712     use netcdf, only: nf90_float
     1712    use netcdf, only: nf90_float, nf90_def_var
    17131713   
    17141714    IMPLICIT NONE
     
    17521752
    17531753! Creation des variables dimensions
    1754         ierr=NF_DEF_VAR(nid,"LONU",NF_FLOAT,1,id_lonu,vid_lonu)
    1755         ierr=NF_DEF_VAR(nid,"LONV",NF_FLOAT,1,id_lonv,vid_lonv)
    1756         ierr=NF_DEF_VAR(nid,"LATU",NF_FLOAT,1,id_latu,vid_latu)
    1757         ierr=NF_DEF_VAR(nid,"LATV",NF_FLOAT,1,id_latv,vid_latv)
    1758         ierr=NF_DEF_VAR(nid,"LEVEL",NF_FLOAT,1,id_lev,vid_lev)
    1759         ierr=NF_DEF_VAR(nid,"cu",NF_FLOAT,2,(/id_lonu,id_latu/),vid_cu)
    1760         ierr=NF_DEF_VAR(nid,"cv",NF_FLOAT,2,(/id_lonv,id_latv/),vid_cv)
    1761         ierr=NF_DEF_VAR(nid,"au",NF_FLOAT,2,(/id_lonu,id_latu/),vid_au)
    1762         ierr=NF_DEF_VAR(nid,"av",NF_FLOAT,2,(/id_lonv,id_latv/),vid_av)
     1754        ierr=NF90_DEF_VAR(nid,"LONU",NF90_FLOAT,id_lonu,vid_lonu)
     1755        ierr=NF90_DEF_VAR(nid,"LONV",NF90_FLOAT,id_lonv,vid_lonv)
     1756        ierr=NF90_DEF_VAR(nid,"LATU",NF90_FLOAT,id_latu,vid_latu)
     1757        ierr=NF90_DEF_VAR(nid,"LATV",NF90_FLOAT,id_latv,vid_latv)
     1758        ierr=NF90_DEF_VAR(nid,"LEVEL",NF90_FLOAT,id_lev,vid_lev)
     1759        ierr=NF90_DEF_VAR(nid,"cu",NF90_FLOAT,(/id_lonu,id_latu/),vid_cu)
     1760        ierr=NF90_DEF_VAR(nid,"cv",NF90_FLOAT,(/id_lonv,id_latv/),vid_cv)
     1761        ierr=NF90_DEF_VAR(nid,"au",NF90_FLOAT,(/id_lonu,id_latu/),vid_au)
     1762        ierr=NF90_DEF_VAR(nid,"av",NF90_FLOAT,(/id_lonv,id_latv/),vid_av)
    17631763        call nf95_def_var(nid, "alpha_T", nf90_float, (/id_lonv, id_latu/), &
    17641764             varid_alpha_t)
     
    17981798! Pressure (GCM)
    17991799        dim4=(/id_lonv,id_latu,id_lev,id_tim/)
    1800         ierr = NF_DEF_VAR(nid,"SP",NF_FLOAT,4,dim4,varid)
     1800        ierr = NF90_DEF_VAR(nid,"SP",NF90_FLOAT,dim4,varid)
    18011801! Surface pressure (guidage)
    18021802        IF (guide_P) THEN
    18031803            dim3=(/id_lonv,id_latu,id_tim/)
    1804             ierr = NF_DEF_VAR(nid,"ps",NF_FLOAT,3,dim3,varid)
     1804            ierr = NF90_DEF_VAR(nid,"ps",NF90_FLOAT,dim3,varid)
    18051805        ENDIF
    18061806! Zonal wind
    18071807        IF (guide_u) THEN
    18081808            dim4=(/id_lonu,id_latu,id_lev,id_tim/)
    1809             ierr = NF_DEF_VAR(nid,"u",NF_FLOAT,4,dim4,varid)
    1810             ierr = NF_DEF_VAR(nid,"ua",NF_FLOAT,4,dim4,varid)
    1811             ierr = NF_DEF_VAR(nid,"ucov",NF_FLOAT,4,dim4,varid)
     1809            ierr = NF90_DEF_VAR(nid,"u",NF90_FLOAT,dim4,varid)
     1810            ierr = NF90_DEF_VAR(nid,"ua",NF90_FLOAT,dim4,varid)
     1811            ierr = NF90_DEF_VAR(nid,"ucov",NF90_FLOAT,dim4,varid)
    18121812        ENDIF
    18131813! Merid. wind
    18141814        IF (guide_v) THEN
    18151815            dim4=(/id_lonv,id_latv,id_lev,id_tim/)
    1816             ierr = NF_DEF_VAR(nid,"v",NF_FLOAT,4,dim4,varid)
    1817             ierr = NF_DEF_VAR(nid,"va",NF_FLOAT,4,dim4,varid)
    1818             ierr = NF_DEF_VAR(nid,"vcov",NF_FLOAT,4,dim4,varid)
     1816            ierr = NF90_DEF_VAR(nid,"v",NF90_FLOAT,dim4,varid)
     1817            ierr = NF90_DEF_VAR(nid,"va",NF90_FLOAT,dim4,varid)
     1818            ierr = NF90_DEF_VAR(nid,"vcov",NF90_FLOAT,dim4,varid)
    18191819        ENDIF
    18201820! Pot. Temperature
    18211821        IF (guide_T) THEN
    18221822            dim4=(/id_lonv,id_latu,id_lev,id_tim/)
    1823             ierr = NF_DEF_VAR(nid,"teta",NF_FLOAT,4,dim4,varid)
     1823            ierr = NF90_DEF_VAR(nid,"teta",NF90_FLOAT,dim4,varid)
    18241824        ENDIF
    18251825! Specific Humidity
    18261826        IF (guide_Q) THEN
    18271827            dim4=(/id_lonv,id_latu,id_lev,id_tim/)
    1828             ierr = NF_DEF_VAR(nid,"q",NF_FLOAT,4,dim4,varid)
     1828            ierr = NF90_DEF_VAR(nid,"q",NF90_FLOAT,dim4,varid)
    18291829        ENDIF
    18301830       
  • LMDZ6/trunk/libf/dyn3d_common/grilles_gcm_netcdf_sub.F90

    r3803 r4253  
    1111  USE comconst_mod, ONLY: cpp, kappa, g, omeg, daysec, rad, pi
    1212  USE comvert_mod, ONLY: presnivs, preff, pa
     13  use netcdf, only: nf90_def_var, nf90_int, nf90_float
    1314 
    1415  IMPLICIT NONE
     
    9192
    9293  !   Longitudes en u
    93   status=NF_DEF_VAR(ncid_out,'lonu',NF_FLOAT,1,out_lonudim, out_lonuid)
     94  status=NF90_DEF_VAR(ncid_out,'lonu',NF90_FLOAT,out_lonudim, out_lonuid)
    9495  CALL handle_err(status)
    9596  status=NF_PUT_ATT_TEXT(ncid_out,out_lonuid,'units', 12,'degrees_east')
     
    9798
    9899  !   Longitudes en v
    99   status=NF_DEF_VAR(ncid_out,'lonv',NF_FLOAT,1,out_lonvdim, out_lonvid)
     100  status=NF90_DEF_VAR(ncid_out,'lonv',NF90_FLOAT,out_lonvdim, out_lonvid)
    100101  CALL handle_err(status)
    101102  status=NF_PUT_ATT_TEXT(ncid_out,out_lonvid,'units', 12,'degrees_east')
     
    103104
    104105  !   Latitude en u
    105   status=NF_DEF_VAR(ncid_out,'latu',NF_FLOAT,1,out_latudim, out_latuid)
     106  status=NF90_DEF_VAR(ncid_out,'latu',NF90_FLOAT,out_latudim, out_latuid)
    106107  CALL handle_err(status)
    107108  status=NF_PUT_ATT_TEXT(ncid_out,out_latuid,'units', 13,'degrees_north')
     
    109110
    110111  !  Latitude en v
    111   status=NF_DEF_VAR(ncid_out,'latv',NF_FLOAT,1,out_latvdim, out_latvid)
     112  status=NF90_DEF_VAR(ncid_out,'latv',NF90_FLOAT,out_latvdim, out_latvid)
    112113  CALL handle_err(status)
    113114  status=NF_PUT_ATT_TEXT(ncid_out,out_latvid,'units', 13,'degrees_north')
     
    117118  out_dim(1)=out_lonudim
    118119  out_dim(2)=out_latudim
    119   status=NF_DEF_VAR(ncid_out,'grille_u',NF_FLOAT,2,out_dim, out_varid)
     120  status=NF90_DEF_VAR(ncid_out,'grille_u',NF90_FLOAT,out_dim, out_varid)
    120121  CALL handle_err(status)
    121122  status=NF_PUT_ATT_TEXT(ncid_out,out_varid,'units', 6,'Kelvin')
     
    125126  out_dim(1)=out_lonvdim
    126127  out_dim(2)=out_latvdim
    127   status=NF_DEF_VAR(ncid_out,'grille_v',NF_FLOAT,2,out_dim, out_varid)
     128  status=NF90_DEF_VAR(ncid_out,'grille_v',NF90_FLOAT,out_dim, out_varid)
    128129  CALL handle_err(status)
    129130  status=NF_PUT_ATT_TEXT(ncid_out,out_varid,'units', 6,'Kelvin')
     
    133134  out_dim(1)=out_lonvdim
    134135  out_dim(2)=out_latudim
    135   status=NF_DEF_VAR(ncid_out,'grille_s',NF_FLOAT,2,out_dim, out_varid)
     136  status=NF90_DEF_VAR(ncid_out,'grille_s',NF90_FLOAT,out_dim, out_varid)
    136137  CALL handle_err(status)
    137138  status=NF_PUT_ATT_TEXT(ncid_out,out_varid,'units', 6,'Kelvin')
     
    201202  status=NF_DEF_DIM(ncid_out,'lev',llm,out_levdim)
    202203  CALL handle_err(status)
    203   status=NF_DEF_VAR(ncid_out,'presnivs',NF_FLOAT,1,out_levdim,&
     204  status=NF90_DEF_VAR(ncid_out,'presnivs',NF90_FLOAT,out_levdim,&
    204205                    presnivs_id)
    205206  CALL handle_err(status)
     
    209210  out_dim(2)=out_latudim
    210211
    211   status = nf_def_var(ncid_out,'phis',NF_FLOAT,2,out_dim,phis_id)
    212   CALL handle_err(status)
    213   status = nf_def_var(ncid_out,'aire',NF_FLOAT,2,out_dim,area_id)
    214   CALL handle_err(status)
    215   status = nf_def_var(ncid_out,'mask',NF_INT  ,2,out_dim,mask_id)
     212  status = nf90_def_var(ncid_out,'phis',NF90_FLOAT,out_dim,phis_id)
     213  CALL handle_err(status)
     214  status = nf90_def_var(ncid_out,'aire',NF90_FLOAT,out_dim,area_id)
     215  CALL handle_err(status)
     216  status = nf90_def_var(ncid_out,'mask',NF90_INT,out_dim,mask_id)
    216217  CALL handle_err(status)
    217218
  • LMDZ6/trunk/libf/phylmd/phyaqua_mod.F90

    r3579 r4253  
    573573    USE mod_phys_lmdz_transfert_para, ONLY: gather
    574574    USE phys_cal_mod, ONLY: year_len
     575    use netcdf, only: nf90_def_var, nf90_double, nf90_float
    575576    IMPLICIT NONE
    576577    include "netcdf.inc"
     
    617618
    618619#ifdef NC_DOUBLE
    619       ierr = nf_def_var(nid, 'TEMPS', nf_double, 1, ntim, id_tim)
    620 #else
    621       ierr = nf_def_var(nid, 'TEMPS', nf_float, 1, ntim, id_tim)
     620      ierr = nf90_def_var(nid, 'TEMPS', nf90_double, [ntim], id_tim)
     621#else
     622      ierr = nf90_def_var(nid, 'TEMPS', nf90_float, [ntim], id_tim)
    622623#endif
    623624      ierr = nf_put_att_text(nid, id_tim, 'title', 17, 'Jour dans l annee')
    624625
    625626#ifdef NC_DOUBLE
    626       ierr = nf_def_var(nid, 'NAT', nf_double, 2, dims, id_nat)
    627 #else
    628       ierr = nf_def_var(nid, 'NAT', nf_float, 2, dims, id_nat)
     627      ierr = nf90_def_var(nid, 'NAT', nf90_double, dims, id_nat)
     628#else
     629      ierr = nf90_def_var(nid, 'NAT', nf90_float, dims, id_nat)
    629630#endif
    630631      ierr = nf_put_att_text(nid, id_nat, 'title', 23, &
     
    632633
    633634#ifdef NC_DOUBLE
    634       ierr = nf_def_var(nid, 'SST', nf_double, 2, dims, id_sst)
    635 #else
    636       ierr = nf_def_var(nid, 'SST', nf_float, 2, dims, id_sst)
     635      ierr = nf90_def_var(nid, 'SST', nf90_double, dims, id_sst)
     636#else
     637      ierr = nf90_def_var(nid, 'SST', nf90_float, dims, id_sst)
    637638#endif
    638639      ierr = nf_put_att_text(nid, id_sst, 'title', 35, &
     
    640641
    641642#ifdef NC_DOUBLE
    642       ierr = nf_def_var(nid, 'BILS', nf_double, 2, dims, id_bils)
    643 #else
    644       ierr = nf_def_var(nid, 'BILS', nf_float, 2, dims, id_bils)
     643      ierr = nf90_def_var(nid, 'BILS', nf90_double, dims, id_bils)
     644#else
     645      ierr = nf90_def_var(nid, 'BILS', nf90_float, dims, id_bils)
    645646#endif
    646647      ierr = nf_put_att_text(nid, id_bils, 'title', 32, &
     
    648649
    649650#ifdef NC_DOUBLE
    650       ierr = nf_def_var(nid, 'ALB', nf_double, 2, dims, id_alb)
    651 #else
    652       ierr = nf_def_var(nid, 'ALB', nf_float, 2, dims, id_alb)
     651      ierr = nf90_def_var(nid, 'ALB', nf90_double, dims, id_alb)
     652#else
     653      ierr = nf90_def_var(nid, 'ALB', nf90_float, dims, id_alb)
    653654#endif
    654655      ierr = nf_put_att_text(nid, id_alb, 'title', 19, 'Albedo a la surface')
    655656
    656657#ifdef NC_DOUBLE
    657       ierr = nf_def_var(nid, 'RUG', nf_double, 2, dims, id_rug)
    658 #else
    659       ierr = nf_def_var(nid, 'RUG', nf_float, 2, dims, id_rug)
     658      ierr = nf90_def_var(nid, 'RUG', nf90_double, dims, id_rug)
     659#else
     660      ierr = nf90_def_var(nid, 'RUG', nf90_float, dims, id_rug)
    660661#endif
    661662      ierr = nf_put_att_text(nid, id_rug, 'title', 8, 'Rugosite')
    662663
    663664#ifdef NC_DOUBLE
    664       ierr = nf_def_var(nid, 'FTER', nf_double, 2, dims, id_fter)
    665 #else
    666       ierr = nf_def_var(nid, 'FTER', nf_float, 2, dims, id_fter)
     665      ierr = nf90_def_var(nid, 'FTER', nf90_double, dims, id_fter)
     666#else
     667      ierr = nf90_def_var(nid, 'FTER', nf90_float, dims, id_fter)
    667668#endif
    668669      ierr = nf_put_att_text(nid, id_fter, 'title',10,'Frac. Land')
    669670#ifdef NC_DOUBLE
    670       ierr = nf_def_var(nid, 'FOCE', nf_double, 2, dims, id_foce)
    671 #else
    672       ierr = nf_def_var(nid, 'FOCE', nf_float, 2, dims, id_foce)
     671      ierr = nf90_def_var(nid, 'FOCE', nf90_double, dims, id_foce)
     672#else
     673      ierr = nf90_def_var(nid, 'FOCE', nf90_float, dims, id_foce)
    673674#endif
    674675      ierr = nf_put_att_text(nid, id_foce, 'title',11,'Frac. Ocean')
    675676#ifdef NC_DOUBLE
    676       ierr = nf_def_var(nid, 'FSIC', nf_double, 2, dims, id_fsic)
    677 #else
    678       ierr = nf_def_var(nid, 'FSIC', nf_float, 2, dims, id_fsic)
     677      ierr = nf90_def_var(nid, 'FSIC', nf90_double, dims, id_fsic)
     678#else
     679      ierr = nf90_def_var(nid, 'FSIC', nf90_float, dims, id_fsic)
    679680#endif
    680681      ierr = nf_put_att_text(nid, id_fsic, 'title',13,'Frac. Sea Ice')
    681682#ifdef NC_DOUBLE
    682       ierr = nf_def_var(nid, 'FLIC', nf_double, 2, dims, id_flic)
    683 #else
    684       ierr = nf_def_var(nid, 'FLIC', nf_float, 2, dims, id_flic)
     683      ierr = nf90_def_var(nid, 'FLIC', nf90_double, dims, id_flic)
     684#else
     685      ierr = nf90_def_var(nid, 'FLIC', nf90_float, dims, id_flic)
    685686#endif
    686687      ierr = nf_put_att_text(nid, id_flic, 'title',14,'Frac. Land Ice')
Note: See TracChangeset for help on using the changeset viewer.