--- trunk/libf/dyn3d/startdyn.f90 2008/10/15 16:19:57 20 +++ trunk/libf/dyn3d/startdyn.f90 2010/04/01 09:07:28 30 @@ -22,7 +22,7 @@ ! Host associated variables appearing and modified in this procedure : ! iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn, lon_ini, lat_ini, levdyn_ini - USE ioipsl, only: flininfo, flinopen_nozoom, flinget + USE flincom, only: flininfo, flinopen_nozoom, flinget use comgeom, only: aire_2d, apoln, apols use conf_dat2d_m, only: conf_dat2d use inter_barxy_m, only: inter_barxy @@ -136,12 +136,12 @@ !******************************** - function start_inter_3d(varname, lon_in2, lat_in2, pls_in) + subroutine start_inter_3d(varname, lon_in2, lat_in2, pls_in, var3d) ! This procedure gets a 3D variable from a file and does the ! interpolations needed. - USE ioipsl, only: flinget + USE flincom, only: flinget use numer_rec, only: assert_eq, spline, splint use inter_barxy_m, only: inter_barxy use gr_int_dyn_m, only: gr_int_dyn @@ -150,8 +150,7 @@ CHARACTER(len=*), intent(in):: varname REAL, intent(in):: lon_in2(:), lat_in2(:) REAL, intent(in):: pls_in(:, :, :) - - REAL start_inter_3d(size(lon_in2), size(pls_in, 2), size(pls_in, 3)) + REAL, intent(out):: var3d(:, :, :) ! LOCAL: INTEGER iml, jml, lml @@ -167,12 +166,13 @@ print *, "Call sequence information: start_inter_3d" - iml = assert_eq(size(pls_in, 1), size(lon_in2), "start_inter_3d iml") - jml = size(pls_in, 2) - lml = size(pls_in, 3) + iml = assert_eq(size(pls_in, 1), size(lon_in2), size(var3d, 1), & + "start_inter_3d iml") + jml = assert_eq(size(pls_in, 2), size(var3d, 2), "start_inter_3d jml") + lml = assert_eq(size(pls_in, 3), size(var3d, 3), "start_inter_3d lml") print *, "iml = ", iml, ", jml = ", jml - print *, "fid_dyn = ", fid_dyn, ", varname = ", varname + print *, "varname = ", varname print *, "iml_dyn = ", iml_dyn, ", jml_dyn = ", jml_dyn, & ", llm_dyn = ", llm_dyn, ", ttm_dyn = ", ttm_dyn print *, 'Going into flinget to extract the 3D field.' @@ -196,13 +196,12 @@ ay(:) = var_tmp3d(ii, ij, llm_dyn:1:-1) yder(:) = SPLINE(ax, ay) do il=1, lml - start_inter_3d(ii, ij, il) & - = SPLINT(ax, ay, yder, pls_in(ii, ij, il)) + var3d(ii, ij, il) = SPLINT(ax, ay, yder, pls_in(ii, ij, il)) END do ENDDO ENDDO - start_inter_3d(iml, :, :) = start_inter_3d(1, :, :) + var3d(iml, :, :) = var3d(1, :, :) - END function start_inter_3d + END subroutine start_inter_3d END MODULE startdyn