New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 10025 for utils/tools/NESTING/src/io_netcdf.f90 – NEMO

Ignore:
Timestamp:
2018-08-02T15:25:27+02:00 (6 years ago)
Author:
clem
Message:

nesting tools are partly rewritten (mostly for create_coordinates and bathy) to get better functionality. Now you can use the nesting to either define an agrif zoom or a regional domain (for bdy purposes). Also, the nesting tools output a domain_cfg.nc that can be directly used in NEMO4 without the need of DOMAINcfg tool. The option of median average for bathymetry interpolation still does not work properly but it's not new

File:
1 edited

Legend:

Unmodified
Added
Removed
  • utils/tools/NESTING/src/io_netcdf.f90

    r2143 r10025  
    2525  USE agrif_types 
    2626  !       
    27   INTERFACE Read_Ncdf_var 
    28      MODULE PROCEDURE Read_Ncdf_var1d_Real,   & 
    29           Read_Ncdf_var2d_Real,   & 
    30           Read_Ncdf_var2d_Real_bis,   & 
    31           Read_Ncdf_var3d_Real,   & 
    32           Read_Ncdf_var4d_Real,   & 
    33           Read_Ncdf_var3d_Real_t, & 
    34           Read_Ncdf_var4d_Real_t, & 
    35           Read_Ncdf_var4d_Real_nt, & 
    36           Read_Ncdf_var1d_Int,    & 
    37           Read_Ncdf_var2d_Int,    & 
    38           Read_Ncdf_var3d_Int,    & 
    39           Read_Ncdf_var4d_Int,    & 
    40           Read_Ncdf_var0d_Int,    & 
    41           Read_Ncdf_var0d_Real 
     27  INTERFACE read_ncdf_var 
     28     MODULE PROCEDURE  & 
     29        read_ncdf_var0d_real, read_ncdf_var1d_real, read_ncdf_var2d_real  , read_ncdf_var2d_real_bis,                        & 
     30        read_ncdf_var3d_real, read_ncdf_var4d_real, read_ncdf_var3d_real_t, read_ncdf_var4d_real_t, read_ncdf_var4d_real_nt, & 
     31        read_ncdf_var0d_int,  read_ncdf_var1d_int , read_ncdf_var2d_int   , read_ncdf_var3d_int   , read_ncdf_var4d_int 
    4232  END INTERFACE 
    4333  ! 
    44   INTERFACE Write_Ncdf_var 
    45      MODULE PROCEDURE Write_Ncdf_var1d_Real,   & 
    46           Write_Ncdf_var2d_Real,   & 
    47           Write_Ncdf_var3d_Real,   & 
    48           Write_Ncdf_var4d_Real,   & 
    49           Write_Ncdf_var3d_Real_t, & 
    50           Write_Ncdf_var4d_Real_t, & 
    51           Write_Ncdf_var4d_Real_nt, &                            
    52           Write_Ncdf_var2d_Real_bis,&            
    53           Write_Ncdf_var1d_Int,    & 
    54           Write_Ncdf_var2d_Int,    & 
    55           Write_Ncdf_var3d_Int,    & 
    56           Write_Ncdf_var4d_Int,    & 
    57           Write_Ncdf_var0d_Real 
     34  INTERFACE write_ncdf_var 
     35     MODULE PROCEDURE & 
     36        write_ncdf_var0d_real, write_ncdf_var1d_real  , write_ncdf_var2d_real  , write_ncdf_var3d_real,    & 
     37        write_ncdf_var4d_real, write_ncdf_var3d_real_t, write_ncdf_var4d_real_t, write_ncdf_var4d_real_nt, &                            
     38        write_ncdf_var2d_real_bis ,                                                                        &             
     39        write_ncdf_var0d_int, write_ncdf_var1d_int, write_ncdf_var2d_int, write_ncdf_var3d_int, write_ncdf_var4d_int 
    5840  END INTERFACE 
    5941  !  
    60   INTERFACE Copy_Ncdf_att 
    61      MODULE PROCEDURE Copy_Ncdf_att_latlon,Copy_Ncdf_att_var 
     42  INTERFACE copy_ncdf_att 
     43     MODULE PROCEDURE copy_ncdf_att_latlon,copy_ncdf_att_var 
    6244  END INTERFACE 
    6345  ! 
     
    6547  ! 
    6648  !**************************************************************** 
    67   !   subroutine Read_Ncdf_dim               * 
     49  !   subroutine read_ncdf_dim               * 
    6850  !                        * 
    6951  ! subroutine to retrieve value of a given dimension       * 
     
    7557  !**************************************************************** 
    7658  ! 
    77   SUBROUTINE Read_Ncdf_dim(dimname,file,dimval)    
     59  SUBROUTINE read_ncdf_dim(dimname,file,dimval)    
    7860    !       
    7961    IMPLICIT NONE 
     
    9779    status = nf90_close(ncid) 
    9880    !       
    99   END SUBROUTINE Read_Ncdf_dim 
     81  END SUBROUTINE read_ncdf_dim 
    10082  ! 
    10183  !************************************************************** 
    102   ! end subroutine Read_Ncdf_dim 
     84  ! end subroutine read_ncdf_dim 
    10385  !**************************************************************       
    10486  ! 
    10587  !**************************************************************** 
    106   !   subroutine Write_Ncdf_dim              * 
     88  !   subroutine write_ncdf_dim              * 
    10789  !                        * 
    10890  ! subroutine to write a dimension in a given file      * 
     
    11496  !**************************************************************** 
    11597  ! 
    116   SUBROUTINE Write_Ncdf_dim(dimname,file,dimval)    
     98  SUBROUTINE write_ncdf_dim(dimname,file,dimval)    
    11799    !       
    118100    IMPLICIT NONE 
     
    143125    status = nf90_close(ncid) 
    144126    !       
    145   END SUBROUTINE Write_Ncdf_dim 
     127  END SUBROUTINE write_ncdf_dim 
    146128  ! 
    147129  !************************************************************** 
    148   ! end subroutine Write_Ncdf_dim 
     130  ! end subroutine write_ncdf_dim 
    149131  !**************************************************************             
    150132  !  
    151133  !**************************************************************** 
    152   !   subroutine Read_Ncdf_var               * 
     134  !   subroutine read_ncdf_var               * 
    153135  !                        * 
    154136  ! subroutine to retrieve values of a given variable       * 
     
    159141  !                        * 
    160142  !**************************************************************** 
    161   !           
    162   !************************************************************** 
    163   !   subroutine Read_Ncdf_var1d_real 
    164   !**************************************************************           
    165   !       
    166   SUBROUTINE Read_Ncdf_var1d_Real(varname,file,tabvar) 
     143  !       
     144  SUBROUTINE read_ncdf_var1d_real(varname,file,tabvar) 
    167145    !       
    168146    IMPLICIT NONE 
     
    202180    status = nf90_close(ncid) 
    203181    !  
    204   END SUBROUTINE Read_Ncdf_var1d_Real 
     182  END SUBROUTINE read_ncdf_var1d_real 
    205183  !            
    206   !************************************************************** 
    207   ! end subroutine Read_Ncdf_var1d_real 
    208   !**************************************************************           
    209   !             
    210   !            
    211   !************************************************************** 
    212   !   subroutine Read_Ncdf_var2d_real 
    213   !**************************************************************           
    214   !       
    215   SUBROUTINE Read_Ncdf_var2d_Real(varname,file,tabvar) 
     184  !       
     185  SUBROUTINE read_ncdf_var2d_real(varname,file,tabvar) 
    216186    !       
    217187    IMPLICIT NONE 
     
    250220    status = nf90_close(ncid) 
    251221    !      
    252   END SUBROUTINE Read_Ncdf_var2d_Real 
     222  END SUBROUTINE read_ncdf_var2d_real 
    253223  !            
    254   !************************************************************** 
    255   ! end subroutine Read_Ncdf_var2d_real 
    256   !**************************************************************           
    257   !     
    258  
    259   !            
    260   !************************************************************** 
    261   !   subroutine Read_Ncdf_var2d_real_bis 
    262   !**************************************************************           
    263   !       
    264   SUBROUTINE Read_Ncdf_var2d_Real_bis(varname,file,tabvar,strt,cnt) 
     224  !       
     225  SUBROUTINE read_ncdf_var2d_real_bis(varname,file,tabvar,strt,cnt) 
    265226    !       
    266227    IMPLICIT NONE 
     
    301262    status = nf90_close(ncid) 
    302263    !      
    303   END SUBROUTINE Read_Ncdf_var2d_Real_bis 
     264  END SUBROUTINE read_ncdf_var2d_real_bis 
    304265  !            
    305   !************************************************************** 
    306   ! end subroutine Read_Ncdf_var2d_real_bis 
    307   !**************************************************************           
    308   !   
    309  
    310  
    311   !            
    312   !************************************************************** 
    313   !   subroutine Read_Ncdf_var3d_real 
    314   !**************************************************************           
    315   !       
    316   SUBROUTINE Read_Ncdf_var3d_Real(varname,file,tabvar) 
     266  !       
     267  SUBROUTINE read_ncdf_var3d_real(varname,file,tabvar) 
    317268    !       
    318269    IMPLICIT NONE 
     
    358309    status = nf90_close(ncid) 
    359310    !      
    360   END SUBROUTINE Read_Ncdf_var3d_Real 
     311  END SUBROUTINE read_ncdf_var3d_real 
    361312  !            
    362   !************************************************************** 
    363   ! end subroutine Read_Ncdf_var3d_real 
    364   !**************************************************************           
    365   !  
    366   !            
    367   !************************************************************** 
    368   !   subroutine Read_Ncdf_var4d_real 
    369   !**************************************************************           
    370   !       
    371   SUBROUTINE Read_Ncdf_var4d_Real(varname,file,tabvar) 
     313  !       
     314  SUBROUTINE read_ncdf_var4d_real(varname,file,tabvar) 
    372315    !       
    373316    IMPLICIT NONE 
     
    410353    status = nf90_close(ncid) 
    411354    !      
    412   END SUBROUTINE Read_Ncdf_var4d_Real 
    413  
    414   SUBROUTINE Read_Ncdf_var0d_Real(varname,file,tabvar) 
     355  END SUBROUTINE read_ncdf_var4d_real 
     356 
     357  SUBROUTINE read_ncdf_var0d_real(varname,file,tabvar) 
    415358    !       
    416359    IMPLICIT NONE 
     
    438381    status = nf90_close(ncid) 
    439382    !      
    440   END SUBROUTINE Read_Ncdf_var0d_Real 
    441  
    442   SUBROUTINE Read_Ncdf_var0d_Int(varname,file,tabvar) 
     383  END SUBROUTINE read_ncdf_var0d_real 
     384 
     385  SUBROUTINE read_ncdf_var0d_int(varname,file,tabvar) 
    443386    !       
    444387    IMPLICIT NONE 
     
    466409    status = nf90_close(ncid) 
    467410    !      
    468   END SUBROUTINE Read_Ncdf_var0d_Int 
     411  END SUBROUTINE read_ncdf_var0d_int 
    469412  !            
    470   !************************************************************** 
    471   ! end subroutine Read_Ncdf_var4d_real 
    472   !**************************************************************           
    473   !              
    474   !            
    475   !************************************************************** 
    476   !   subroutine Read_Ncdf_var1d_int 
    477   !**************************************************************           
    478   !       
    479   SUBROUTINE Read_Ncdf_var1d_Int(varname,file,tabvar) 
     413  !       
     414  SUBROUTINE read_ncdf_var1d_int(varname,file,tabvar) 
    480415    !       
    481416    IMPLICIT NONE 
     
    515450    status = nf90_close(ncid) 
    516451    !       
    517   END SUBROUTINE Read_Ncdf_var1d_Int 
     452  END SUBROUTINE read_ncdf_var1d_int 
    518453  !            
    519   !************************************************************** 
    520   ! end subroutine Read_Ncdf_var1d_int 
    521   !**************************************************************           
    522   !             
    523   !            
    524   !************************************************************** 
    525   !   subroutine Read_Ncdf_var2d_int 
    526   !**************************************************************           
    527   !       
    528   SUBROUTINE Read_Ncdf_var2d_Int(varname,file,tabvar) 
     454  !       
     455  SUBROUTINE read_ncdf_var2d_int(varname,file,tabvar) 
    529456    !       
    530457    IMPLICIT NONE 
     
    563490    status = nf90_close(ncid) 
    564491    !       
    565   END SUBROUTINE Read_Ncdf_var2d_Int 
     492  END SUBROUTINE read_ncdf_var2d_int 
    566493  !            
    567   !************************************************************** 
    568   ! end subroutine Read_Ncdf_var2d_Int 
    569   !**************************************************************           
    570   !     
    571  
    572   !            
    573   !************************************************************** 
    574   !   subroutine Read_Ncdf_var3d_Int 
    575   !**************************************************************           
    576   !       
    577   SUBROUTINE Read_Ncdf_var3d_Int(varname,file,tabvar) 
     494  !       
     495  SUBROUTINE read_ncdf_var3d_int(varname,file,tabvar) 
    578496    !       
    579497    IMPLICIT NONE 
     
    615533    status = nf90_close(ncid) 
    616534    !       
    617   END SUBROUTINE Read_Ncdf_var3d_Int 
     535  END SUBROUTINE read_ncdf_var3d_int 
    618536  !            
    619   !************************************************************** 
    620   ! end subroutine Read_Ncdf_var3d_int 
    621   !**************************************************************   
    622   ! 
    623   ! 
    624   ! 
    625   !************************************************************** 
    626   !   subroutine Read_Ncdf_var4d_int 
    627   !**************************************************************           
    628   !       
    629   SUBROUTINE Read_Ncdf_var4d_Int(varname,file,tabvar) 
     537  !       
     538  SUBROUTINE read_ncdf_var4d_int(varname,file,tabvar) 
    630539    !       
    631540    IMPLICIT NONE 
     
    668577    status = nf90_close(ncid) 
    669578    !      
    670   END SUBROUTINE Read_Ncdf_var4d_Int 
     579  END SUBROUTINE read_ncdf_var4d_int 
    671580  !            
    672   !************************************************************** 
    673   ! end subroutine Read_Ncdf_var4d_real 
    674   !**************************************************************          
    675   !     
    676   ! 
    677   !**************************************************************** 
    678   !   subroutine Write_Ncdf_var              * 
     581  ! 
     582  !**************************************************************** 
     583  !   subroutine write_ncdf_var              * 
    679584  !                        * 
    680585  ! subroutine to write a variable in a given file       * 
     
    688593  !     
    689594  !       
    690   !************************************************************** 
    691   !   subroutine Write_Ncdf_var1d_real 
    692   !**************************************************************     
    693   !       
    694   SUBROUTINE Write_Ncdf_var1d_Real(varname,dimname,file,tabvar,typevar) 
     595  SUBROUTINE write_ncdf_var1d_real(varname,dimname,file,tabvar,typevar) 
    695596    !       
    696597    IMPLICIT NONE 
    697598    !        
    698599    CHARACTER(*),INTENT(in) :: varname,file,dimname,typevar 
    699     REAL*8, DIMENSION(:), POINTER :: tabvar 
     600    REAL*8, DIMENSION(:), INTENT(in) :: tabvar 
    700601    ! 
    701602    ! local variables 
     
    711612    ENDIF 
    712613    !      
    713     status = nf90_inq_dimid(ncid,dimname, dimid) 
     614    status = nf90_inq_dimid(ncid,dimname,dimid) 
    714615    status = nf90_inq_varid(ncid,varname,varid) 
    715616    status = nf90_redef(ncid) 
     
    725626    status = nf90_close(ncid) 
    726627    !  
    727   END SUBROUTINE Write_Ncdf_var1d_Real 
    728   !       
    729   !************************************************************** 
    730   !   end subroutine Write_Ncdf_var1d_real 
    731   !************************************************************** 
    732   !       
    733   !************************************************************** 
    734   !   subroutine Write_Ncdf_var2d_real 
    735   !**************************************************************     
    736   !       
    737   SUBROUTINE Write_Ncdf_var2d_Real_bis(varname,dimname,file,tabvar,nbdim,typevar) 
     628  END SUBROUTINE write_ncdf_var1d_real 
     629  !       
     630  !       
     631  SUBROUTINE write_ncdf_var2d_real_bis(varname,dimname,file,tabvar,nbdim,typevar) 
    738632    !       
    739633    IMPLICIT NONE 
     
    743637    CHARACTER(*), DIMENSION(4) :: dimname 
    744638    REAL*8, DIMENSION(:,:) :: tabvar 
    745     REAL*8, DIMENSION(:,:,:),POINTER :: tabtemp3d 
    746     REAL*8, DIMENSION(:,:,:,:),POINTER :: tabtemp4d 
     639    REAL*8, ALLOCATABLE, DIMENSION(:,:,:) :: tabtemp3d 
     640    REAL*8, ALLOCATABLE, DIMENSION(:,:,:,:) :: tabtemp4d 
    747641    ! 
    748642    ! local variables 
     
    796690    IF(nbdim==3) status = nf90_put_var(ncid,varid,tabtemp3d) 
    797691    !       
    798     IF(ASSOCIATED( tabtemp3d ) ) DEALLOCATE( tabtemp3d )    
    799     IF(ASSOCIATED( tabtemp4d ) ) DEALLOCATE( tabtemp4d )      
    800     ! 
    801     status = nf90_close(ncid) 
    802     !  
    803   END SUBROUTINE Write_Ncdf_var2d_Real_bis 
    804   !       
    805   !************************************************************** 
    806   !   end subroutine Write_Ncdf_var2d_real 
    807   !**************************************************************   
    808   !    
    809   !       
    810   !************************************************************** 
    811   !   subroutine Write_Ncdf_var2d_real 
    812   !**************************************************************     
    813   !       
    814   SUBROUTINE Write_Ncdf_var2d_Real(varname,dimname,file,tabvar,typevar) 
     692    IF(ALLOCATED( tabtemp3d ) ) DEALLOCATE( tabtemp3d )    
     693    IF(ALLOCATED( tabtemp4d ) ) DEALLOCATE( tabtemp4d )      
     694    ! 
     695    status = nf90_close(ncid) 
     696    !  
     697  END SUBROUTINE write_ncdf_var2d_real_bis 
     698  !       
     699  !       
     700  SUBROUTINE write_ncdf_var2d_real(varname,dimname,file,tabvar,typevar) 
    815701    !       
    816702    !      implicit none 
     
    818704    CHARACTER(*),INTENT(in) :: varname,file,typevar 
    819705    CHARACTER(*), DIMENSION(2) :: dimname 
    820     REAL*8, DIMENSION(:,:), POINTER :: tabvar 
     706    REAL*8, DIMENSION(:,:), INTENT(in) :: tabvar 
    821707    ! 
    822708    ! local variables 
     
    851737    status = nf90_close(ncid) 
    852738    !  
    853   END SUBROUTINE Write_Ncdf_var2d_Real 
    854   !       
    855   !************************************************************** 
    856   !   end subroutine Write_Ncdf_var2d_real 
    857   !**************************************************************   
    858   ! 
    859   !       
    860   !************************************************************** 
    861   !   subroutine Write_Ncdf_var3d_real 
    862   !************************************************************** 
    863   !       
    864   SUBROUTINE Write_Ncdf_var3d_Real(varname,dimname,file,tabvar,typevar) 
     739  END SUBROUTINE write_ncdf_var2d_real 
     740  !       
     741  !       
     742  SUBROUTINE write_ncdf_var3d_real(varname,dimname,file,tabvar,typevar) 
    865743    !       
    866744    IMPLICIT NONE 
     
    868746    CHARACTER(*),INTENT(in) :: varname,file,typevar 
    869747    CHARACTER(*),DIMENSION(3),INTENT(in) :: dimname 
    870     REAL*8, DIMENSION(:,:,:), POINTER :: tabvar 
     748    REAL*8, DIMENSION(:,:,:), INTENT(in) :: tabvar 
    871749    ! 
    872750    ! local variables 
     
    902780    status = nf90_close(ncid) 
    903781    !  
    904   END SUBROUTINE Write_Ncdf_var3d_Real 
    905   !       
    906   !************************************************************** 
    907   !   end subroutine Write_Ncdf_var3d_real 
    908   !************************************************************** 
    909   !  
    910   ! 
    911   !************************************************************** 
    912   !   subroutine Write_Ncdf_var4d_real 
    913   !************************************************************** 
    914   !       
    915   SUBROUTINE Write_Ncdf_var4d_Real(varname,dimname,file,tabvar,typevar) 
     782  END SUBROUTINE write_ncdf_var3d_real 
     783  !       
     784  !       
     785  SUBROUTINE write_ncdf_var4d_real(varname,dimname,file,tabvar,typevar) 
    916786    !       
    917787    IMPLICIT NONE 
     
    919789    CHARACTER(*),INTENT(in) :: varname,file,typevar 
    920790    CHARACTER(*),DIMENSION(4),INTENT(in) :: dimname 
    921     REAL*8, DIMENSION(:,:,:,:), POINTER :: tabvar 
     791    REAL*8, DIMENSION(:,:,:,:), INTENT(in) :: tabvar 
    922792    ! 
    923793    ! local variables 
     
    959829    status = nf90_close(ncid) 
    960830    !  
    961   END SUBROUTINE Write_Ncdf_var4d_Real 
    962   !       
    963   !************************************************************** 
    964   !   end subroutine Write_Ncdf_var4d_real 
    965   !************************************************************** 
    966   ! 
    967   ! 
    968   !   
    969   !************************************************************** 
    970   !   subroutine Write_Ncdf_var1d_Int 
    971   !**************************************************************     
    972   !       
    973   SUBROUTINE Write_Ncdf_var1d_Int(varname,dimname,file,tabvar) 
    974     !       
    975     IMPLICIT NONE 
    976     !        
    977     CHARACTER(*),INTENT(in) :: varname,file,dimname 
    978     INTEGER, DIMENSION(:), POINTER :: tabvar 
     831  END SUBROUTINE write_ncdf_var4d_real 
     832  !       
     833  !       
     834  SUBROUTINE write_ncdf_var1d_int(varname,dimname,file,tabvar,typevar) 
     835    !       
     836    IMPLICIT NONE 
     837    !        
     838    CHARACTER(*),INTENT(in) :: varname,file,dimname,typevar 
     839    INTEGER, DIMENSION(:), INTENT(in) :: tabvar 
    979840    ! 
    980841    ! local variables 
     
    1000861    status = nf90_close(ncid) 
    1001862    !  
    1002   END SUBROUTINE Write_Ncdf_var1d_Int 
    1003   !       
    1004   !************************************************************** 
    1005   !   end subroutine Write_Ncdf_var1d_Int 
    1006   !************************************************************** 
    1007   !   
    1008   !       
    1009   !************************************************************** 
    1010   !   subroutine Write_Ncdf_var2d_Int 
    1011   !**************************************************************     
    1012   !       
    1013   SUBROUTINE Write_Ncdf_var2d_Int(varname,dimname,file,tabvar) 
    1014     !       
    1015     IMPLICIT NONE 
    1016     !        
    1017     CHARACTER(*),INTENT(in) :: varname,file 
    1018     CHARACTER(*), DIMENSION(2) :: dimname 
    1019     INTEGER, DIMENSION(:,:), POINTER :: tabvar 
     863  END SUBROUTINE write_ncdf_var1d_int 
     864  !       
     865  !       
     866  SUBROUTINE write_ncdf_var2d_int(varname,dimname,file,tabvar,typevar) 
     867    !       
     868    IMPLICIT NONE 
     869    !        
     870    CHARACTER(*), INTENT(in) :: varname,file,typevar 
     871    CHARACTER(*), DIMENSION(2), INTENT(in) :: dimname 
     872    INTEGER, DIMENSION(:,:), INTENT(in) :: tabvar 
    1020873    ! 
    1021874    ! local variables 
     
    1031884    ENDIF 
    1032885    !      
    1033     status = nf90_inq_dimid(ncid,dimname(1), dimid1) 
    1034     status = nf90_inq_dimid(ncid,dimname(2), dimid2) 
     886    status = nf90_inq_dimid(ncid,dimname(1),dimid1) 
     887    status = nf90_inq_dimid(ncid,dimname(2),dimid2) 
    1035888    status = nf90_inq_varid(ncid,varname,varid) 
    1036889    status = nf90_redef(ncid) 
    1037     status = nf90_def_var(ncid,varname,nf90_int,     & 
    1038          (/dimid1,dimid2/),varid) 
     890    status = nf90_def_var(ncid,varname,nf90_int,(/dimid1,dimid2/),varid) 
    1039891    status = nf90_enddef(ncid) 
    1040892    status = nf90_put_var(ncid,varid,tabvar)      
     
    1042894    status = nf90_close(ncid) 
    1043895    !  
    1044   END SUBROUTINE Write_Ncdf_var2d_Int 
    1045   !       
    1046   !************************************************************** 
    1047   !   end subroutine Write_Ncdf_var2d_Int 
    1048   !**************************************************************   
    1049   !  
    1050   !       
    1051   !************************************************************** 
    1052   !   subroutine Write_Ncdf_var3d_Int 
    1053   !************************************************************** 
    1054   !       
    1055   SUBROUTINE Write_Ncdf_var3d_Int(varname,dimname,file,tabvar) 
    1056     !       
    1057     IMPLICIT NONE 
    1058     !        
    1059     CHARACTER(*),INTENT(in) :: varname,file 
     896  END SUBROUTINE write_ncdf_var2d_int 
     897  !       
     898  !       
     899  SUBROUTINE write_ncdf_var3d_int(varname,dimname,file,tabvar,typevar) 
     900    !       
     901    IMPLICIT NONE 
     902    !        
     903    CHARACTER(*),INTENT(in) :: varname,file,typevar 
    1060904    CHARACTER(*),DIMENSION(3),INTENT(in) :: dimname 
    1061     INTEGER, DIMENSION(:,:,:), POINTER :: tabvar 
     905    INTEGER, DIMENSION(:,:,:), INTENT(in) :: tabvar 
    1062906    ! 
    1063907    ! local variables 
     
    1085929    status = nf90_close(ncid) 
    1086930    !  
    1087   END SUBROUTINE Write_Ncdf_var3d_Int 
    1088   !       
    1089   !************************************************************** 
    1090   !   end subroutine Write_Ncdf_var3d_Int 
    1091   !************************************************************** 
    1092   !  
    1093   ! 
    1094   !************************************************************** 
    1095   !   subroutine Write_Ncdf_var4d_Int 
    1096   !************************************************************** 
    1097   !       
    1098   SUBROUTINE Write_Ncdf_var4d_Int(varname,dimname,file,tabvar) 
    1099     !       
    1100     IMPLICIT NONE 
    1101     !        
    1102     CHARACTER(*),INTENT(in) :: varname,file 
     931  END SUBROUTINE write_ncdf_var3d_int 
     932  !       
     933  !       
     934  SUBROUTINE write_ncdf_var4d_int(varname,dimname,file,tabvar,typevar) 
     935    !       
     936    IMPLICIT NONE 
     937    !        
     938    CHARACTER(*),INTENT(in) :: varname,file,typevar 
    1103939    CHARACTER(*),DIMENSION(4),INTENT(in) :: dimname 
    1104     INTEGER, DIMENSION(:,:,:,:), POINTER :: tabvar 
     940    INTEGER, DIMENSION(:,:,:,:), INTENT(in) :: tabvar 
    1105941    ! 
    1106942    ! local variables 
     
    1129965    status = nf90_close(ncid) 
    1130966    !  
    1131   END SUBROUTINE Write_Ncdf_var4d_Int 
    1132   !       
    1133   !************************************************************** 
    1134   !   end subroutine Write_Ncdf_var4d_Int 
    1135   !**************************************************************  
    1136   ! 
    1137   ! 
    1138   !**************************************************************** 
    1139   !   subroutine Read_Ncdf_var_t             * 
     967  END SUBROUTINE write_ncdf_var4d_int 
     968  !       
     969  ! 
     970  !**************************************************************** 
     971  !   subroutine read_ncdf_var_t             * 
    1140972  !                        * 
    1141973  ! subroutine to read a variable in a given file for time t   * 
     
    1148980  !**************************************************************** 
    1149981  ! 
    1150   ! 
    1151   !************************************************************** 
    1152   !   subroutine Read_Ncdf_var3d_real_t 
    1153   !**************************************************************           
    1154   !       
    1155   SUBROUTINE Read_Ncdf_var3d_Real_t(varname,file,tabvar,time) 
     982  !       
     983  SUBROUTINE read_ncdf_var3d_real_t(varname,file,tabvar,time) 
    1156984    !       
    1157985    USE agrif_types      
     
    12011029    status = nf90_close(ncid) 
    12021030    !      
    1203   END SUBROUTINE Read_Ncdf_var3d_Real_t 
     1031  END SUBROUTINE read_ncdf_var3d_real_t 
    12041032  !            
    1205   !************************************************************** 
    1206   ! end subroutine Read_Ncdf_var3d_real_t 
    1207   !**************************************************************           
    1208   ! 
    1209   ! 
    1210   ! 
    1211   !**************************************************************** 
    1212   !   subroutine Write_Ncdf_var_t               * 
     1033  ! 
     1034  !**************************************************************** 
     1035  !   subroutine write_ncdf_var_t               * 
    12131036  !                        * 
    12141037  ! subroutine to write a variable in a given file for time t  * 
     
    12231046  ! 
    12241047  !       
    1225   !************************************************************** 
    1226   !   subroutine Write_Ncdf_var3d_real_t 
    1227   !************************************************************** 
    1228   !       
    1229   SUBROUTINE Write_Ncdf_var3d_Real_t(varname,dimname,file,tabvar,time,typevar) 
     1048  SUBROUTINE write_ncdf_var3d_real_t(varname,dimname,file,tabvar,time,typevar) 
    12301049    !       
    12311050    IMPLICIT NONE 
     
    12341053    CHARACTER(*),DIMENSION(3),INTENT(in) :: dimname 
    12351054    INTEGER :: time 
    1236     REAL*8, DIMENSION(:,:,:), POINTER :: tabvar 
     1055    REAL*8, DIMENSION(:,:,:), INTENT(in) :: tabvar 
    12371056    ! 
    12381057    ! local variables 
     
    12801099    status = nf90_close(ncid) 
    12811100    !  
    1282   END SUBROUTINE Write_Ncdf_var3d_Real_t 
    1283   !       
    1284   !************************************************************** 
    1285   !   end subroutine Write_Ncdf_var3d_real_t 
    1286   !************************************************************** 
    1287   ! 
    1288   ! 
    1289   !**************************************************************** 
    1290   !   subroutine Read_Ncdf_var_t             * 
     1101  END SUBROUTINE write_ncdf_var3d_real_t 
     1102  !       
     1103  ! 
     1104  !**************************************************************** 
     1105  !   subroutine read_ncdf_var_t             * 
    12911106  !                        * 
    12921107  ! subroutine to read a variable in a given file for time t   * 
     
    13001115  !**************************************************************** 
    13011116  ! 
    1302   ! 
    1303   !************************************************************** 
    1304   !   subroutine Read_Ncdf_var4d_real_nt 
    1305   !**************************************************************           
    1306   !       
    1307   SUBROUTINE Read_Ncdf_var4d_Real_nt(varname,file,tabvar,time,level) 
     1117  !       
     1118  SUBROUTINE read_ncdf_var4d_real_nt(varname,file,tabvar,time,level) 
    13081119    !       
    13091120    USE agrif_types      
     
    13531164    status = nf90_close(ncid) 
    13541165    !      
    1355   END SUBROUTINE Read_Ncdf_var4d_Real_nt 
     1166  END SUBROUTINE read_ncdf_var4d_real_nt 
    13561167  !            
    1357   !************************************************************** 
    1358   ! end subroutine Read_Ncdf_var4d_real_nt 
    1359   !**************************************************************           
    1360   ! 
    1361   ! 
    1362   !************************************************************** 
    1363   !   subroutine Read_Ncdf_var4d_real_t 
    1364   !**************************************************************           
    1365   !       
    1366   SUBROUTINE Read_Ncdf_var4d_Real_t(varname,file,tabvar,time) 
     1168  !       
     1169  SUBROUTINE read_ncdf_var4d_real_t(varname,file,tabvar,time) 
    13671170    !       
    13681171    USE agrif_types      
     
    14051208    status = nf90_close(ncid) 
    14061209    !      
    1407   END SUBROUTINE Read_Ncdf_var4d_Real_t 
     1210  END SUBROUTINE read_ncdf_var4d_real_t 
    14081211  !            
    1409   !************************************************************** 
    1410   ! end subroutine Read_Ncdf_var4d_real_t 
    1411   !**************************************************************           
    1412   ! 
    1413   ! 
    1414   !**************************************************************** 
    1415   !   subroutine Write_Ncdf_var_t               * 
     1212  !**************************************************************** 
     1213  !   subroutine write_ncdf_var_t               * 
    14161214  !                        * 
    14171215  ! subroutine to write a variable in a given file for time t  * 
     
    14271225  ! 
    14281226  !       
    1429   !************************************************************** 
    1430   !   subroutine Write_Ncdf_var4d_real_t 
    1431   !************************************************************** 
    1432   !       
    1433   SUBROUTINE Write_Ncdf_var4d_Real_t(varname,dimname,file,tabvar,time,typevar) 
     1227  SUBROUTINE write_ncdf_var4d_real_t(varname,dimname,file,tabvar,time,typevar) 
    14341228    !       
    14351229    IMPLICIT NONE 
     
    14381232    CHARACTER(*),DIMENSION(4),INTENT(in) :: dimname 
    14391233    INTEGER :: time,level 
    1440     REAL*8, DIMENSION(:,:,:,:), POINTER :: tabvar 
     1234    REAL*8, DIMENSION(:,:,:,:), INTENT(in) :: tabvar 
    14411235    ! 
    14421236    ! local variables 
     
    14841278    status = nf90_close(ncid) 
    14851279    !  
    1486   END SUBROUTINE Write_Ncdf_var4d_Real_t 
    1487   !       
    1488   !************************************************************** 
    1489   !   end subroutine Write_Ncdf_var4d_real_t 
    1490   !************************************************************** 
    1491   ! 
    1492   !       
    1493   !************************************************************** 
    1494   !   subroutine Write_Ncdf_var4d_real_nt 
    1495   !************************************************************** 
    1496   !       
    1497   SUBROUTINE Write_Ncdf_var4d_Real_nt(varname,dimname,file,tabvar,time,level,typevar) 
     1280  END SUBROUTINE write_ncdf_var4d_real_t 
     1281  !       
     1282  !       
     1283  SUBROUTINE write_ncdf_var4d_real_nt(varname,dimname,file,tabvar,time,level,typevar) 
    14981284    !       
    14991285    IMPLICIT NONE 
     
    15021288    CHARACTER(*),DIMENSION(4),INTENT(in) :: dimname 
    15031289    INTEGER :: time,level 
    1504     REAL*8, DIMENSION(:,:,:,:), POINTER :: tabvar 
     1290    REAL*8, DIMENSION(:,:,:,:), INTENT(in) :: tabvar 
    15051291    ! 
    15061292    ! local variables 
     
    15481334    status = nf90_close(ncid) 
    15491335    !  
    1550   END SUBROUTINE Write_Ncdf_var4d_Real_nt 
    1551  
    1552   SUBROUTINE Write_Ncdf_var0d_Real(varname,file,tabvar,typevar) 
     1336  END SUBROUTINE write_ncdf_var4d_real_nt 
     1337 
     1338  SUBROUTINE write_ncdf_var0d_real(varname,file,tabvar,typevar) 
    15531339    !       
    15541340    IMPLICIT NONE 
     
    15931379    status = nf90_close(ncid) 
    15941380    !  
    1595   END SUBROUTINE Write_Ncdf_var0d_Real 
    1596   !       
    1597   !************************************************************** 
    1598   !   end subroutine Write_Ncdf_var4d_real_nt 
    1599   !************************************************************** 
    1600   ! 
    1601   !**************************************************************** 
    1602   !   subroutine Read_Ncdf_VarName           * 
     1381  END SUBROUTINE write_ncdf_var0d_real 
     1382 
     1383  SUBROUTINE write_ncdf_var0d_int(varname,file,tabvar,typevar) 
     1384    !       
     1385    IMPLICIT NONE 
     1386    !        
     1387    CHARACTER(*),INTENT(in) :: varname,file,typevar 
     1388    INTEGER :: tabvar 
     1389    ! 
     1390    ! local variables 
     1391    ! 
     1392    INTEGER :: status,ncid 
     1393    INTEGER :: varid 
     1394    ! 
     1395    status = nf90_open(file,NF90_WRITE,ncid) 
     1396    IF (status/=nf90_noerr) THEN 
     1397       WRITE(*,*)"unable to open netcdf file : ",file 
     1398       STOP 
     1399    ENDIF 
     1400    !      
     1401    status = nf90_redef(ncid) 
     1402    status = nf90_def_var(ncid,TRIM(varname),nf90_int,varid) 
     1403    status = nf90_enddef(ncid) 
     1404    status = nf90_put_var(ncid,varid,tabvar) 
     1405    !      
     1406    IF (status/=nf90_noerr) THEN     
     1407       WRITE(*,*)"unable to store variable ",varname, & 
     1408       " in file ",file 
     1409       STOP 
     1410    ENDIF 
     1411    status = nf90_close(ncid) 
     1412    !  
     1413  END SUBROUTINE write_ncdf_var0d_int 
     1414 
     1415  ! 
     1416  !**************************************************************** 
     1417  !   subroutine read_ncdf_VarName           * 
    16031418  !                        * 
    16041419  ! subroutine to retrieve of all variables        * 
     
    16101425  !**************************************************************** 
    16111426  ! 
    1612   !************************************************************** 
    1613   !   subroutine Read_Ncdf_VarName 
    1614   !**************************************************************           
    1615   ! 
    1616   SUBROUTINE Read_Ncdf_VarName(filename,tabvarname) 
     1427  ! 
     1428  SUBROUTINE read_ncdf_VarName(filename,tabvarname) 
    16171429    !       
    16181430    CHARACTER(*),INTENT(in) :: filename 
     
    16371449    END DO 
    16381450 
    1639   END SUBROUTINE Read_Ncdf_Varname 
    1640   ! 
    1641   !************************************************************** 
    1642   !   end subroutine Read_Ncdf_VarName 
    1643   !**************************************************************           
    1644   ! 
    1645   !************************************************************** 
    1646   !   subroutine Copy_Ncdf_att 
    1647   !**************************************************************           
    1648   ! 
    1649   SUBROUTINE Copy_Ncdf_att_var(varname,filein,fileout) 
     1451  END SUBROUTINE read_ncdf_Varname 
     1452  ! 
     1453  ! 
     1454  SUBROUTINE copy_ncdf_att_var(varname,filein,fileout) 
    16501455    !       
    16511456    CHARACTER(*),INTENT(in) :: filein,fileout 
     
    17031508    !      print *,'ici2' 
    17041509    !  
    1705   END SUBROUTINE Copy_Ncdf_att_var 
    1706   ! 
    1707   !************************************************************** 
    1708   !   end subroutine Copy_Ncdf_att 
    1709   !**************************************************************          
    1710   !************************************************************** 
    1711   !   subroutine Copy_Ncdf_att 
    1712   !**************************************************************           
    1713   ! 
    1714   SUBROUTINE Copy_Ncdf_att_latlon(varname,filein,fileout,min,max) 
     1510  END SUBROUTINE copy_ncdf_att_var 
     1511  ! 
     1512  ! 
     1513  SUBROUTINE copy_ncdf_att_latlon(varname,filein,fileout,min,max) 
    17151514    !       
    17161515    CHARACTER(*),INTENT(in) :: filein,fileout 
     
    17601559    status = nf90_close(ncid_in) 
    17611560    status = nf90_close(ncid_out) 
    1762   END SUBROUTINE Copy_Ncdf_att_latlon 
     1561  END SUBROUTINE copy_ncdf_att_latlon 
     1562 
    17631563  !************************************************************* 
    17641564  !************************************************************** 
    1765   !************************************************************** 
    1766   !   function Get_NbDims 
    1767   !**************************************************************           
    17681565  ! 
    17691566  INTEGER FUNCTION Get_NbDims( varname , filename ) 
     
    17841581  END FUNCTION Get_NbDims 
    17851582  ! 
    1786   !************************************************************* 
    1787   !************************************************************** 
    1788   !   function Get_NbDims 
    1789   !**************************************************************           
    17901583  ! 
    17911584  LOGICAL FUNCTION Dims_Existence( dimname , filename ) 
     
    18111604  END FUNCTION Dims_Existence 
    18121605  ! 
    1813   !************************************************************* 
    1814   !************************************************************** 
    18151606END MODULE io_netcdf 
Note: See TracChangeset for help on using the changeset viewer.