My Project
Public Member Functions | List of all members
mod_station_timeseries::putvar Interface Reference

Public Member Functions

subroutine putvar1d_int (i1, i2, n1, n1gl, kt, k1, map_type, var, nc_fid, vid, myid, nprocs, ipt, stk)
 
subroutine putvar1d_real (i1, i2, n1, n1gl, kt, k1, map_type, var, nc_fid, vid, myid, nprocs, ipt, stk)
 
subroutine putvar2d_int (i1, i2, n1, n1gl, kt, k1, map_type, var, nc_fid, vid, myid, nprocs, ipt, stk)
 
subroutine putvar2d_real (i1, i2, n1, n1gl, kt, k1, map_type, var, nc_fid, vid, myid, nprocs, ipt, stk)
 

Detailed Description

Definition at line 91 of file mod_station_timeseries.f90.

Member Function/Subroutine Documentation

◆ putvar1d_int()

subroutine mod_station_timeseries::putvar::putvar1d_int ( integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  n1,
integer, intent(in)  n1gl,
integer, intent(in)  kt,
integer, intent(in)  k1,
character(len=*), intent(in)  map_type,
integer, dimension(i1:i2)  var,
integer, intent(in)  nc_fid,
integer, intent(in)  vid,
integer, intent(in)  myid,
integer, intent(in)  nprocs,
integer, intent(in)  ipt,
integer, intent(in)  stk 
)

Definition at line 825 of file mod_station_timeseries.f90.

825 
826  !------------------------------------------------------------------------------|
827  implicit none
828  integer, intent(in) :: i1,i2,n1,n1gl,kt,k1,nc_fid,vid,myid,nprocs&
829  &,ipt, stk
830  character(len=*),intent(in) :: map_type
831  INTEGER, dimension(i1:i2) :: var
832 
833  INTEGER, allocatable, dimension(:,:) :: temp
834 
835  allocate(temp(i1:i2,kt))
836  temp(i1:i2,kt)= var
837 
838  call putvar2d_int(i1,i2,n1,n1gl,kt,k1,map_type,temp,nc_fid,vid&
839  &,myid,nprocs,ipt, stk)
840 
841  deallocate(temp)
842 
integer myid
Definition: mod_main.f90:67
subroutine putvar2d_int(i1, i2, n1, n1gl, kt, k1, map_type, var, nc_fid, vid, myid, nprocs, ipt, stk)
integer nc_fid

◆ putvar1d_real()

subroutine mod_station_timeseries::putvar::putvar1d_real ( integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  n1,
integer, intent(in)  n1gl,
integer, intent(in)  kt,
integer, intent(in)  k1,
character(len=*), intent(in)  map_type,
real(sp), dimension(i1:i2)  var,
integer, intent(in)  nc_fid,
integer, intent(in)  vid,
integer, intent(in)  myid,
integer, intent(in)  nprocs,
integer, intent(in)  ipt,
integer, intent(in)  stk 
)

Definition at line 721 of file mod_station_timeseries.f90.

721 
722  !------------------------------------------------------------------------------|
723  implicit none
724  integer, intent(in) :: i1,i2,n1,n1gl,kt,k1,nc_fid,vid,myid,nprocs&
725  &,ipt,stk
726  character(len=*),intent(in) :: map_type
727  real(sp), dimension(i1:i2) :: var
728 
729  real(sp), allocatable, dimension(:,:) :: temp
730 
731  allocate(temp(i1:i2,kt))
732  temp(i1:i2,1)=var
733 
734  CALL putvar2d_real(i1,i2,n1,n1gl,kt,k1,map_type,temp,nc_fid,vid&
735  &,myid,nprocs,ipt,stk)
736 
737  deallocate(temp)
738 
integer myid
Definition: mod_main.f90:67
integer nc_fid
subroutine putvar2d_real(i1, i2, n1, n1gl, kt, k1, map_type, var, nc_fid, vid, myid, nprocs, ipt, stk)

◆ putvar2d_int()

