Ignore:
Timestamp:
Apr 7, 2016, 9:17:30 AM (9 years ago)
Author:
mturbet
Message:

Generic GCM:

  • Fix buggy ouputs in 1D introduced by previous code modifications.

EM+MT

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/iniwrite_specIR.F

    r1529 r1531  
    1       SUBROUTINE iniwrite_specIR(nid,idayref,area)
     1      SUBROUTINE iniwrite_specIR(nid,idayref,area,nbplon,nbplat)
    22
    33      use radinc_h, only: L_NSPECTI
     
    3636      integer,intent(in) :: nid        ! NetCDF file ID
    3737      INTEGER*4,intent(in) :: idayref  ! date (initial date for this run)
    38       real,intent(in) :: area(nbp_lon+1,nbp_lat) ! mesh area (m2)
     38      real,intent(in) :: area(nbplon,nbplat) ! mesh area (m2)
     39      integer,intent(in) :: nbplon,nbplat ! sizes of area
    3940
    4041c   Local:
     
    4445      REAL tab_cntrl(length) ! run parameters are stored in this array
    4546      INTEGER ierr
    46       REAl :: lon_reg_ext(nbp_lon+1) ! extended longitudes
     47      REAl,ALLOCATABLE :: lon_reg_ext(:) ! extended longitudes
    4748
    4849      integer :: nvarid,idim_index,idim_rlonu,idim_rlonv
     
    5354
    5455c-----------------------------------------------------------------------
     56
     57      IF (nbp_lon*nbp_lat==1) THEN
     58        ! 1D model
     59        ALLOCATE(lon_reg_ext(1))
     60      ELSE
     61        ! 3D model
     62        ALLOCATE(lon_reg_ext(nbp_lon+1))
     63      ENDIF
    5564
    5665      DO l=1,length
     
    103112      ierr = NF_DEF_DIM (nid, "index", length, idim_index)
    104113      ierr = NF_DEF_DIM (nid, "latitude", nbp_lat, idim_rlatu)
    105       ierr = NF_DEF_DIM (nid, "longitude", nbp_lon+1, idim_rlonv)
    106       ierr = NF_DEF_DIM (nid, "IR Wavenumber",L_NSPECTI,idim_bandsIR)
     114      IF (nbp_lon*nbp_lat==1) THEN
     115        ierr = NF_DEF_DIM (nid, "longitude", 1, idim_rlonv)
     116      ELSE
     117        ierr = NF_DEF_DIM (nid, "longitude", nbp_lon+1, idim_rlonv)
     118      ENDIF
     119      ierr = NF_DEF_DIM (nid, "IR_Wavenumber",L_NSPECTI,idim_bandsIR)
    107120
    108121      ierr = NF_ENDDEF(nid)
     
    149162      lon_reg_ext(1:nbp_lon)=lon_reg(1:nbp_lon)
    150163      !add extra redundant point (180 degrees, since lon_reg starts at -180
    151       lon_reg_ext(nbp_lon+1)=-lon_reg_ext(1)
     164      IF (nbp_lon*nbp_lat/=1) THEN
     165        ! In 3D, add extra redundant point (180 degrees,
     166        ! since lon_reg starts at -180)
     167        lon_reg_ext(nbp_lon+1)=-lon_reg_ext(1)
     168      ENDIF
    152169     
    153170      ierr = NF_REDEF (nid)
     
    175192      ! define variable
    176193#ifdef NC_DOUBLE
    177       ierr=NF_DEF_VAR(nid,"IR Wavenumber",NF_DOUBLE,1,
    178      .                                idim_bandsIR,nvarid)
    179 #else
    180       ierr=NF_DEF_VAR(nid,"IR Wavenumber",NF_FLOAT,1,
     194      ierr=NF_DEF_VAR(nid,"IR_Wavenumber",NF_DOUBLE,1,
     195     .                                idim_bandsIR,nvarid)
     196#else
     197      ierr=NF_DEF_VAR(nid,"IR_Wavenumber",NF_FLOAT,1,
    181198     .                                idim_bandsIR,nvarid)
    182199#endif
     
    199216      ! define variable
    200217#ifdef NC_DOUBLE
    201       ierr=NF_DEF_VAR(nid,"IR Bandwidth",NF_DOUBLE,1,
    202      .                                idim_bandsIR,nvarid)
    203 #else
    204       ierr=NF_DEF_VAR(nid,"IR Bandwidth",NF_FLOAT,1,
     218      ierr=NF_DEF_VAR(nid,"IR_Bandwidth",NF_DOUBLE,1,
     219     .                                idim_bandsIR,nvarid)
     220#else
     221      ierr=NF_DEF_VAR(nid,"IR_Bandwidth",NF_FLOAT,1,
    205222     .                                idim_bandsIR,nvarid)
    206223#endif
Note: See TracChangeset for help on using the changeset viewer.