UPP (upp-srw-2.2.0)
Loading...
Searching...
No Matches
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
subroutine fixed
SUBPROGRAM: FIXED POSTS FIXED FIELDS PRGRMMR: TREADON ORG: W/NP2 DATE: 93-08-30.
Definition FIXED.f:45
subroutine mdl2agl
SUBPROGRAM: MDL2P VERT INTRP OF MODEL LVLS TO AGL HEIGHT PRGRMMR: CHUANG ORG: W/NP22 DATE: 05-05-23
Definition MDL2AGL.f:50
subroutine mdl2sigma2
SUBPROGRAM: MDL2P VERT INTRP OF MODEL LVLS TO PRESSURE PRGRMMR: BLACK ORG: W/NP22 DATE: 99-09-23
Definition MDL2SIGMA2.f:46
subroutine mdl2sigma
SUBPROGRAM: MDL2P VERT INTRP OF MODEL LVLS TO PRESSURE PRGRMMR: BLACK ORG: W/NP22 DATE: 99-09-23
Definition MDL2SIGMA.f:55
subroutine mdl2std_p()
mdl2std_p() vertical interpolation of model levels to standard atmospheric pressure.
Definition MDL2STD_P.f:23
subroutine mdl2thandpv(kth, kpv, th, pv)
mdl2thandpv() vertical interpolation of model levels to isentropic and potential vorticity levels.
Definition MDL2THANDPV.f:31
subroutine mdlfld
SUBPROGRAM: MDLFLD SLP AND NATIVE LEVEL POSTING PRGRMMR: TREADON ORG: W/NP2 DATE: 92-12-21
Definition MDLFLD.f:91
subroutine miscln
SUBPROGRAM: MISCLN POSTS MISCELLANEOUS FIELDS PRGRMMR: TREADON ORG: W/NP2 DATE: 92-12-20.
Definition MISCLN.f:90
subroutine surfce
SURFCE posts surface-based fields.
Definition SURFCE.f:67