diff --git a/sorc/global_cycle.fd/machine.f90 b/sorc/global_cycle.fd/machine.f90 index 138e75323..99ef6e4c4 100755 --- a/sorc/global_cycle.fd/machine.f90 +++ b/sorc/global_cycle.fd/machine.f90 @@ -8,17 +8,8 @@ MODULE MACHINE IMPLICIT NONE SAVE -! Machine dependant constants - integer, parameter :: kind_io4 = 4 - integer, parameter :: kind_io8 = 8 - integer, parameter :: kind_ior = 8 - integer, parameter :: kind_evod = 8 - integer, parameter :: kind_dbl_prec = 8 - integer, parameter :: kind_rad = selected_real_kind(13,60) !< the '60' maps to 64-bit real - integer, parameter :: kind_phys = selected_real_kind(13,60) !< the '60' maps to 64-bit real - integer, parameter :: kind_REAL = 8 !< used in cmp_comm - integer, parameter :: kind_INTEGER = 4 !< -,,- -! - real(kind=kind_evod), parameter :: mprec = 1.e-12 !< machine precision to restrict dep - + integer, parameter :: kind_io4 = 4 !< Kind type for 4-byte float point + !! variables. + integer, parameter :: kind_io8 = 8 !< Kind type for 8-byte float point + !! variables. END MODULE MACHINE diff --git a/sorc/global_cycle.fd/sfcsub.F b/sorc/global_cycle.fd/sfcsub.F index c5b190350..732c2f8bc 100644 --- a/sorc/global_cycle.fd/sfcsub.F +++ b/sorc/global_cycle.fd/sfcsub.F @@ -49,11 +49,39 @@ module sfccyc_module ! ! grib code for each parameter - used in subroutines sfccycle and setrmsk. ! - integer kpdtsf,kpdwet,kpdsno,kpdzor,kpdais,kpdtg3,kpdplr,kpdgla, - & kpdmxi,kpdscv,kpdsmc,kpdoro,kpdmsk,kpdstc,kpdacn,kpdveg, - & kpdvet,kpdsot - &, kpdvmn,kpdvmx,kpdslp,kpdabs - &, kpdsnd, kpdabs_0, kpdabs_1, kpdalb(4) + integer kpdtsf !< GRIB1 parameter number of skin temperature/SST. + integer kpdwet !< GRIB1 parameter number of soil wetness. + integer kpdsno !< GRIB1 parameter number of liquid equivalent snow + !! depth. + integer kpdzor !< GRIB1 parameter number of physical snow depth. + integer kpdais !< GRIB1 parameter number of roughness length. + integer kpdtg3 !< GRIB1 parameter number of soil substrate + !! temperature. + integer kpdplr !< GRIB1 parameter number of plant resistance. + integer kpdgla !< GRIB1 parameter number of glacial ice. + integer kpdmxi !< GRIB1 parameter number of maximum ice extent. + integer kpdscv !< GRIB1 parameter number of snow cover. + integer kpdsmc !< GRIB1 parameter number of soil moisture. + integer kpdoro !< GRIB1 parameter number of orography. + integer kpdmsk !< GRIB1 parameter number of land mask. + integer kpdstc !< GRIB1 parameter number of soil temperature. + integer kpdacn !< GRIB1 parameter number of sea ice concentration. + integer kpdveg !< GRIB1 parameter number of vegetation greenness. + integer kpdvet !< GRIB1 parameter number of vegetation type. + integer kpdsot !< GRIB1 parameter number of soil type. + integer kpdvmn !< GRIB1 parameter number of minimum vegetation + !! greenness. + integer kpdvmx !< GRIB1 parameter number of maximum vegetation + !! greenness. + integer kpdslp !< GRIB1 parameter number of slope type. + integer kpdabs !< GRIB1 parameter number of maximum snow albedo. + integer kpdsnd !< GRIB1 parameter number of physical snow depth. + integer kpdabs_0 !< GRIB1 parameter number of legacy maximum snow + !! albedo. + integer kpdabs_1 !< GRIB1 parameter number of modis-based + !! maximum snow albedo. + integer kpdalb(4) !< GRIB1 parameter number of 4-component + !! snow-free albedo. parameter(kpdtsf=11, kpdwet=86, kpdsno=65, kpdzor=83, ! 1 kpdalb=84, kpdais=91, kpdtg3=11, kpdplr=224, 1 kpdais=91, kpdtg3=11, kpdplr=224, @@ -64,14 +92,22 @@ module sfccyc_module & kpdvet=225, kpdsot=224,kpdabs_1=159, & kpdsnd=66 ) ! - integer, parameter :: kpdalb_0(4)=(/212,215,213,216/) - integer, parameter :: kpdalb_1(4)=(/189,190,191,192/) - integer, parameter :: kpdalf(2)=(/214,217/) -! - integer, parameter :: xdata=5000, ydata=2500, mdata=xdata*ydata - integer :: veg_type_landice - integer :: soil_type_landice -! + integer, parameter :: kpdalb_0(4)=(/212,215,213,216/) !< GRIB1 parameter + !! numbers for brigleb + !! snow-free albedo. + integer, parameter :: kpdalb_1(4)=(/189,190,191,192/) !< GRIB1 parameter + !! numbers for modis + !! snow-free albedo. + integer, parameter :: kpdalf(2)=(/214,217/) !< GRIB1 parameter numbers of + !! fraction for strongly/weakly + !! zenith angle dependent albedo. + integer, parameter :: xdata=5000 !< Maximum 'i' dimension of input data. + integer, parameter :: ydata=2500 !< Maximum 'j' dimension of input data. + integer, parameter :: mdata=xdata*ydata !< Maximum number of input data points. + integer :: veg_type_landice !< Vegetation type category at permanent + !! land-ice points. + integer :: soil_type_landice !< Soil type category at permanent + !! land-ice points. end module sfccyc_module !> Surface cycling driver routine. Update 'first guess' surface @@ -6850,8 +6886,8 @@ subroutine qcbyfc(tsffcs,snofcs,qctsfs,qcsnos,qctsfi, !! @param[in] data The input data. !! @param[in] imax "i" dimension of input grid. !! @param[in] jmax "j" dimension of input grid. -!! @param[out] rlnout Latitudes on input data grid. -!! @param[out] rltout Longitudes on input data grid. +!! @param[out] rlnout Longitudes on input data grid. +!! @param[out] rltout Latitudes on input data grid. !! @param[out] lmask True, when input data has a mask. !! @param[out] rslmsk The mask of the input data grid. !! @param[in] gaus Is high-resolution mask on a gaussian grid. @@ -7343,22 +7379,22 @@ subroutine setrmsk(kpds5,slmask,igaul,jgaul,wlon,rnlat, return end -!> ??? +!> Interpolation from lat/lon or gaussian grid to a lat/lon grid. !! -!! @param[in] gauin -!! @param[in] imxin -!! @param[in] jmxin -!! @param[in] regout -!! @param[in] imxout -!! @param[in] jmxout -!! @param[in] wlon -!! @param[in] rnlat -!! @param[in] rlnout -!! @param[in] rltout -!! @param[in] gaus -!! @param[in] blno -!! @param[in] blto -!! @author M. Iredell, xuli, Hang Lei, George Gayno +!! @param[in] gauin Input data. +!! @param[in] imxin 'i' dimension of input data. +!! @param[in] jmxin 'j' dimension of input data. +!! @param[out] regout Output data. +!! @param[in] imxout 'i' dimension of output data. +!! @param[in] jmxout 'j' dimension of output data. +!! @param[in] wlon Longitude of west boundary of input data. +!! @param[in] rnlat Latitude of north row of input data. +!! @param[in] rlnout Longitudes on output data grid. +!! @param[in] rltout Latitudes on output data grid. +!! @param[in] gaus Is input data on gaussian grid? +!! @param[in] blno Corner point longitude of input data. +!! @param[in] blto Corner point latitude of input data. +!! @author Shrinivas Moorthi subroutine ga2la(gauin,imxin,jmxin,regout,imxout,jmxout, & wlon,rnlat,rlnout,rltout,gaus,blno, blto) use machine , only : kind_io8,kind_io4