/[lmdze]/trunk/dyn3d/startdyn.f
ViewVC logotype

Diff of /trunk/dyn3d/startdyn.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3 by guez, Wed Feb 27 13:16:39 2008 UTC revision 30 by guez, Thu Apr 1 09:07:28 2010 UTC
# Line 22  CONTAINS Line 22  CONTAINS
22      ! Host associated variables appearing and modified in this procedure :      ! Host associated variables appearing and modified in this procedure :
23      ! iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn, lon_ini, lat_ini, levdyn_ini      ! iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn, lon_ini, lat_ini, levdyn_ini
24    
25      USE ioipsl, only: flininfo, flinopen_nozoom, flinget      USE flincom, only: flininfo, flinopen_nozoom, flinget
26      use comgeom, only: aire_2d, apoln, apols      use comgeom, only: aire_2d, apoln, apols
27      use conf_dat2d_m, only: conf_dat2d      use conf_dat2d_m, only: conf_dat2d
28      use inter_barxy_m, only: inter_barxy      use inter_barxy_m, only: inter_barxy
# Line 136  CONTAINS Line 136  CONTAINS
136    
137    !********************************    !********************************
138    
139    function start_inter_3d(varname, lon_in2, lat_in2, pls_in)    subroutine start_inter_3d(varname, lon_in2, lat_in2, pls_in, var3d)
140    
141      ! This procedure gets a 3D variable from a file and does the      ! This procedure gets a 3D variable from a file and does the
142      ! interpolations needed.      ! interpolations needed.
143    
144      USE ioipsl, only: flinget      USE flincom, only: flinget
145      use nrutil, only: assert_eq      use numer_rec, only: assert_eq, spline, splint
   
146      use inter_barxy_m, only: inter_barxy      use inter_barxy_m, only: inter_barxy
     use interpolation, only: spline, splint  
147      use gr_int_dyn_m, only: gr_int_dyn      use gr_int_dyn_m, only: gr_int_dyn
148      use conf_dat3d_m, only: conf_dat3d      use conf_dat3d_m, only: conf_dat3d
149    
150      CHARACTER(len=*), intent(in):: varname      CHARACTER(len=*), intent(in):: varname
151      REAL, intent(in):: lon_in2(:), lat_in2(:)      REAL, intent(in):: lon_in2(:), lat_in2(:)
152      REAL, intent(in):: pls_in(:, :, :)      REAL, intent(in):: pls_in(:, :, :)
153        REAL, intent(out):: var3d(:, :, :)
     REAL start_inter_3d(size(lon_in2), size(pls_in, 2), size(pls_in, 3))  
154    
155      ! LOCAL:      ! LOCAL:
156      INTEGER iml, jml, lml      INTEGER iml, jml, lml
# Line 169  CONTAINS Line 166  CONTAINS
166    
167      print *, "Call sequence information: start_inter_3d"      print *, "Call sequence information: start_inter_3d"
168    
169      iml = assert_eq(size(pls_in, 1), size(lon_in2), "start_inter_3d iml")      iml = assert_eq(size(pls_in, 1), size(lon_in2), size(var3d, 1), &
170      jml = size(pls_in, 2)           "start_inter_3d iml")
171      lml = size(pls_in, 3)      jml = assert_eq(size(pls_in, 2), size(var3d, 2), "start_inter_3d jml")
172        lml = assert_eq(size(pls_in, 3), size(var3d, 3), "start_inter_3d lml")
173    
174      print *, "iml = ", iml, ", jml = ", jml      print *, "iml = ", iml, ", jml = ", jml
175      print *, 'Going into flinget to extract the 3D field.'      print *, "varname = ", varname
     print *, "fid_dyn = ", fid_dyn, ", varname = ", varname  
176      print *, "iml_dyn = ", iml_dyn, ", jml_dyn = ", jml_dyn, &      print *, "iml_dyn = ", iml_dyn, ", jml_dyn = ", jml_dyn, &
177           ", llm_dyn = ", llm_dyn, ", ttm_dyn = ", ttm_dyn           ", llm_dyn = ", llm_dyn, ", ttm_dyn = ", ttm_dyn
178        print *, 'Going into flinget to extract the 3D field.'
179      CALL flinget(fid_dyn, varname, iml_dyn, jml_dyn, llm_dyn, ttm_dyn, 1, 1, &      CALL flinget(fid_dyn, varname, iml_dyn, jml_dyn, llm_dyn, ttm_dyn, 1, 1, &
180           var_ana3d)           var_ana3d)
181    
# Line 198  CONTAINS Line 196  CONTAINS
196            ay(:) = var_tmp3d(ii, ij, llm_dyn:1:-1)            ay(:) = var_tmp3d(ii, ij, llm_dyn:1:-1)
197            yder(:) = SPLINE(ax, ay)            yder(:) = SPLINE(ax, ay)
198            do il=1, lml            do il=1, lml
199               start_inter_3d(ii, ij, il) &               var3d(ii, ij, il) = SPLINT(ax, ay, yder, pls_in(ii, ij, il))
                   = SPLINT(ax, ay, yder, pls_in(ii, ij, il))  
200            END do            END do
201         ENDDO         ENDDO
202      ENDDO      ENDDO
203      start_inter_3d(iml, :, :) = start_inter_3d(1, :, :)      var3d(iml, :, :) = var3d(1, :, :)
204    
205    END function start_inter_3d    END subroutine start_inter_3d
206    
207  END MODULE startdyn  END MODULE startdyn

Legend:
Removed from v.3  
changed lines
  Added in v.30

  ViewVC Help
Powered by ViewVC 1.1.21