<p><b>fanglin.yang@noaa.gov</b> 2012-05-10 17:43:50 -0600 (Thu, 10 May 2012)</p><p>reorganize structure 05-10-2012<br>
</p><hr noshade><pre><font color="gray">Deleted: branches/atmos_physics_gfs/src/core_atmos_physics_gfs/GFS_InternalState.f
===================================================================
--- branches/atmos_physics_gfs/src/core_atmos_physics_gfs/GFS_InternalState.f        2012-05-10 23:40:46 UTC (rev 1895)
+++ branches/atmos_physics_gfs/src/core_atmos_physics_gfs/GFS_InternalState.f        2012-05-10 23:43:50 UTC (rev 1896)
@@ -1,322 +0,0 @@
-!
-! !MODULE: GFS_InternalState_module --- Internal state definition of the
-! ESMF gridded component of the GFS system.
-!
-! !DESCRIPTION: GFS_InternalState_module --- Define the GFS internal state used to
-! create the ESMF internal state.
-!---------------------------------------------------------------------------
-! !REVISION HISTORY:
-!
-! November 2004 Weiyu Yang Initial code.
-! May 2005 Weiyu Yang for the updated GFS version.
-! February 2006 Shrinivas Moorthi updated for the new version of GFS
-! September2006 Weiyu Yang For the ensemble run couple version.
-! April 2009 Shrinivas Moorthi merge GEFS and generalized GFS versions
-! May 2012 Fanglin Yang simplified for use in MAPS without ESMF
-!
-! !INTERFACE:
-!
- MODULE GFS_InternalState_module
-
-!!USES:
-!------
-!fy USE ESMF_Mod
-USE NameList_ESMFMod, ONLY: nam_gfs_Namelist
-
- USE MACHINE, ONLY: kind_rad, kind_phys, kind_io4, kind_evod
- USE layout1
- USE gg_def
- USE vert_def
- USE sig_io
- USE date_def
- USE namelist_def
- USE namelist_soilveg
- USE mpi_def
-!!!!!! USE semi_lag_def
- USE coordinate_def ! hmhj
- USE tracer_const ! hmhj
-!fy USE matrix_sig_def
- use module_ras , only : nrcmax
- use ozne_def
- use d3d_def
- use Sfc_Flx_ESMFMod
- use Nst_Var_ESMFMod
-
- IMPLICIT none
-
- TYPE GFS_InternalState
-
-!fy TYPE(nam_gfs_NameList) :: nam_gfs
-!fy TYPE(ESMF_State_Namelist) :: ESMF_Sta_List
-
- TYPE(Sfc_Var_Data) :: sfc_fld
- TYPE(Flx_Var_Data) :: flx_fld
- TYPE(Nst_Var_Data) :: nst_fld
-
- INTEGER :: me, mm1, nodes
- INTEGER :: lonr_s, latr_s, lnt2_s
- INTEGER :: lnt2, grid4_i1(2)
- integer :: grib_inp
- INTEGER :: npe_single_member
-
- REAL(KIND = kind_io4), DIMENSION(:, :), POINTER :: &
- z_im, ps_im, vor_im, div_im, temp_im, q_im, oz_im, scld_im, &
- z_ex, ps_ex, vor_ex, div_ex, temp_ex, q_ex, oz_ex, scld_ex
-
- REAL(KIND = kind_evod), DIMENSION(:, :), POINTER :: trieo_ls_im
- REAL(KIND = kind_evod), DIMENSION(:, :), POINTER :: write_work8
- REAL(KIND = kind_evod), DIMENSION(:, :), POINTER :: write_work8_ini
-
-!
-! idate1_im and idate1_ex: (1) --- bfhour (integer), (2) - (5) --- idate.
-!-------------------------------------------------------------------------
-!
- INTEGER, DIMENSION(:, :), POINTER :: idate1_im, idate1_ex
-
- REAL(KIND = kind_io4), DIMENSION(:, :), POINTER :: &
- orography_im, t_skin_im, snow_depth_im, &
- deep_soil_t_im, roughness_im, conv_cloud_cover_im, &
- conv_cloud_base_im, conv_cloud_top_im, albedo_visible_scattered_im,&
- albedo_visible_beam_im, albedo_nearIR_scattered_im, albedo_nearIR_beam_im, &
- sea_level_ice_mask_im, vegetation_cover_im, canopy_water_im, &
- m10_wind_fraction_im, vegetation_type_im, soil_type_im, &
- zeneith_angle_facsf_im, zeneith_angle_facwf_im, uustar_im, &
- ffmm_im, ffhh_im, sea_ice_thickness_im, &
- sea_ice_concentration_im, tprcp_im, srflag_im, &
- actual_snow_depth_im, vegetation_cover_min_im, vegetation_cover_max_im, &
- slope_type_im, snow_albedo_max_im, &
-
-! MOdified by Weiyu (DHOU, 04/04/2008).
-!-------------------
- soil_t_im1, soil_t_im2, soil_t_im3, soil_mois_im1, soil_mois_im2, soil_mois_im3, &
- liquid_soil_moisture_im1, liquid_soil_moisture_im2, liquid_soil_moisture_im3, &
-
- orography_ex, t_skin_ex, snow_depth_ex, &
- deep_soil_t_ex, roughness_ex, conv_cloud_cover_ex, &
- conv_cloud_base_ex, conv_cloud_top_ex, albedo_visible_scattered_ex,&
- albedo_visible_beam_ex, albedo_nearIR_scattered_ex, albedo_nearIR_beam_ex, &
- sea_level_ice_mask_ex, vegetation_cover_ex, canopy_water_ex, &
- m10_wind_fraction_ex, vegetation_type_ex, soil_type_ex, &
- zeneith_angle_facsf_ex, zeneith_angle_facwf_ex, uustar_ex, &
- ffmm_ex, ffhh_ex, sea_ice_thickness_ex, &
- sea_ice_concentration_ex, tprcp_ex, srflag_ex, &
- actual_snow_depth_ex, vegetation_cover_min_ex, vegetation_cover_max_ex, &
- slope_type_ex, snow_albedo_max_ex
-
- REAL(KIND = kind_io4), DIMENSION(:, :, :), POINTER :: &
- soil_mois_im, soil_t_im, soil_mois_ex, soil_t_ex, &
- liquid_soil_moisture_im, liquid_soil_moisture_ex
-
-! To represent the trie_ls and trio_ls in the ESMF states, add levh. Weiyu.
-!--------------------------------------------------------------------------
-
-! INTEGER ntrac,nxpt,nypt,jintmx,jcap,levs,levh,lonf,lonr,latg,latr
- INTEGER ntrac,jcapg,jcap,levs,levh,lonf,lonr,latg,latr
- INTEGER ntoz, ntcw, ncld, lsoil, nmtvr, num_p3d, num_p2d,levr
-
- CHARACTER(16) :: CFHOUR1
-
- INTEGER :: KDT
- REAL :: DELTIM
-
-! For creating the ESMF interface state with the GFS
-! internal parallel structure. Weiyu.
-!---------------------------------------------------
- INTEGER :: TRIEO_TOTAL_SIZE
- INTEGER, ALLOCATABLE, DIMENSION(:) :: TRIE_LS_SIZE, TRIO_LS_SIZE
- INTEGER, ALLOCATABLE, DIMENSION(:) :: TRIEO_LS_SIZE
- INTEGER, ALLOCATABLE, DIMENSION(:) :: LS_MAX_NODE_GLOBAL
- INTEGER, ALLOCATABLE, DIMENSION(:, :) :: LS_NODE_GLOBAL
-
-! For flexible choose the time interval of the tendency time difference.
-!-----------------------------------------------------------------------
- INTEGER :: advanceCount_SetUp
-
-!fy CHARACTER(ESMF_MAXSTR) :: TRIEO_STATE_NAME
-!fy CHARACTER(ESMF_MAXSTR) :: TRIEO_STINI_NAME
-
- INTEGER ,ALLOCATABLE :: LONSPERLAT (:)
- INTEGER ,ALLOCATABLE :: lonsperlar (:)
- INTEGER ,ALLOCATABLE :: LS_NODE (:)
- INTEGER ,ALLOCATABLE :: LS_NODES (:, :)
- INTEGER ,ALLOCATABLE :: MAX_LS_NODES (:)
-
- INTEGER ,ALLOCATABLE :: LATS_NODES_A (:)
- INTEGER ,ALLOCATABLE :: GLOBAL_LATS_A (:)
-! INTEGER ,ALLOCATABLE :: LATS_NODES_EXT (:)
-! INTEGER ,ALLOCATABLE :: GLOBAL_LATS_EXT(:)
-
- INTEGER ,ALLOCATABLE :: LATS_NODES_R (:)
- INTEGER ,ALLOCATABLE :: GLOBAL_LATS_R (:)
-
- real(kind=kind_phys) ,allocatable :: fscav(:)
-
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: EPSE (:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: EPSO (:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: EPSEDN(:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: EPSODN(:)
-
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: SNNP1EV(:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: SNNP1OD(:)
-
- INTEGER ,ALLOCATABLE :: NDEXEV(:)
- INTEGER ,ALLOCATABLE :: NDEXOD(:)
-
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PLNEV_A(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PLNOD_A(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PDDEV_A(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PDDOD_A(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PLNEW_A(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PLNOW_A(:,:)
-
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PLNEV_R(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PLNOD_R(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PDDEV_R(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PDDOD_R(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PLNEW_R(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PLNOW_R(:,:)
-
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: TRIE_LS(:,:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: TRIO_LS(:,:,:)
-
-! For Ensemble forecast requirement, add two more arrays to save the
-! initial conditions. Weiyu.
-!------------------------------------------------------------------
- REAL(KIND=KIND_EVOD) , POINTER :: TRIE_LS_INI(:,:,:)
- REAL(KIND=KIND_EVOD) , POINTER :: TRIO_LS_INI(:,:,:)
-
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: SYN_LS_A(:,:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: DYN_LS_A(:,:,:)
-
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: SYN_GR_A_1(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: SYN_GR_A_2(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: DYN_GR_A_1(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: DYN_GR_A_2(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: ANL_GR_A_1(:,:)
- REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: ANL_GR_A_2(:,:)
-
- REAL(KIND=KIND_RAD) ,ALLOCATABLE :: XLON(:,:),XLAT(:,:)
- REAL(KIND=KIND_RAD) ,ALLOCATABLE :: COSZDG(:,:)
- REAL(KIND=KIND_RAD) ,ALLOCATABLE :: sfalb(:,:)
- REAL(KIND=KIND_RAD) ,ALLOCATABLE :: HPRIME(:,:,:)
- REAL(KIND=KIND_RAD) ,ALLOCATABLE :: SWH(:,:,:),HLW(:,:,:)
- REAL(KIND=KIND_RAD) ,ALLOCATABLE :: FLUXR(:,:,:)
-!!
-
-! REAL(KIND=KIND_RAD) ,ALLOCATABLE :: phy_f3d(:,:,:,:,:)
- REAL(KIND=KIND_RAD) ,ALLOCATABLE :: phy_f3d(:,:,:,:)
- REAL(KIND=KIND_RAD) ,ALLOCATABLE :: phy_f2d(:,:,:)
-
-!JFE REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: LBASIY(:,:,:)
-!JFE REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PHI(:)
-!JFE REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: DPHI(:)
-!JFE REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: DLAM(:),LAMEXT(:,:),LAM(:,:)
-!JFE REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: LAMMP(:,:,:)
-!JFE REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: PHIMP(:,:,:)
-!JFE REAL(KIND=KIND_EVOD) ,ALLOCATABLE :: SIGMP(:,:,:)
-!!
-! FOR OZONE PRODUCTION AND DISTRUCTION RATES:(INPUT THROU FIXIO_R)
- INTEGER LEV,LEVMAX
-!!$$$ PARAMETER (LATS18=18, LEV46=46)
-!!$$$ REAL POZ(LEV46),PHOUR
-!!$$$ REAL OZPRDIN(LATS18,LEV46,36) !OZON PRODUCTION RATE
-!!$$$ REAL OZDISIN(LATS18,LEV46,36) !OZON DISTUCTION RATE
- real phour
- INTEGER :: KFHOUR
- real, allocatable :: poz(:),ozplin(:,:,:,:)
-! FOR OZONE INTERPOLATION:
- INTEGER,ALLOCATABLE:: JINDX1(:),JINDX2(:)
-!
- REAL (KIND=KIND_PHYS) PDRYINI
- REAL,ALLOCATABLE:: DDY(:)
- REAL(KIND=KIND_EVOD) SLAG,SDEC,CDEC
-!!
-!JFE INTEGER,ALLOCATABLE :: LATSINPE(:)
-!JFE INTEGER,ALLOCATABLE :: LATLOCAL(:,:)
-
- INTEGER INIT,JCOUNT,JPT,NODE
- INTEGER IBMSIGN
- INTEGER LON_DIM,ILAT
-
- real(kind=kind_evod) colat1
-!!
- REAL(KIND=KIND_EVOD) RONE
- REAL(KIND=KIND_EVOD) RLONS_LAT
- REAL(KIND=KIND_EVOD) SCALE_IBM
-
- INTEGER P_GZ,P_ZEM,P_DIM,P_TEM,P_RM,P_QM
- INTEGER P_ZE,P_DI,P_TE,P_RQ,P_Q,P_DLAM,P_DPHI,P_ULN,P_VLN
- INTEGER P_W,P_X,P_Y,P_RT,P_ZQ
-!C OLD COMMON /COMFSPEC/
-!!$$$ PARAMETER(P_GZ = 0*LEVS+0*LEVH+1, ! GZE/O(LNTE/OD,2),
-!!$$$ X P_ZEM = 0*LEVS+0*LEVH+2, ! ZEME/O(LNTE/OD,2,LEVS),
-!!$$$ X P_DIM = 1*LEVS+0*LEVH+2, ! DIME/O(LNTE/OD,2,LEVS),
-!!$$$ X P_TEM = 2*LEVS+0*LEVH+2, ! TEME/O(LNTE/OD,2,LEVS),
-!!$$$ X P_RM = 3*LEVS+0*LEVH+2, ! RME/O(LNTE/OD,2,LEVH),
-!!$$$ X P_QM = 3*LEVS+1*LEVH+2, ! QME/O(LNTE/OD,2),
-!!$$$ X P_ZE = 3*LEVS+1*LEVH+3, ! ZEE/O(LNTE/OD,2,LEVS),
-!!$$$ X P_DI = 4*LEVS+1*LEVH+3, ! DIE/O(LNTE/OD,2,LEVS),
-!!$$$ X P_TE = 5*LEVS+1*LEVH+3, ! TEE/O(LNTE/OD,2,LEVS),
-!!$$$ X P_RQ = 6*LEVS+1*LEVH+3, ! RQE/O(LNTE/OD,2,LEVH),
-!!$$$ X P_Q = 6*LEVS+2*LEVH+3, ! QE/O(LNTE/OD,2),
-!!$$$ X P_DLAM= 6*LEVS+2*LEVH+4, ! DPDLAME/O(LNTE/OD,2),
-!!$$$ X P_DPHI= 6*LEVS+2*LEVH+5, ! DPDPHIE/O(LNTE/OD,2),
-!!$$$ X P_ULN = 6*LEVS+2*LEVH+6, ! ULNE/O(LNTE/OD,2,LEVS),
-!!$$$ X P_VLN = 7*LEVS+2*LEVH+6, ! VLNE/O(LNTE/OD,2,LEVS),
-!!$$$ X P_W = 8*LEVS+2*LEVH+6, ! WE/O(LNTE/OD,2,LEVS),
-!!$$$ X P_X = 9*LEVS+2*LEVH+6, ! XE/O(LNTE/OD,2,LEVS),
-!!$$$ X P_Y =10*LEVS+2*LEVH+6, ! YE/O(LNTE/OD,2,LEVS),
-!!$$$ X P_RT =11*LEVS+2*LEVH+6, ! RTE/O(LNTE/OD,2,LEVH),
-!!$$$ X P_ZQ =11*LEVS+3*LEVH+6) ! ZQE/O(LNTE/OD,2)
-
- INTEGER LOTS,LOTD,LOTA
-
-!!$$$ PARAMETER ( LOTS = 5*LEVS+1*LEVH+3 )
-!!$$$ PARAMETER ( LOTD = 6*LEVS+2*LEVH+0 )
-!!$$$ PARAMETER ( LOTA = 3*LEVS+1*LEVH+1 )
-
- INTEGER IBRAD,IFGES,IHOUR,INI,J,JDT,KSOUT,MAXSTP
- INTEGER mdt,idt,timetot,timer,time0
- INTEGER MODS,N1,N2,N3,N4,NDGF,NDGI,NFILES,NFLPS
- INTEGER n1hyb, n2hyb
- INTEGER NGES,NGPKEN,NITER,NNMOD,NRADF,NRADR
- INTEGER NSFCF,NSFCI,NSFCS,NSIGI,NSIGS,NSTEP
-! INTEGER NZNLF,NZNLI,NZNLS,ID,IRET,NSOUT
- INTEGER NZNLF,NZNLI,NZNLS,ID,IRET,NSOUT,kdt_switch
-
- INTEGER IERR,IPRINT,K,L,LOCL,N
- INTEGER LAN,LAT
-
- REAL(KIND=KIND_EVOD) CHOUR
- REAL(KIND=KIND_EVOD) zhour
- LOGICAL LSOUT
- LOGICAL SPS
-!DHOU 05/28/2008, add SPS for applying stochastic or not
- INTEGER HOUTASPS
-!DHOU 09/08/2008, add HOUTASPS for time (iintegration hour) of output after SPS
-
- REAL(KIND=KIND_EVOD),ALLOCATABLE :: TEE1(:)
-
-!JFE REAL(KIND=KIND_EVOD) PHIBS,DPHIBR
-
-!!$$$ INTEGER INDLSEV,JBASEV
-!!$$$ INTEGER INDLSOD,JBASOD
-
-
- INTEGER ikey,nrank_all,kcolor
-
- REAL(KIND=KIND_EVOD) CONS0P5,CONS1200,CONS3600 !CONSTANT
- REAL(KIND=KIND_EVOD) CONS0 !CONSTANT
-
- LOGICAL LSLAG
-
- END TYPE GFS_InternalState
-
-! This state is supported by C pointer not F90 pointer, thus
-! need this wrap.
-!-----------------------------------------------------------
- TYPE GFS_wrap
- TYPE (GFS_InternalState), POINTER :: gis
- END TYPE GFS_wrap
-
- END MODULE GFS_InternalState_module
Added: branches/atmos_physics_gfs/src/core_atmos_physics_gfs/gfsmisc_def.f
===================================================================
--- branches/atmos_physics_gfs/src/core_atmos_physics_gfs/gfsmisc_def.f         (rev 0)
+++ branches/atmos_physics_gfs/src/core_atmos_physics_gfs/gfsmisc_def.f        2012-05-10 23:43:50 UTC (rev 1896)
@@ -0,0 +1,28 @@
+ module gfsmisc_def
+ use machine
+
+ implicit none
+ save
+
+ logical, parameter :: fix_ncld_hr=.true.
+ integer, parameter :: nrcmax=30 ! Maximum number of random clouds per 1200s
+ real, parameter :: rlapse=0.65e-2, omz1=10.0
+
+ real (kind=kind_ior) :: CONS0, CONS0P5, CONS1200, CONS3600
+ real (kind=kind_phys) :: pdryini
+ real (kind=kind_evod) :: phour,zhour,deltim
+ real (kind=kind_evod) :: slag,sdec,cdec,batah
+ integer :: kdt,iret,iprint,MAXSTP
+ logical :: lsout
+
+ integer, allocatable :: lonsperlar(:),global_lats_r(:)
+ integer, allocatable :: jindx1(:),jindx2(:)
+ real, allocatable :: ozplin(:,:,:,:) !OZONE PL Coeff
+ real (kind=kind_rad), allocatable :: xlat(:,:), xlon(:,:),
+ & coszdg(:,:), hprime(:,:,:), fluxr(:,:,:), sfalb(:,:),
+ & swh(:,:,:), hlw(:,:,:),
+ & sinlat_r2(:,:),coslat_r2(:,:)
+ real (kind=kind_phys), allocatable :: phy_f3d(:,:,:,:),
+ & phy_f2d(:,:,:), ddy(:), fscav(:)
+
+ end module gfsmisc_def
Property changes on: branches/atmos_physics_gfs/src/core_atmos_physics_gfs/gfsmisc_def.f
___________________________________________________________________
Added: svn:executable
+ *
</font>
</pre>