subroutine mod_station_timeseries::putvar::putvar2d_int ( integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  n1,
integer, intent(in)  n1gl,
integer, intent(in)  kt,
integer, intent(in)  k1,
character(len=*), intent(in)  map_type,
integer, dimension(:,:), allocatable  var,
integer, intent(in)  nc_fid,
integer, intent(in)  vid,
integer, intent(in)  myid,
integer, intent(in)  nprocs,
integer, intent(in)  ipt,
integer, intent(in)  stk 
)

Definition at line 847 of file mod_station_timeseries.f90.

847 
848  !------------------------------------------------------------------------------|
849 
850  use all_vars, only : nvg
851  use mod_nctools,only : handle_ncerr
852  use mod_utils, only : pstop
853  implicit none
854  integer, intent(in) :: i1,i2,n1,n1gl,kt,k1,nc_fid,vid,myid,nprocs&
855  &,ipt,stk
856  character(len=*),intent(in) :: map_type
857  INTEGER, allocatable :: var(:,:)
858 
859  INTEGER, allocatable, dimension(:,:) :: temp,gtemp
860  integer :: ierr,k1m1,i,j
861  integer, allocatable :: dims(:)
862 
863 
864  k1m1 = k1
865  if(k1m1 == 1)then
866  allocate(dims(2))
867  dims(1) = 1
868  dims(2) = stk
869  else
870  allocate(dims(3))
871  dims(1) = 1
872  dims(2) = 1
873  dims(3) = stk
874  end if
875 
876 
877  if(map_type(1:1) /= "e" .and. map_type(1:1) /= "n")then
878  write(ipt,*)'map_type input to putvar should be "e" OR "n"'
879  call pstop
880  end if
881 
882  if(nprocs==1)then
883  allocate(temp(nsta,k1m1))
884 
885  if(map_type(1:1) == 'n' .and. trim(location_type) == 'node')then
886  do i=1,nsta
887  temp(i,1:k1m1) = var(node_sta(i),1:k1m1)
888  end do
889  else if(map_type(1:1) == 'e' .and. trim(location_type) == 'cell')then
890  do i=1,nsta
891  temp(i,1:k1m1) = var(element_sta(i),1:k1m1)
892  end do
893  else if(map_type(1:1) == 'n' .and. trim(location_type) == 'cell')then
894  do i=1,nsta
895  temp(i,:) = 0.0_sp
896  do j =1,3
897  temp(i,1:k1m1) = temp(i,1:k1m1) + var(nvg(element_sta(i),j),1:k1m1)
898  end do
899  temp(i,:) = temp(i,:)/3.0_sp
900  end do
901  else if(map_type(1:1) == 'e' .and. trim(location_type) == 'node')then
902  do i=1,nsta
903  temp(i,:) = 0.0_sp
904  do j =1, ntvegl(node_sta(i))
905  temp(i,1:k1m1) = temp(i,1:k1m1) + var(nbvegl(node_sta(i),j),1:k1m1)
906  end do
907  temp(i,:) = temp(i,:)/ntvegl(node_sta(i))
908  end do
909  end if
910  end if
911 
912 
913 ! if(myid /= 1) return
914  if(myid == 1) then
915  ierr = nf90_put_var(nc_fid,vid,temp,start=dims)
916  if(ierr /= nf90_noerr)then
917  call handle_ncerr(ierr,"error writing variable to netcdf")
918  end if
919  end if
920  deallocate(dims,temp)
921 
922  return
integer myid
Definition: mod_main.f90:67
subroutine handle_ncerr(status, programer_msg)
integer, dimension(:,:), allocatable nbvegl
subroutine pstop
Definition: mod_utils.f90:273
integer, dimension(:,:), allocatable nvg
Definition: mod_main.f90:969
integer, dimension(:), allocatable ntvegl
integer nc_fid
integer, dimension(:), allocatable node_sta
integer, dimension(:), allocatable element_sta

◆ putvar2d_real()

