! testje program tralala use libxbeach_module use introspection_module use iso_c_binding use process_input implicit none integer c,index,ix,ir,rc,nx,ny,ntheta,nd,ngd,ndischarge character typecode real*8 r,x,t,tstop real*8, allocatable:: r1(:),r2(:,:),r3(:,:,:),r4(:,:,:,:) integer, allocatable :: i1(:),i2(:) character(30) :: string,name,string1,string2 character(6) ok rc = readinput() if(rc.eq.1) then call halt_program endif rc = init() string = 't' string1 = 'nx' string2 = 'hh' ir=-1 c = getnparameter(ir) ok='NOT OK' if (ir.eq.271) ok='OK' write(*,'(a)',advance='no') ok print *,'getnparameter',c,ir index = 20 name = " " c = getparametername(index,name) ok='NOT OK' if (name .eq. 'aquiferbotfile') ok='OK' write(*,'(a)',advance='no') ok print *,'getparametername:',index,c,trim(name) typecode='0' c = getparametertype(string,typecode) ok='NOT OK' if (typecode .eq. 'r') ok='OK' write(*,'(a)',advance='no') ok print *,'getparametertype:',trim(string),c,typecode x = 10 c = setdoubleparameter(string,x) ok='NOT OK' if (c .eq. 0) ok='OK' write(*,'(a)',advance='no') ok print *,'setdoubleparameter:',trim(string),c r = -1 c = getdoubleparameter(string,r) ok='NOT OK' if(r .eq.10) ok='OK' write(*,'(a)',advance='no') ok print *,'getdoubleparameter:',trim(string),c,r c = getintparameter(string1,ir) ok='NOT OK' if(ir .eq.200) ok='OK' write(*,'(a)',advance='no') ok print *,'getintparameter:',trim(string1),c,ir c = getnarray(ir) ok='NOT OK' if(ir .eq.282) ok='OK' write(*,'(a)',advance='no') ok print *,'getnarray',c,ir typecode='0' c = getarraytype(string2,typecode) ok='NOT OK' if(typecode .eq.'r') ok='OK' write(*,'(a)',advance='no') ok print *,'getarraytype:',trim(string2),c,typecode ir = 0 c = getarrayrank(string2,ir) ok='NOT OK' if(ir .eq.2) ok='OK' write(*,'(a)',advance='no') ok print *,'getarrayrank:',trim(string2),c,ir name = " " c = getarrayname(20,name) ok='NOT OK' if(name .eq.'alfaz') ok='OK' write(*,'(a)',advance='no') ok print *,'getarrayname:',40,c,trim(name) x = 0.123d0 c = set0ddoublearray('dx',x) ok='NOT OK' if(c .eq. 0) ok='OK' write(*,'(a)',advance='no') ok print *,'set0ddoublearray:',x,c x = 0 c = get0ddoublearray_fortran('dx',x) ok='NOT OK' if(x .eq. 0.123d0) ok='OK' write(*,'(a)',advance='no') ok print *,'get0ddoublearray:',c,x c = get0dintarray('tidelen',ir) ok='NOT OK' if(ir .eq. 2) ok='OK' write(*,'(a)',advance='no') ok print *,'getintparameter:','tidelen',c,ir allocate(r1(ir)) r1 = 650 c = set1ddoublearray('tideinpt ',r1) ok='NOT OK' if(c .eq. 0) ok='OK' write(*,'(a)',advance='no') ok print *,'set1ddoublearray:','tideinpt',r1(1),c r1 = -1 c = get1ddoublearray('tideinpt ',r1) ok='NOT OK' if(all(r1 .eq. 650)) ok='OK' write(*,'(a)',advance='no') ok print *,'get1ddoublearray:','tideinpt',c,r1(1) deallocate(r1) c = getintparameter('nx',nx) ok='NOT OK' if(nx .eq. 200) ok='OK' write(*,'(a)',advance='no') ok print *,'getintparameter:nx',c,nx c = getintparameter('ny',ny) ok='NOT OK' if(ny .eq. 500) ok='OK' write(*,'(a)',advance='no') ok print *,'getintparameter:ny',c,ny allocate(r2(nx+1,ny+1)) r2 = 650 c = set2ddoublearray('x ',r2) ok='NOT OK' if(c .eq. 0) ok='OK' write(*,'(a)',advance='no') ok print *,'set2ddoublearray:','x',r2(1,1),c r2 = -1 c = get2ddoublearray('x ',r2) ok='NOT OK' if(all(r2 .eq. 650)) ok='OK' write(*,'(a)',advance='no') ok print *,'get2ddoublearray:','x',c,r2(1,1) deallocate(r2) c = get0dintarray('ntheta',ntheta) ok='NOT OK' if(ntheta .eq. 1) ok='OK' write(*,'(a)',advance='no') ok print *,'get0dintarray:ntheta',c,ntheta allocate(r3(nx+1,ny+1,ntheta)) r3 = 650 c = set3ddoublearray('cgx ',r3) ok='NOT OK' if(c .eq. 0) ok='OK' write(*,'(a)',advance='no') ok print *,'set3ddoublearray:','cgx',r3(1,1,1),c r3 = -1 c = get3ddoublearray('cgx ',r3) ok='NOT OK' if(all(r3 .eq. 650)) ok='OK' write(*,'(a)',advance='no') ok print *,'get3ddoublearray:','cgx',c,r3(1,1,1) deallocate(r3) c = getintparameter('nd',nd) ok='NOT OK' if(nd .eq. 3) ok='OK' write(*,'(a)',advance='no') ok print *,'getintparameter:nd',c,nd c = getintparameter('ngd',ngd) ok='NOT OK' if(ngd .eq. 1) ok='OK' write(*,'(a)',advance='no') ok print *,'getintparameter:ngd',c,ngd allocate(r4(nx+1,ny+1,max(nd,2),ngd)) r4 = 650 c = set4ddoublearray('pbbed ',r4) ok='NOT OK' if(c .eq. 0) ok='OK' write(*,'(a)',advance='no') ok print *,'set4ddoublearray:','pbbed',r4(1,1,1,1),c r4 = -1 c = get4ddoublearray('pbbed ',r4) ok='NOT OK' if(all(r4 .eq. 650)) ok='OK' write(*,'(a)',advance='no') ok print *,'get4ddoublearray:','pbbed',c,r4(1,1,1,1) deallocate(r4) c = getintparameter('ndischarge',ndischarge) ok='NOT OK' if(ndischarge .eq. 0) ok='OK' write(*,'(a)',advance='no') ok print *,'getintparameter:ndischarge',c,ndischarge if (ndischarge .gt. 0) then allocate(i1(ndischarge)) i1 = 650 c = set1dintarray('pntdisch ',i1) ok='NOT OK' if(c .eq. 0) ok='OK' write(*,'(a)',advance='no') ok print *,'set1dintarray:','pntdisch',i1(1),c i1 = -1 c = get1dintarray('pntdisch ',i1) ok='NOT OK' if(all(i1 .eq. 650)) ok='OK' write(*,'(a)',advance='no') ok print *,'get1dintarray:','pntdisch',c,i1(1) deallocate(i1) else print *,'ndischarge is',ndischarge,' so no test possible' endif end