Ignore:
Timestamp:
10/22/14 10:49:32 (10 years ago)
Author:
sleclech
Message:

Modification initialisation pointeurs lecture NetCDF pour compatibilité avec ifort 13

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SOURCES/readinput.f90

    r4 r6  
    2323  integer  :: lx,ly              !< nxx, nyy read in the file 
    2424  real,dimension(3) :: a         !< working tab 
    25   logical,SAVE :: init 
     25  logical,save :: init 
    2626  integer ncid1,status1 
    2727  character(len=20),dimension(2) :: dimnames2d        !< dimensions pour netcdf pour tableau 2d 
     
    2929  if ((index(filename,'no') .eq. 0)) then 
    3030 
    31      if (.NOT. init) then 
    32         status1  = nf90_create(TRIM(fil_sortie),NF90_WRITE,ncid1)    ! ouverture du fichier 
     31     if (.not. init) then 
     32        status1  = nf90_create(trim(fil_sortie),NF90_WRITE,ncid1)    ! ouverture du fichier 
    3333        status1  = nf90_close(ncid1)                                 ! fermeture 
    3434        call init_ncdf(nxx,nyy,fil_sortie,dimnames2d) 
    35         init= .TRUE. 
     35        init= .true. 
    3636     end if 
    3737 
     
    4444        write(6,*) 'in the file',lx,ly 
    4545        write(6,*) 'should be',nxx,nyy 
    46         STOP 
     46        stop 
    4747     end if 
    4848 
    4949     if (numcol .eq. 1) then 
    50         Allocate(Tab1(nxx,nyy)) 
     50        allocate(Tab1(nxx,nyy)) 
    5151        do j=1,nyy 
    5252           do i=1,nxx 
     
    5555           end do 
    5656        end do 
    57         base_name1= Trim(base_name)//'_1' 
    58         CALL Write_Ncdf_var(base_name1,dimnames2d,TRIM(fil_sortie),Tab1,'double') 
    59         Deallocate(Tab1) 
     57        base_name1= trim(base_name)//'_1' 
     58        call Write_Ncdf_var(base_name1,dimnames2d,trim(fil_sortie),Tab1,'double') 
     59        deallocate(Tab1) 
    6060     endif 
    6161 
    6262     if (numcol .eq. 2) then 
    63         Allocate(Tab1(nxx,nyy),Tab2(nxx,nyy)) 
     63        allocate(Tab1(nxx,nyy),Tab2(nxx,nyy)) 
    6464        do j=1,nyy 
    6565           do i=1,nxx 
     
    6969           end do 
    7070        end do 
    71         base_name1= Trim(base_name)//'_1' 
    72         CALL Write_Ncdf_var(base_name1,dimnames2d,TRIM(fil_sortie),Tab1,'double') 
    73         base_name1=Trim(base_name)//'_2' 
    74         CALL Write_Ncdf_var(base_name1,dimnames2d,TRIM(fil_sortie),Tab2,'double') 
    75         Deallocate(Tab1,Tab2) 
     71        base_name1= trim(base_name)//'_1' 
     72        call Write_Ncdf_var(base_name1,dimnames2d,trim(fil_sortie),Tab1,'double') 
     73        base_name1=trim(base_name)//'_2' 
     74        call Write_Ncdf_var(base_name1,dimnames2d,trim(fil_sortie),Tab2,'double') 
     75        deallocate(Tab1,Tab2) 
    7676     endif 
    7777 
    7878     if (numcol .eq. 3) then 
    79         Allocate(Tab1(nxx,nyy),Tab2(nxx,nyy),Tab3(nxx,nyy)) 
     79        allocate(Tab1(nxx,nyy),Tab2(nxx,nyy),Tab3(nxx,nyy)) 
    8080        do j=1,nyy 
    8181           do i=1,nxx 
     
    8686           end do 
    8787        end do 
    88         base_name1= Trim(base_name)//'_1' 
    89         CALL Write_Ncdf_var(base_name1,dimnames2d,TRIM(fil_sortie),Tab1,'double') 
    90         base_name1=Trim(base_name)//'_2' 
    91         CALL Write_Ncdf_var(base_name1,dimnames2d,TRIM(fil_sortie),Tab2,'double') 
    92         base_name1=Trim(base_name)//'_3' 
    93         CALL Write_Ncdf_var(base_name1,dimnames2d,TRIM(fil_sortie),Tab3,'double') 
    94         Deallocate(Tab1,Tab2,Tab3) 
     88        base_name1= trim(base_name)//'_1' 
     89        call Write_Ncdf_var(base_name1,dimnames2d,trim(fil_sortie),Tab1,'double') 
     90        base_name1=trim(base_name)//'_2' 
     91        call Write_Ncdf_var(base_name1,dimnames2d,trim(fil_sortie),Tab2,'double') 
     92        base_name1=trim(base_name)//'_3' 
     93        call Write_Ncdf_var(base_name1,dimnames2d,trim(fil_sortie),Tab3,'double') 
     94        deallocate(Tab1,Tab2,Tab3) 
    9595     endif 
    9696 
     
    138138  real,dimension(:,:),intent(inout) :: Tab    !< Array to read in 
    139139  character(*),intent(in) :: filename         !< File to read from 
    140   Real*8, dimension(:,:), pointer :: tabvar 
     140  real*8, dimension(:,:), pointer :: tabvar 
     141 
    141142 
    142143  if(.not. associated(tabvar)) then 
    143      Allocate(tabvar(size(Tab,1),size(Tab,2)))   
     144     allocate(tabvar(size(Tab,1),size(Tab,2)))  
     145  else  ! to nullify the pointer if undefined  
     146    if (any(shape(tabvar).ne.(/size(Tab,1),size(Tab,2)/)) ) then  
     147        tabvar => null() 
     148    end if 
    144149  end if 
     150 
    145151 
    146152  call read_ncdf_var(varname,filename,tabvar) 
     
    178184       real,dimension(:,:),intent(inout) :: Tab 
    179185       character(*),intent(in) :: filename 
    180        Real*8, dimension(:,:), pointer :: tabvar 
     186       real*8, dimension(:,:), pointer :: tabvar 
    181187     end subroutine lect_ncfile 
    182188  end interface !<<<<<<<<<<<<<<<<<<< 
    183189 
    184190 
    185   Character(1)  xcol 
    186   Write( xcol,'(i1)')  col 
    187  
    188   if (index(filename,'.dat')  .NE.0) then    ! file in is a .dat 
     191  character(1)  xcol 
     192  write( xcol,'(i1)')  col 
     193 
     194  if (index(filename,'.dat')  .ne.0) then    ! file in is a .dat 
     195 
    189196     call dat2netcdf(size(tabvar,1),size(tabvar,2),numcol,basename,filename,ncfileout) 
    190197     call lect_ncfile(trim(basename)//'_'//xcol,tabvar,ncfileout)                
    191198  else 
    192      if(index(filename,'.grd') .NE.0) then   ! file in is a .grd 
     199  
     200     if(index(filename,'.grd') .ne.0) then   ! file in is a .grd 
     201  
    193202        call lect_ncfile('z',tabvar,filename) 
    194      else                                    ! file in is a .nc 
    195         if(index(filename,'.nc') .NE.0) then 
     203     else 
     204                            ! file in is a .nc 
     205        if(index(filename,'.nc') .ne.0) then 
    196206           call lect_ncfile(basename,tabvar,filename) 
    197207        endif 
Note: See TracChangeset for help on using the changeset viewer.