61 INTEGER,
INTENT(IN) :: KI
62 REAL,
DIMENSION(:,:),
INTENT(IN) :: PKAPPA
64 REAL,
DIMENSION(:),
INTENT(IN) :: PKAPPAC
66 REAL,
DIMENSION(:),
INTENT(IN) :: PRO_I
67 REAL,
DIMENSION(:,:),
INTENT(OUT):: PRO_T
72 INTEGER :: JCAT, JPIX, JMESH_ISBA,JJ
73 INTEGER,
DIMENSION(KI) :: INSAT
74 INTEGER,
DIMENSION(KI) :: INDRY
75 REAL,
DIMENSION(NNCAT,NMESHT) :: ZROSAT
76 REAL,
DIMENSION(NNCAT,NMESHT) :: ZRODRY
77 CHARACTER(LEN=30) :: YVAR
79 REAL::ZSMALL,ZTMP,ZTMP2
80 REAL(KIND=JPRB) :: ZHOOK_HANDLE
82 IF (
lhook)
CALL dr_hook(
'ISBA_TO_TOPDSAT',0,zhook_handle)
98 jpix=
nmaski(jmesh_isba,jcat,jj)
104 IF (pkappa(jcat,jpix).GE.pkappac(jcat))
THEN 106 zrosat(jcat,jpix) = pro_i(
nmaskt(jcat,jpix))
109 zrodry(jcat,jpix) = pro_i(
nmaskt(jcat,jpix))
125 DO jpix = 1,
nnmc(jcat)
129 IF (insat(
nmaskt(jcat,jpix)).GT.0 .AND. pkappa(jcat,jpix)/=
xundef)
THEN 130 pro_t(jcat,jpix) = zrosat(jcat,jpix) / insat(
nmaskt(jcat,jpix))
132 ELSEIF (indry(
nmaskt(jcat,jpix)).GT.0 .AND. pkappa(jcat,jpix)/=
xundefTHEN 133 pro_t(jcat,jpix) = zrodry(jcat,jpix) / indry(
nmaskt(jcat,jpix))
135 pro_t(jcat,jpix) = 0.
145 DO jpix = 1,
nnmc(jcat)
147 IF (pro_t(jcat,jpix)/=
xundef) ztmp = ztmp + pro_t(jcat,jpix)
155 zsmall=abs(ztmp2*0.001)
157 IF( abs(ztmp-ztmp2) > zsmall )
THEN 158 WHERE ( pro_t(jcat,:)/=xundef )
159 pro_t(jcat,:) = pro_t(jcat,:)- ((ztmp-ztmp2)/nnmc(jcat))
165 IF (lhook)
CALL dr_hook(
'ISBA_TO_TOPDSAT',1,zhook_handle)
integer, dimension(:), allocatable nnpix
integer, parameter nundef
subroutine isba_to_topdsat(PKAPPA, PKAPPAC, KI, PRO_I, PRO_T)
integer, dimension(:,:,:), allocatable nmaski
integer, dimension(:,:), allocatable nmaskt
integer, dimension(:), allocatable nnmc