UPP  001
 All Data Structures Files Functions Pages
PROCESS.f
Go to the documentation of this file.
1 
28  SUBROUTINE process(kth,kpv,th,pv,iostatusD3D)
29 !
30 !----------------------------------------------------------------------------
31 !
32  use mpi, only: mpi_wtime
33 
34  use ctlblk_mod, only: cfld, etafld2_tim, eta2p_tim, mdl2sigma_tim, surfce2_tim,&
35  mdl2agl_tim, mdl2std_tim, mdl2thandpv_tim, calrad_wcloud_tim,&
36  cldrad_tim, miscln_tim, fixed_tim, ntlfld, me
37 !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
38  implicit none
39 !
40 !------ DECLARE VARIABLES.
41 !
42  integer,intent(in) :: kth
43  integer,intent(in) :: kpv
44  integer,intent(in) :: iostatusd3d
45  real,intent(in) :: th(kth)
46  real,intent(in) :: pv(kpv)
47  real(kind=8) :: btim
48  CHARACTER*6 datset,proj
49  LOGICAL north
50 !
51 !
52 !****************************************************************************
53 ! START SUBROUTINE PROCESS.
54 !
55  cfld=0
56 !
57 ! COMPUTE/POST FIELDS ON MDL SURFACES.
58 !
59  btim = mpi_wtime()
60  CALL mdlfld
61  etafld2_tim = etafld2_tim +(mpi_wtime() - btim)
62 !
63 ! COMPUTE/POST FIELDS ON PRESSURE SURFACES.
64  btim = mpi_wtime()
65  CALL mdl2p(iostatusd3d)
66  eta2p_tim = eta2p_tim +(mpi_wtime() - btim)
67 !
68 ! COMPUTE/POST FIELDS ON SIGMA SURFACES.
69  btim = mpi_wtime()
70  CALL mdl2sigma
71  CALL mdl2sigma2
72  mdl2sigma_tim = mdl2sigma_tim +(mpi_wtime() - btim)
73 !
74 ! COMPUTE/POST FIELDS ON AGL SURFCES.
75  btim = mpi_wtime()
76  CALL mdl2agl
77  mdl2agl_tim = mdl2agl_tim +(mpi_wtime() - btim)
78 !
79 ! COMPUTE/POST SURFACE RELATED FIELDS.
80  btim = mpi_wtime()
81  CALL surfce
82  surfce2_tim = surfce2_tim +(mpi_wtime() - btim)
83 !
84 ! COMPUTE/POST SOUNDING AND CLOUD RELATED FIELDS.
85  btim = mpi_wtime()
86  CALL cldrad
87  cldrad_tim = cldrad_tim +(mpi_wtime() - btim)
88 !
89 ! COMPUTE/POST TROPOPAUSE DATA, FD LEVEL FIELDS,
90 ! FREEZING LEVEL HEIGHT AND RH, BOUNDARY LAYER FIELDS,
91 ! AND LFM-NGM LOOK-ALIKE FIELDS.
92  btim = mpi_wtime()
93  CALL miscln
94  miscln_tim = miscln_tim +(mpi_wtime() - btim)
95 
96 ! COMPUTE/POST TROPOPAUSE DATA, FD LEVEL FIELDS,
97 ! FREEZING LEVEL HEIGHT AND RH, BOUNDARY LAYER FIELDS,
98 ! AND LFM-NGM LOOK-ALIKE FIELDS.
99  btim = mpi_wtime()
100  CALL mdl2std_p
101  mdl2std_tim = mdl2std_tim +(mpi_wtime() - btim)
102 !
103 ! POST FIXED FIELDS.
104  btim = mpi_wtime()
105  CALL fixed
106  fixed_tim = fixed_tim +(mpi_wtime() - btim)
107 !
108 ! COMPUTE/POST FIELDS ON SIGMA SURFACES.
109  btim = mpi_wtime()
110  CALL mdl2thandpv(kth,kpv,th,pv)
111  mdl2thandpv_tim = mdl2thandpv_tim +(mpi_wtime() - btim)
112 !
113 ! POST RADIANCE AND BRIGHTNESS FIELDS.
114  btim = mpi_wtime()
115  CALL calrad_wcloud
116  calrad_wcloud_tim = calrad_wcloud_tim +(mpi_wtime() - btim)
117 !
118 ! END OF ROUTINE.
119 !
120  ntlfld=cfld
121  if(me==0)print *,'nTLFLD=',ntlfld
122 !
123  RETURN
124  END