Changeset 1812 in lmdz_wrf


Ignore:
Timestamp:
Mar 19, 2018, 5:54:05 PM (7 years ago)
Author:
lfita
Message:

Fixing right interpolation!

Location:
trunk/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/Makefile.llamp

    r1682 r1812  
    3333        module_NCgeneric.o \
    3434        module_scientific.o \
     35        module_ForInterpolate.o \
    3536        module_ForDiagnosticsVars.o \
    3637        module_ForDiagnostics.o \
    3738        module_DistriCorrection.o
    3839
     40FINTMODULES = \
     41        module_definitions.o \
     42        module_basic.o \
     43        module_generic.o \
     44        module_scientific.o \
     45        module_ForInterpolate.o
     46
    3947all : \
    4048        module_ForDiagnostics.o \
     49        interpolate.o \
    4150        DistriCorrection.o \
    42         interpolate.o \
    4351        pydistrimods.o \
    4452        pydiagmods.o \
     
    7381        $(FC) $(FCFLAGS) module_scientific.f90
    7482
     83module_ForInterpolate.o: module_definitions.o module_generic.o
     84        $(FC) $(FCFLAGS) $(LIB_INC) module_ForInterpolate.f90
     85
    7586module_ForDiagnosticsVars.o: module_definitions.o module_basic.o module_generic.o
    7687        $(FC) $(FCFLAGS) $(LIB_INC) module_ForDiagnosticsVars.f90
     
    8293        $(FC) $(FCFLAGS) module_DistriCorrection.f90
    8394
     95FCEXEFINTCFLAGS = $(FINTMODULES) $(LIB_NETCDF) $(LIB_INC)
    8496FCEXECFLAGS = $(MODULES) $(LIB_NETCDF) $(LIB_INC)
    8597
    86 interpolate.o: module_definitions.o module_basic.o module_generic.o module_scientific.o
    87         $(FC) $(FCEXECFLAGS) interpolate.f90 -o interpolate
     98interpolate.o: module_definitions.o module_basic.o module_generic.o module_scientific.o module_ForInterpolate.o
     99        $(FC) $(FCEXEFINTCFLAGS) interpolate.f90 -o interpolate
    88100
    89101DistriCorrection.o: module_definitions.o module_basic.o module_generic.o module_NCgeneric.o module_scientific.o module_DistriCorrection.o
  • trunk/tools/module_ForInterpolate.f90

    r1608 r1812  
    14061406     INTEGER, INTENT(IN)                                 :: ix, iy, iz, it
    14071407     INTEGER, INTENT(IN)                                 :: num_metgrid_levels, LINLOG
    1408      REAL, DIMENSION(ix,iy,iz,it), INTENT(IN)            :: data_in, pres_field, tk, qv
    1409      REAL, DIMENSION(ix,iy,it), INTENT(IN)               :: psfc
    1410      REAL, DIMENSION(ix,iy), INTENT(IN)                  :: ter
    1411      REAL, DIMENSION(num_metgrid_levels), INTENT(IN)    :: interp_levels
     1408     REAL(r_k),DIMENSION(ix,iy,iz,it), INTENT(IN)        :: data_in, pres_field, tk, qv
     1409     REAL(r_k),DIMENSION(ix,iy,it), INTENT(IN)           :: psfc
     1410     REAL(r_k),DIMENSION(ix,iy), INTENT(IN)              :: ter
     1411     REAL(r_k),DIMENSION(num_metgrid_levels), INTENT(IN) :: interp_levels
    14121412     INTEGER, INTENT(IN)                                 :: extrapolate
    1413      REAL, INTENT(IN)                                    :: MISSING
     1413     REAL(r_k),INTENT(IN)                                :: MISSING
    14141414     LOGICAL, INTENT(IN)                                 :: GEOPT
    1415      REAL, DIMENSION(ix,iy,num_metgrid_levels,it),                                                    &
     1415     REAL(r_k),DIMENSION(ix,iy,num_metgrid_levels,it),                                                &
    14161416       INTENT(OUT)                                       :: data_out
    14171417
    14181418! Local
    14191419     INTEGER                                             :: i, j, itt, k, kk, kin
    1420      REAL, DIMENSION(num_metgrid_levels)                 :: data_out1D
    1421      REAL, DIMENSION(iz)                                 :: data_in1D, pres_field1D
    1422      REAL, DIMENSION(ix, iy, num_metgrid_levels, it)     :: N
    1423      REAL                                                :: sumA, sumN, AVE_geopt
     1420     INTEGER                                             :: kupper
     1421     REAL(r_k),DIMENSION(num_metgrid_levels)             :: data_out1D
     1422     REAL(r_k),DIMENSION(iz)                             :: data_in1D, pres_field1D
     1423     REAL(r_k),DIMENSION(ix, iy, num_metgrid_levels, it) :: N
     1424     REAL(r_k)                                           :: sumA, sumN, AVE_geopt
     1425     REAL(r_k)                                           :: dp, dpmin, expon
     1426     REAL(r_k)                                           :: pbot, ptarget, tbotextrap, tvbotextrap,   &
     1427       zbot
    14241428
    14251429!!!!!!! Variables
     
    15771581
    15781582!                                                ! input types
    1579       INTEGER   :: npin,npout,linlog,ier
    1580       real      :: ppin(npin),xxin(npin),ppout(npout)
    1581       real      :: MISSING       
    1582      logical                                          :: AVERAGE
     1583      INTEGER                                            :: npin,npout,linlog,ier
     1584      REAL(r_k)                                          :: ppin(npin),xxin(npin),ppout(npout)
     1585      REAL(r_k)                                          :: MISSING       
     1586      logical                                            :: AVERAGE
    15831587!                                                ! output
    1584       real      :: xxout(npout)
    1585       INTEGER   :: j1,np,nl,nin,nlmax,nplvl
    1586       INTEGER   :: nlsave,np1,no1,n1,n2,nlstrt
    1587       real      :: slope,pa,pb,pc
     1588      REAL(r_k)                                          :: xxout(npout)
     1589      INTEGER                                            :: j1,np,nl,nin,nlmax,nplvl
     1590      INTEGER                                            :: nlsave,np1,no1,n1,n2,nlstrt
     1591      REAL(r_k)                                          :: slope,pa,pb,pc
    15881592
    15891593! automatic arrays
    1590       real      :: pin(npin),xin(npin),p(npin),x(npin)
    1591       real      :: pout(npout),xout(npout)
     1594      REAL(r_k)                                          :: pin(npin),xin(npin),p(npin),x(npin)
     1595      REAL(r_k)                                          :: pout(npout),xout(npout)
    15921596
    15931597
     
    16521656!      in K and mixing ratio in kg/kg.
    16531657
    1654      real                              :: tmp, rmix, virtual
     1658     REAL(r_k)                              :: tmp, rmix, virtual
    16551659
    16561660     virtual=tmp*(0.622+rmix)/(0.622*(1.+rmix))
Note: See TracChangeset for help on using the changeset viewer.