Ignore:
Timestamp:
2011-09-26T10:54:50+02:00 (9 years ago)
Author:
cbricaud
Message:

cleanning, minor modifications

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2802_MERCATOR10_diadct/NEMOGCM/TOOLS/SECTIONS_DIADCT/src/readcoordmesh.f90

    r2849 r2858  
    1414   
    1515  PUBLIC  read_coord_mesh 
    16   PRIVATE read_ncdf 
    1716 
    1817CONTAINS 
     
    2423  !! ** Purpose :   Read a coordinate and a meshmask file in NetCDF format  
    2524  !!---------------------------------------------------------------------       
    26   !! * Local declarations 
    27   INTEGER                                 ::ji,jj 
    28  
    29   !!---------------------------------------------------------------------- 
    3025  PRINT*,'              ' 
    3126  PRINT*,'READ COORDINATES AND MESHMASK' 
    3227  PRINT*,'-----------------------------' 
    3328 
     29  ! Get coordinates dimensions 
     30  CALL getdim(cdfile="coordinates.nc") 
    3431 
    35   !Allocate coordinate and meshmask array with domain size 
     32  !Allocate coordinates array with domain size 
    3633  ALLOCATE(glamt(jpi,jpj)) ; ALLOCATE(gphit(jpi,jpj)) 
    3734  ALLOCATE(glamf(jpi,jpj)) ; ALLOCATE(gphif(jpi,jpj)) 
    38   ALLOCATE(e1t(jpi,jpj))   !; ALLOCATE(tmask(jpi,jpj,1)) 
     35  ALLOCATE(e1t(jpi,jpj)  )    
    3936 
    4037  !Read glamt 
    41   CALL read_ncdf(cdfile="coordinates.nc",cdvar="glamt",ksize=(/jpi,jpj,1,1/), & 
    42                    kstart=(/jpizoom,jpjzoom,1,1/),kcount=(/jpi,jpj,1,1/),ptab=glamt) 
     38  CALL read_ncdf(cdfile="coordinates.nc",cdvar="glamt",ksize=(/jpi,jpj,1,1/),ptab=glamt) 
    4339 
    4440  !Read gphit 
    45   CALL read_ncdf(cdfile="coordinates.nc",cdvar="gphit",ksize=(/jpi,jpj,1,1/), & 
    46                    kstart=(/jpizoom,jpjzoom,1,1/),kcount=(/jpi,jpj,1,1/),ptab=gphit) 
     41  CALL read_ncdf(cdfile="coordinates.nc",cdvar="gphit",ksize=(/jpi,jpj,1,1/),ptab=gphit) 
    4742 
    4843  !Read glamf 
    49   CALL read_ncdf(cdfile="coordinates.nc",cdvar="glamf",ksize=(/jpi,jpj,1,1/), & 
    50                    kstart=(/jpizoom,jpjzoom,1,1/),kcount=(/jpi,jpj,1,1/),ptab=glamf) 
     44  CALL read_ncdf(cdfile="coordinates.nc",cdvar="glamf",ksize=(/jpi,jpj,1,1/),ptab=glamf) 
    5145 
    5246  !Read gphif 
    53   CALL read_ncdf(cdfile="coordinates.nc",cdvar="gphif",ksize=(/jpi,jpj,1,1/), & 
    54                    kstart=(/jpizoom,jpjzoom,1,1/),kcount=(/jpi,jpj,1,1/),ptab=gphif) 
     47  CALL read_ncdf(cdfile="coordinates.nc",cdvar="gphif",ksize=(/jpi,jpj,1,1/),ptab=gphif) 
    5548 
    5649  !Read e1t 
    57   CALL read_ncdf(cdfile="coordinates.nc",cdvar="e1t",ksize=(/jpi,jpj,1,1/), & 
    58                    kstart=(/jpizoom,jpjzoom,1,1/),kcount=(/jpi,jpj,1,1/),ptab=e1t) 
     50  CALL read_ncdf(cdfile="coordinates.nc",cdvar="e1t",ksize=(/jpi,jpj,1,1/),ptab=e1t) 
    5951 
    60 !  tmask(:,:,:)=1 
    61  
    62   !compute mig and mjg arrays 
    63   ALLOCATE(mig(jpi)) 
    64   ALLOCATE(mjg(jpj)) 
    65   ! local domain indices ==> data domain indices 
    66   DO ji = 1, jpi ; mig(ji) = ji + jpizoom - 1 ; ENDDO 
    67   DO jj = 1, jpj ; mjg(jj) = jj + jpjzoom - 1 ; ENDDO 
    68  
    69   
    7052  END SUBROUTINE read_coord_mesh 
    7153 
    72   SUBROUTINE read_ncdf(cdfile,cdvar,ksize,kstart,kcount,ptab) 
     54  SUBROUTINE getdim(cdfile) 
     55  !!---------------------------------------------------------------------- 
     56  !!              ***  ROUTINE coord_mesh_read  *** 
     57  !! 
     58  !! ** Purpose :   Read a coordinate and a meshmask file in NetCDF format 
     59  !!---------------------------------------------------------------------- 
     60  !! * Arguments 
     61  CHARACTER(*),INTENT(IN):: cdfile 
     62 
     63  !! * Local declarations 
     64  INTEGER           :: ncid                 ! file unit 
     65  INTEGER           :: idims                ! number of dimensions 
     66  INTEGER           :: istatus, id_var      ! dummy variable 
     67  CHARACTER(len=30) :: clname               ! dimension name    
     68  INTEGER, ALLOCATABLE,DIMENSION(:) :: ndim ! dimensions value 
     69  !!---------------------------------------------------------------------- 
     70 
     71  !Open file 
     72  istatus=NF90_OPEN(TRIM(cdfile),nf90_nowrite,ncid) 
     73 
     74  IF( istatus/= NF90_NOERR )THEN 
     75     PRINT*,TRIM(cdfile),' not found.stop ' ; STOP 
     76  ELSE 
     77  
     78     ! read number of dimensions    
     79     istatus=NF90_INQUIRE(ncid,ndimensions=idims) 
     80 
     81     ALLOCATE( ndim(idims) ) 
     82 
     83     ! read each dimension 
     84     PRINT*,'     File dimensions: ' 
     85     DO id_var=1,idims 
     86        istatus=NF90_Inquire_Dimension(ncid,id_var,clname,ndim(id_var)) 
     87        PRINT*,'       ',id_var,clname,ndim(id_var) 
     88     ENDDO 
     89 
     90     !close 
     91     istatus=NF90_CLOSE( ncid )               
     92     IF( istatus/=NF90_NOERR )THEN  
     93        PRINT*,'Problem for closing ',TRIM(cdfile);STOP 
     94     ELSE 
     95        PRINT*,'     close ',TRIM(cdfile),' OK' 
     96     ENDIF 
     97 
     98  ENDIF 
     99 
     100  !domain dimensions 
     101  jpi = ndim(1) 
     102  jpj = ndim(2) 
     103 
     104  DEALLOCATE( ndim ) 
     105  END SUBROUTINE getdim 
     106 
     107  SUBROUTINE read_ncdf(cdfile,cdvar,ksize,ptab,kstart,kcount) 
    73108  !!---------------------------------------------------------------------- 
    74109  !!              ***  ROUTINE coord_mesh_read  *** 
     
    81116  INTEGER,DIMENSION(4),INTENT(IN)                                    :: ksize 
    82117  INTEGER,DIMENSION(4),INTENT(IN),OPTIONAL                           :: kstart,kcount 
    83   REAL(wp),DIMENSION(ksize(1),ksize(2),ksize(3),ksize(4)),INTENT(OUT),OPTIONAL:: ptab 
     118  REAL(wp),DIMENSION(ksize(1),ksize(2),ksize(3),ksize(4)),INTENT(OUT):: ptab 
    84119 
    85120  !! * Local declarations 
     
    97132  istatus=NF90_OPEN(TRIM(cdfile),nf90_nowrite,ncid) 
    98133  IF( istatus/= NF90_NOERR )THEN 
    99       PRINT*,TRIM(cdfile),' not found.stop ' ; stop 
    100   ELSE 
    101       PRINT*,'     File dimensions: ' 
    102       DO id_var=1,4 
    103          istatus=NF90_Inquire_Dimension(ncid,id_var,clname,len) 
    104          PRINT*,'       ',id_var,clname,len 
    105     ENDDO 
     134     PRINT*,TRIM(cdfile),' not found.stop ' ; STOP 
    106135  ENDIF 
    107136 
     
    111140  istatus=NF90_INQ_VARID (ncid,TRIM(cdvar),id_var) 
    112141  IF( istatus/=NF90_NOERR )THEN 
    113       PRINT*,TRIM(cdvar),' not found in ',TRIM(cdfile),'.stop';stop 
     142      PRINT*,TRIM(cdvar),' not found in ',TRIM(cdfile),'.stop';STOP 
    114143  ENDIF 
    115144 
     
    126155 
    127156  IF( istatus/=NF90_NOERR )THEN 
    128            PRINT*,'Problem for reading ',TRIM(cdvar),' in ',TRIM(cdfile);stop 
     157           PRINT*,'Problem for reading ',TRIM(cdvar),' in ',TRIM(cdfile); STOP 
    129158  ELSE 
    130159      PRINT*,'     read ',TRIM(cdvar),' OK' 
Note: See TracChangeset for help on using the changeset viewer.