Dear all,
Here is my ncl script and fortran program. I want to ncl generate a
string array and use fortran program
print them out.
; load build-in functions
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
;load external functions should be included path"
external write_array "./write_string.so"
begin
string_s = new((/5,5/),string)
string_s = "Hello"
print(string_s)
write_array::write_string(5,5,string_s)
end
C NCLFORTSTART
subroutine write_string(nu_lat,nu_lon,data_array)
integer nu_lon, nu_lat
character*(*) data_array(nu_lon,nu_lat)
C NCLEND
integer i, j
do j = 1, nu_lat
do i = 1, nu_lon
write(*,*) i,j,"data_array = ",data_array(i,j)
end do
end do
return
end
But Fortran program can not get data and print out. The following is
my results:
(0,0) Hello
(0,1) Hello
(0,2) Hello
(0,3) Hello
(0,4) Hello
(1,0) Hello
(1,1) Hello
(1,2) Hello
(1,3) Hello
(1,4) Hello
(2,0) Hello
(2,1) Hello
(2,2) Hello
(2,3) Hello
(2,4) Hello
(3,0) Hello
(3,1) Hello
(3,2) Hello
(3,3) Hello
(3,4) Hello
(4,0) Hello
(4,1) Hello
(4,2) Hello
(4,3) Hello
(4,4) Hello
1 1 data_array = Hello
2 1 data_array =
3 1 data_array =
4 1 data_array = {5
5 1 data_array =
1 2 data_array =
2 2 data_array = ??
3 2 data_array = ʽ
4 2 data_array = ?N
5 2 data_array = 8?
1 3 data_array = ?8Ͻ
2 3 data_array = 8?
3 3 data_array =@
4 3 data_array = [3 *
5 3 data_array = ?
1 4 data_array =
2 4 data_array = ?..
3 4 data_array = 9/9
4 4 data_array =
5 4 data_array =
1 5 data_array =
2 5 data_array = `?
3 5 data_array =
4 5 data_array =
5 5 data_array = pZ3
I have no idea. Where is the problem? Thanks.
Guangshan
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Fri May 01 2009 - 13:45:06 MDT
This archive was generated by hypermail 2.2.0 : Fri May 01 2009 - 15:10:00 MDT