UPP  V11.0.0
 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  if(me==0) write(0,*) "PROCESS starts"
57 !
58 ! COMPUTE/POST FIELDS ON MDL SURFACES.
59 !
60  btim = mpi_wtime()
61  CALL mdlfld
62  if(me==0) write(0,*) "PROCESS MDLFLD done"
63  etafld2_tim = etafld2_tim +(mpi_wtime() - btim)
64 !
65 ! COMPUTE/POST FIELDS ON PRESSURE SURFACES.
66  btim = mpi_wtime()
67  CALL mdl2p(iostatusd3d)
68  if(me==0) write(0,*) "PROCESS MDL2P done"
69  eta2p_tim = eta2p_tim +(mpi_wtime() - btim)
70 !
71 ! COMPUTE/POST FIELDS ON SIGMA SURFACES.
72  btim = mpi_wtime()
73  CALL mdl2sigma
74  if(me==0) write(0,*) "PROCESS MDL2SIGMA done"
75  CALL mdl2sigma2
76  if(me==0) write(0,*) "PROCESS MDL2SIGMA2 done"
77  mdl2sigma_tim = mdl2sigma_tim +(mpi_wtime() - btim)
78 !
79 ! COMPUTE/POST FIELDS ON AGL SURFCES.
80  btim = mpi_wtime()
81  CALL mdl2agl
82  if(me==0) write(0,*) "PROCESS MDL2AGL done"
83  mdl2agl_tim = mdl2agl_tim +(mpi_wtime() - btim)
84 !
85 ! COMPUTE/POST SURFACE RELATED FIELDS.
86  btim = mpi_wtime()
87  CALL surfce
88  if(me==0) write(0,*) "PROCESS SURFCE done"
89  surfce2_tim = surfce2_tim +(mpi_wtime() - btim)
90 !
91 ! COMPUTE/POST SOUNDING AND CLOUD RELATED FIELDS.
92  btim = mpi_wtime()
93  CALL cldrad
94  if(me==0) write(0,*) "PROCESS CLDRAD done"
95  cldrad_tim = cldrad_tim +(mpi_wtime() - btim)
96 !
97 ! COMPUTE/POST TROPOPAUSE DATA, FD LEVEL FIELDS,
98 ! FREEZING LEVEL HEIGHT AND RH, BOUNDARY LAYER FIELDS,
99 ! AND LFM-NGM LOOK-ALIKE FIELDS.
100  btim = mpi_wtime()
101  CALL miscln
102  if(me==0) write(0,*) "PROCESS MISCLN done"
103  miscln_tim = miscln_tim +(mpi_wtime() - btim)
104 
105 ! COMPUTE/POST TROPOPAUSE DATA, FD LEVEL FIELDS,
106 ! FREEZING LEVEL HEIGHT AND RH, BOUNDARY LAYER FIELDS,
107 ! AND LFM-NGM LOOK-ALIKE FIELDS.
108  btim = mpi_wtime()
109  CALL mdl2std_p
110  if(me==0) write(0,*) "PROCESS MDL2STD_P done"
111  mdl2std_tim = mdl2std_tim +(mpi_wtime() - btim)
112 !
113 ! POST FIXED FIELDS.
114  btim = mpi_wtime()
115  CALL fixed
116  if(me==0) write(0,*) "PROCESS FIXED done"
117  fixed_tim = fixed_tim +(mpi_wtime() - btim)
118 !
119 ! COMPUTE/POST FIELDS ON SIGMA SURFACES.
120  btim = mpi_wtime()
121  CALL mdl2thandpv(kth,kpv,th,pv)
122  if(me==0) write(0,*) "PROCESS MDL2THANDPV done"
123  mdl2thandpv_tim = mdl2thandpv_tim +(mpi_wtime() - btim)
124 !
125 ! POST RADIANCE AND BRIGHTNESS FIELDS.
126  btim = mpi_wtime()
127  CALL calrad_wcloud
128  if(me==0) write(0,*) "PROCESS CALRAD_WCLOUD done"
129  calrad_wcloud_tim = calrad_wcloud_tim +(mpi_wtime() - btim)
130 !
131 ! END OF ROUTINE.
132 !
133  ntlfld=cfld
134  if(me==0)print *,'nTLFLD=',ntlfld
135  if(me==0) write(0,*) "PROCESS done"
136 !
137  RETURN
138  END