Changeset 6 for trunk/SOURCES/readinput.f90
- Timestamp:
- 10/22/14 10:49:32 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SOURCES/readinput.f90
r4 r6 23 23 integer :: lx,ly !< nxx, nyy read in the file 24 24 real,dimension(3) :: a !< working tab 25 logical, SAVE:: init25 logical,save :: init 26 26 integer ncid1,status1 27 27 character(len=20),dimension(2) :: dimnames2d !< dimensions pour netcdf pour tableau 2d … … 29 29 if ((index(filename,'no') .eq. 0)) then 30 30 31 if (. NOT. init) then32 status1 = nf90_create( TRIM(fil_sortie),NF90_WRITE,ncid1) ! ouverture du fichier31 if (.not. init) then 32 status1 = nf90_create(trim(fil_sortie),NF90_WRITE,ncid1) ! ouverture du fichier 33 33 status1 = nf90_close(ncid1) ! fermeture 34 34 call init_ncdf(nxx,nyy,fil_sortie,dimnames2d) 35 init= . TRUE.35 init= .true. 36 36 end if 37 37 … … 44 44 write(6,*) 'in the file',lx,ly 45 45 write(6,*) 'should be',nxx,nyy 46 STOP46 stop 47 47 end if 48 48 49 49 if (numcol .eq. 1) then 50 Allocate(Tab1(nxx,nyy))50 allocate(Tab1(nxx,nyy)) 51 51 do j=1,nyy 52 52 do i=1,nxx … … 55 55 end do 56 56 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) 60 60 endif 61 61 62 62 if (numcol .eq. 2) then 63 Allocate(Tab1(nxx,nyy),Tab2(nxx,nyy))63 allocate(Tab1(nxx,nyy),Tab2(nxx,nyy)) 64 64 do j=1,nyy 65 65 do i=1,nxx … … 69 69 end do 70 70 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) 76 76 endif 77 77 78 78 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)) 80 80 do j=1,nyy 81 81 do i=1,nxx … … 86 86 end do 87 87 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) 95 95 endif 96 96 … … 138 138 real,dimension(:,:),intent(inout) :: Tab !< Array to read in 139 139 character(*),intent(in) :: filename !< File to read from 140 Real*8, dimension(:,:), pointer :: tabvar 140 real*8, dimension(:,:), pointer :: tabvar 141 141 142 142 143 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 144 149 end if 150 145 151 146 152 call read_ncdf_var(varname,filename,tabvar) … … 178 184 real,dimension(:,:),intent(inout) :: Tab 179 185 character(*),intent(in) :: filename 180 Real*8, dimension(:,:), pointer :: tabvar186 real*8, dimension(:,:), pointer :: tabvar 181 187 end subroutine lect_ncfile 182 188 end interface !<<<<<<<<<<<<<<<<<<< 183 189 184 190 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 189 196 call dat2netcdf(size(tabvar,1),size(tabvar,2),numcol,basename,filename,ncfileout) 190 197 call lect_ncfile(trim(basename)//'_'//xcol,tabvar,ncfileout) 191 198 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 193 202 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 196 206 call lect_ncfile(basename,tabvar,filename) 197 207 endif
Note: See TracChangeset
for help on using the changeset viewer.