- Timestamp:
- Dec 24, 2015, 12:58:33 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/cv3_cine.F90
r1992 r2416 34 34 INTEGER itop(nloc), ineg(nloc), ilow(nloc) 35 35 INTEGER ifst(nloc), isublcl(nloc) 36 LOGICAL lswitch(nloc), lswitch1(nloc), lswitch2(nloc) 36 LOGICAL lswitch(nloc), lswitch1(nloc), lswitch2(nloc), lswitch3(nloc) 37 37 LOGICAL exist_lfc(nloc) 38 38 REAL dpmax … … 161 161 END DO 162 162 163 ! 1.2.1 Recompute itop (=1st layer with positive buoyancy above ineg) 164 ! ------------------------------------------------------------------- 165 166 DO il = 1, ncum 167 IF (lswitch(il)) THEN 168 itop(il) = nl - 1 169 END IF 170 END DO 171 172 DO k = nl, 1, -1 173 DO il = 1, ncum 174 IF (lswitch(il)) THEN 175 IF (k>=ineg(il) .AND. buoy(il,k)>0) THEN 176 itop(il) = k 177 END IF 178 END IF 179 END DO 180 END DO 181 182 ! If there is no layer with positive buoyancy above ineg, set Plfc, 183 ! Cina and Cinb to arbitrary extreme values. 184 DO il = 1, ncum 185 IF (lswitch(il) .AND. itop(il) == nl - 1) THEN 186 plfc(il) = 1.121 187 cinb(il) = -1121. 188 cina(il) = -1122. 189 END IF 190 END DO 191 192 DO il = 1, ncum 193 lswitch3(il) = itop(il) < nl -1 194 lswitch(il) = lswitch1(il) .AND. lswitch2(il) .AND. lswitch3(il) 195 END DO 196 163 197 DO il = 1, ncum 164 198 IF (lswitch(il)) THEN 165 199 cinb(il) = 0. 166 200 167 ! 1.2. 1Calcul de la pression du niveau de flot. nulle juste au-dessus201 ! 1.2.2 Calcul de la pression du niveau de flot. nulle juste au-dessus 168 202 ! de LCL 169 203 ! --------------------------------------------------------------------------- … … 171 205 ! In order to get P0, one may interpolate linearly buoyancies 172 206 ! between P(ineg) and P(ineg-1). 173 p0(il) = (buoy(il,ineg(il))*p(il,ineg(il)-1)-buoy(il,ineg( &174 il)-1)*p(il,ineg(il)))/(buoy(il,ineg(il))-buoy(il,ineg(il)-1))207 p0(il) = (buoy(il,ineg(il))*p(il,ineg(il)-1)-buoy(il,ineg(il)-1)*p(il,ineg(il)))/ & 208 (buoy(il,ineg(il))-buoy(il,ineg(il)-1)) 175 209 ELSE 176 210 ! In order to get P0, one has to interpolate between P(ineg) and … … 180 214 END IF 181 215 END IF 182 END DO183 184 ! 1.2.2 Recompute itop (=1st layer with positive buoyancy above ineg)185 ! -------------------------------------------------------------------186 DO il = 1, ncum187 IF (lswitch(il)) THEN188 itop(il) = nl - 1189 END IF190 END DO191 192 DO k = nl, 1, -1193 DO il = 1, ncum194 IF (lswitch(il)) THEN195 IF (k>=ineg(il) .AND. buoy(il,k)>0) THEN196 itop(il) = k197 END IF198 END IF199 END DO200 216 END DO 201 217
Note: See TracChangeset
for help on using the changeset viewer.