Changeset 3984 for LMDZ6/trunk


Ignore:
Timestamp:
Sep 21, 2021, 6:55:37 PM (3 years ago)
Author:
evignon
Message:

inclusion de messages d'erreur dans guide_loc_mod.F90
pour que le modele stoppe quand les dimensions des fichiers de guidage
ne correspondent pas aux dimensions de la grille de LMDZ.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3dmem/guide_loc_mod.F90

    r3982 r3984  
    1111  USE getparam
    1212  USE Write_Field_loc
    13   use netcdf, only: nf90_nowrite, nf90_open, nf90_inq_varid, nf90_close
     13  use netcdf, only: nf90_nowrite, nf90_open, nf90_inq_varid, nf90_close, &
     14                    nf90_inq_dimid, nf90_inquire_dimension
    1415  USE parallel_lmdz
    1516  USE pres2lev_mod
     
    8384    CHARACTER (len = 80)   :: abort_message
    8485    CHARACTER (len = 20)   :: modname = 'guide_init'
     86    CHARACTER (len = 20)   :: namedim
    8587
    8688! ---------------------------------------------
     
    185187          endif
    186188       endif
     189
    187190    elseif (guide_u) then
    188191       if (ncidpl.eq.-99) then
     
    192195             CALL abort_gcm(modname,abort_message,1)
    193196          endif
     197         
    194198       endif
     199
     200
    195201    elseif (guide_v) then
    196202       if (ncidpl.eq.-99) then
     
    201207          endif
    202208       endif
     209
     210   
    203211    elseif (guide_T) then
    204212       if (ncidpl.eq.-99) then
     
    209217          endif
    210218       endif
     219
     220
     221
    211222    elseif (guide_Q) then
    212223       if (ncidpl.eq.-99) then
     
    217228          endif
    218229       endif
     230
     231
    219232    endif
    220233    error=NF_INQ_DIMID(ncidpl,'LEVEL',rid)
     
    15551568    INTEGER, SAVE         :: ncidu,varidu,ncidv,varidv,ncidp,varidp
    15561569    INTEGER, SAVE         :: ncidQ,varidQ,ncidt,varidt,ncidps,varidps
    1557     INTEGER               :: ncidpl,varidpl,varidap,varidbp
     1570    INTEGER               :: ncidpl,varidpl,varidap,varidbp,dimid,lendim
    15581571! Variables auxiliaires NetCDF:
    15591572    INTEGER, DIMENSION(4) :: start,count
     
    15611574    CHARACTER (len = 80)   :: abort_message
    15621575    CHARACTER (len = 20)   :: modname = 'guide_read'
     1576    CHARACTER (len = 20)   :: namedim
    15631577    abort_message='pb in guide_read'
    15641578
     
    15891603             print*,'ncidpl,varidap',ncidpl,varidap
    15901604         endif
     1605         
    15911606! Pression si guidage sur niveaux P variables
    15921607         if (guide_plevs.EQ.2) then
     
    16041619             if (ncidpl.eq.-99) ncidpl=ncidp
    16051620         endif
     1621
    16061622! Vent zonal
    16071623         if (guide_u) then
     
    16181634             print*,'ncidu,varidu',ncidu,varidu
    16191635             if (ncidpl.eq.-99) ncidpl=ncidu
     1636
     1637   
     1638             status=NF90_INQ_DIMID(ncidu, "LONU", dimid)
     1639             status=NF90_INQUIRE_DIMENSION(ncidu,dimid,namedim,lendim)
     1640             IF (lendim .NE. iip1) THEN
     1641                print *,'dimension LONU different from iip1 in u.nc'
     1642                CALL abort_gcm(modname,abort_message,1)
     1643             ENDIF
     1644
     1645             status=NF90_INQ_DIMID(ncidu, "LATU", dimid)
     1646             status=NF90_INQUIRE_DIMENSION(ncidu,dimid,namedim,lendim)
     1647             IF (lendim .NE. jjp1) THEN
     1648                print *,'dimension LATU different from jjp1 in u.nc'
     1649                CALL abort_gcm(modname,abort_message,1)
     1650             ENDIF
     1651 
    16201652         endif
     1653
    16211654! Vent meridien
    16221655         if (guide_v) then
     
    16331666             print*,'ncidv,varidv',ncidv,varidv
    16341667             if (ncidpl.eq.-99) ncidpl=ncidv
    1635          endif
     1668             
     1669             status=NF90_INQ_DIMID(ncidv, "LONV", dimid)
     1670             status=NF90_INQUIRE_DIMENSION(ncidv,dimid,namedim,lendim)
     1671             
     1672                IF (lendim .NE. iip1) THEN
     1673                print *,'dimension LONV different from iip1 in v.nc'
     1674                CALL abort_gcm(modname,abort_message,1)
     1675             ENDIF
     1676
     1677
     1678             status=NF90_INQ_DIMID(ncidv, "LATV", dimid)
     1679             status=NF90_INQUIRE_DIMENSION(ncidv,dimid,namedim,lendim)
     1680             IF (lendim .NE. jjm) THEN
     1681                print *,'dimension LATV different from jjm in v.nc'
     1682                CALL abort_gcm(modname,abort_message,1)
     1683             ENDIF
     1684       
     1685        endif
     1686
    16361687! Temperature
    16371688         if (guide_T) then
     
    16481699             print*,'ncidT,varidT',ncidt,varidt
    16491700             if (ncidpl.eq.-99) ncidpl=ncidt
     1701
     1702             status=NF90_INQ_DIMID(ncidt, "LONV", dimid)
     1703             status=NF90_INQUIRE_DIMENSION(ncidt,dimid,namedim,lendim)
     1704             IF (lendim .NE. iip1) THEN
     1705                print *,'dimension LONV different from iip1 in T.nc'
     1706                CALL abort_gcm(modname,abort_message,1)
     1707             ENDIF
     1708
     1709             status=NF90_INQ_DIMID(ncidt, "LATU", dimid)
     1710             status=NF90_INQUIRE_DIMENSION(ncidt,dimid,namedim,lendim)
     1711             IF (lendim .NE. jjp1) THEN
     1712                print *,'dimension LATU different from jjp1 in T.nc'
     1713                CALL abort_gcm(modname,abort_message,1)
     1714             ENDIF
     1715
    16501716         endif
     1717
    16511718! Humidite
    16521719         if (guide_Q) then
     
    16631730             print*,'ncidQ,varidQ',ncidQ,varidQ
    16641731             if (ncidpl.eq.-99) ncidpl=ncidQ
     1732
     1733
     1734             status=NF90_INQ_DIMID(ncidQ, "LONV", dimid)
     1735             status=NF90_INQUIRE_DIMENSION(ncidQ,dimid,namedim,lendim)
     1736             IF (lendim .NE. iip1) THEN
     1737                print *,'dimension LONV different from iip1 in hur.nc'
     1738                CALL abort_gcm(modname,abort_message,1)
     1739             ENDIF
     1740
     1741             status=NF90_INQ_DIMID(ncidQ, "LATU", dimid)
     1742             status=NF90_INQUIRE_DIMENSION(ncidQ,dimid,namedim,lendim)
     1743             IF (lendim .NE. jjp1) THEN
     1744                print *,'dimension LATU different from jjp1 in hur.nc'
     1745                CALL abort_gcm(modname,abort_message,1)
     1746             ENDIF
     1747
     1748
    16651749         endif
    16661750! Pression de surface
Note: See TracChangeset for help on using the changeset viewer.