subroutine mod_station_timeseries::putvar::putvar2d_real ( integer, intent(in)  i1,
integer, intent(in)  i2,
integer, intent(in)  n1,
integer, intent(in)  n1gl,
integer, intent(in)  kt,
integer, intent(in)  k1,
character(len=*), intent(in)  map_type,
real(sp), dimension(:,:), allocatable  var,
integer, intent(in)  nc_fid,
integer, intent(in)  vid,
integer, intent(in)  myid,
integer, intent(in)  nprocs,
integer, intent(in)  ipt,
integer, intent(in)  stk 
)

Definition at line 744 of file mod_station_timeseries.f90.

744 !------------------------------------------------------------------------------|
745 
746  use all_vars, only : nvg
747  use mod_nctools,only : handle_ncerr
748  use mod_types
749  use mod_utils, only : pstop
750  implicit none
751  integer, intent(in) :: i1,i2,n1,n1gl,kt,k1,nc_fid,vid,myid,nprocs&
752  &,ipt, stk
753  character(len=*),intent(in) :: map_type
754  real(sp), allocatable :: var(:,:)
755 
756  real(sp), allocatable, dimension(:,:) :: temp,gtemp
757  integer :: ierr,k1m1,i,j
758  integer, allocatable :: dims(:)
759 
760 
761  k1m1 = k1
762  if(k1m1 == 1)then
763  allocate(dims(2))
764  dims(1) = 1
765  dims(2) = stk
766  else
767  allocate(dims(3))
768  dims(1) = 1
769  dims(2) = 1
770  dims(3) = stk
771  end if
772 
773 
774  if(map_type(1:1) /= "e" .and. map_type(1:1) /= "n")then
775  write(ipt,*)'map_type input to putvar should be "e" OR "n"'
776  call pstop
777  end if
778 
779  if(nprocs==1)then
780  allocate(temp(nsta,k1m1))
781 
782  if(map_type(1:1) == 'n' .and. trim(location_type) == 'node')then
783  do i=1,nsta
784  temp(i,1:k1m1) = var(node_sta(i),1:k1m1)
785  end do
786  else if(map_type(1:1) == 'e' .and. trim(location_type) == 'cell')then
787  do i=1,nsta
788  temp(i,1:k1m1) = var(element_sta(i),1:k1m1)
789  end do
790  else if(map_type(1:1) == 'n' .and. trim(location_type) == 'cell')then
791  do i=1,nsta
792  temp(i,:) = 0.0_sp
793  do j =1,3
794  temp(i,1:k1m1) = temp(i,1:k1m1) + var(nvg(element_sta(i),j),1:k1m1)
795  end do
796  temp(i,:) = temp(i,:)/3.0_sp
797  end do
798  else if(map_type(1:1) == 'e' .and. trim(location_type) == 'node')then
799  do i=1,nsta
800  temp(i,:) = 0.0_sp
801  do j =1, ntvegl(node_sta(i))
802  temp(i,1:k1m1) = temp(i,1:k1m1) + var(nbvegl(node_sta(i),j),1:k1m1)
803  end do
804  temp(i,:) = temp(i,:)/ntvegl(node_sta(i))
805  end do
806  end if
807  end if
808 
809 
810 ! if(myid /= 1) return
811  if(myid == 1) then
812  ierr = nf90_put_var(nc_fid,vid,temp,start=dims)
813  if(ierr /= nf90_noerr)then
814  call handle_ncerr(ierr,"error writing variable to netcdf")
815  end if
816  end if
817  deallocate(dims,temp)
818 
819  return
integer myid
Definition: mod_main.f90:67
subroutine handle_ncerr(status, programer_msg)
integer, dimension(:,:), allocatable nbvegl
subroutine pstop
Definition: mod_utils.f90:273
integer, dimension(:,:), allocatable nvg
Definition: mod_main.f90:969
integer, dimension(:), allocatable ntvegl
integer nc_fid
integer, dimension(:), allocatable node_sta
integer, dimension(:), allocatable element_sta

The documentation for this interface was generated from the following file: