UPP  11.0.0
 All Data Structures Files Functions Variables Pages
PROCESS.f
Go to the documentation of this file.
1 
29  SUBROUTINE process(kth,kpv,th,pv,iostatusD3D)
30 !
31 !----------------------------------------------------------------------------
32 !
33  use mpi, only: mpi_wtime
34  use upp_ifi_mod, only: run_ifi
35  use ctlblk_mod, only: cfld, etafld2_tim, eta2p_tim, mdl2sigma_tim, surfce2_tim,&
36  mdl2agl_tim, mdl2std_tim, mdl2thandpv_tim, calrad_wcloud_tim,&
37  cldrad_tim, miscln_tim, fixed_tim, ntlfld, me, run_ifi_tim
38 !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
39  implicit none
40 !
41 !------ DECLARE VARIABLES.
42 !
43  integer,intent(in) :: kth
44  integer,intent(in) :: kpv
45  integer,intent(in) :: iostatusd3d
46  real,intent(in) :: th(kth)
47  real,intent(in) :: pv(kpv)
48  real(kind=8) :: btim
49  CHARACTER*6 datset,proj
50  LOGICAL north
51 !
52 !
53 !****************************************************************************
54 ! START SUBROUTINE PROCESS.
55 !
56  cfld=0
57  if(me==0) write(*,*) "PROCESS starts"
58 !
59 ! COMPUTE/POST FIELDS ON MDL SURFACES.
60 !
61  btim = mpi_wtime()
62  CALL mdlfld
63  if(me==0) write(*,*) "PROCESS MDLFLD done"
64  etafld2_tim = etafld2_tim +(mpi_wtime() - btim)
65 !
66 ! COMPUTE/POST FIELDS ON PRESSURE SURFACES.
67  btim = mpi_wtime()
68  CALL mdl2p(iostatusd3d)
69  if(me==0) write(*,*) "PROCESS MDL2P done"
70  eta2p_tim = eta2p_tim +(mpi_wtime() - btim)
71 !
72 ! COMPUTE/POST FIELDS ON SIGMA SURFACES.
73  btim = mpi_wtime()
74  CALL mdl2sigma
75  if(me==0) write(*,*) "PROCESS MDL2SIGMA done"
76  CALL mdl2sigma2
77  if(me==0) write(*,*) "PROCESS MDL2SIGMA2 done"
78  mdl2sigma_tim = mdl2sigma_tim +(mpi_wtime() - btim)
79 !
80 ! COMPUTE/POST FIELDS ON AGL SURFCES.
81  btim = mpi_wtime()
82  CALL mdl2agl
83  if(me==0) write(*,*) "PROCESS MDL2AGL done"
84  mdl2agl_tim = mdl2agl_tim +(mpi_wtime() - btim)
85 !
86 ! COMPUTE/POST SURFACE RELATED FIELDS.
87  btim = mpi_wtime()
88  CALL surfce
89  if(me==0) write(*,*) "PROCESS SURFCE done"
90  surfce2_tim = surfce2_tim +(mpi_wtime() - btim)
91 !
92 ! COMPUTE/POST SOUNDING AND CLOUD RELATED FIELDS.
93  btim = mpi_wtime()
94  CALL cldrad
95  if(me==0) write(*,*) "PROCESS CLDRAD done"
96  cldrad_tim = cldrad_tim +(mpi_wtime() - btim)
97 !
98 ! COMPUTE/POST TROPOPAUSE DATA, FD LEVEL FIELDS,
99 ! FREEZING LEVEL HEIGHT AND RH, BOUNDARY LAYER FIELDS,
100 ! AND LFM-NGM LOOK-ALIKE FIELDS.
101  btim = mpi_wtime()
102  CALL miscln
103  if(me==0) write(*,*) "PROCESS MISCLN done"
104  miscln_tim = miscln_tim +(mpi_wtime() - btim)
105 
106 ! COMPUTE/POST TROPOPAUSE DATA, FD LEVEL FIELDS,
107 ! FREEZING LEVEL HEIGHT AND RH, BOUNDARY LAYER FIELDS,
108 ! AND LFM-NGM LOOK-ALIKE FIELDS.
109  btim = mpi_wtime()
110  CALL mdl2std_p
111  if(me==0) write(*,*) "PROCESS MDL2STD_P done"
112  mdl2std_tim = mdl2std_tim +(mpi_wtime() - btim)
113 !
114 ! POST FIXED FIELDS.
115  btim = mpi_wtime()
116  CALL fixed
117  if(me==0) write(*,*) "PROCESS FIXED done"
118  fixed_tim = fixed_tim +(mpi_wtime() - btim)
119 !
120 ! COMPUTE/POST FIELDS ON SIGMA SURFACES.
121  btim = mpi_wtime()
122  CALL mdl2thandpv(kth,kpv,th,pv)
123  if(me==0) write(*,*) "PROCESS MDL2THANDPV done"
124  mdl2thandpv_tim = mdl2thandpv_tim +(mpi_wtime() - btim)
125 !
126 ! POST RADIANCE AND BRIGHTNESS FIELDS.
127  btim = mpi_wtime()
128  CALL calrad_wcloud
129  if(me==0) write(*,*) "PROCESS CALRAD_WCLOUD done"
130  calrad_wcloud_tim = calrad_wcloud_tim +(mpi_wtime() - btim)
131 !
132 ! IN-FLIGHT ICING PRODUCTS
133  btim = mpi_wtime()
134  CALL run_ifi
135  run_ifi_tim = run_ifi_tim +(mpi_wtime()-btim)
136 !
137 ! END OF ROUTINE.
138 !
139  ntlfld=cfld
140  if(me==0)print *,'nTLFLD=',ntlfld
141  if(me==0) write(*,*) "PROCESS done"
142 !
143  RETURN
144  END
Definition: IFI.F:5
subroutine mdl2thandpv(kth, kpv, th, pv)
mdl2thandpv() vertical interpolation of model levels to isentropic and potential vorticity levels...
Definition: MDL2THANDPV.f:30
subroutine mdl2sigma
SUBPROGRAM: MDL2P VERT INTRP OF MODEL LVLS TO PRESSURE PRGRMMR: BLACK ORG: W/NP22 DATE: 99-09-23...
Definition: MDL2SIGMA.f:54
subroutine mdl2agl
SUBPROGRAM: MDL2P VERT INTRP OF MODEL LVLS TO AGL HEIGHT PRGRMMR: CHUANG ORG: W/NP22 DATE: 05-05-23...
Definition: MDL2AGL.f:49
subroutine miscln
SUBPROGRAM: MISCLN POSTS MISCELLANEOUS FIELDS PRGRMMR: TREADON ORG: W/NP2 DATE: 92-12-20.
Definition: MISCLN.f:89
subroutine mdlfld
SUBPROGRAM: MDLFLD SLP AND NATIVE LEVEL POSTING PRGRMMR: TREADON ORG: W/NP2 DATE: 92-12-21...
Definition: MDLFLD.f:89
subroutine fixed
SUBPROGRAM: FIXED POSTS FIXED FIELDS PRGRMMR: TREADON ORG: W/NP2 DATE: 93-08-30.
Definition: FIXED.f:44
subroutine mdl2std_p()
mdl2std_p() vertical interpolation of model levels to standard atmospheric pressure.
Definition: MDL2STD_P.f:22
subroutine surfce
SURFCE posts surface-based fields.
Definition: SURFCE.f:64
subroutine mdl2sigma2
SUBPROGRAM: MDL2P VERT INTRP OF MODEL LVLS TO PRESSURE PRGRMMR: BLACK ORG: W/NP22 DATE: 99-09-23...
Definition: MDL2SIGMA2.f:45