diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 6ba8d83984325d8138102903d0428b07887e3a3d..cd4f419175b5f9e2164687d3aa04ba4db0600766 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -1905,6 +1905,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XHLC_HRC, XHLC_HCF, XHLI_HRI, XHLI_HCF, & ZSEA, ZTOWN ) DEALLOCATE(ZTOWN) + DEALLOCATE(ZSEA) ELSE CALL RESOLVED_CLOUD ( CCLOUD, CACTCCN, CSCONV, CMF_CLOUD, NRR, NSPLITR, & NSPLITG, IMI, KTCOUNT, & @@ -1997,6 +1998,7 @@ IF (CELEC /= 'NONE' .AND. (CCLOUD(1:3) == 'ICE')) THEN XINPRS, XINPRG, XINPRH, & ZSEA, ZTOWN ) DEALLOCATE(ZTOWN) + DEALLOCATE(ZSEA) ELSE CALL RESOLVED_ELEC_n (CCLOUD, CSCONV, CMF_CLOUD, & NRR, NSPLITR, IMI, KTCOUNT, OEXIT, & @@ -2126,11 +2128,23 @@ IF (LSTATION) & !* 24.3 PROFILER (observation diagnostic) ! --------------------------------- ! -IF (LPROFILER) & - CALL PROFILER_n(XTSTEP, & +IF (LPROFILER) THEN + IF (CSURF=='EXTE') THEN + ALLOCATE(ZSEA(IIU,IJU)) + ZSEA(:,:) = 0. + CALL MNHGET_SURF_PARAM_n (PSEA=ZSEA(:,:)) + CALL PROFILER_n(XTSTEP, & XXHAT, XYHAT, XZZ,XRHODREF, & XUT, XVT, XWT, XTHT, XRT, XSVT, XTKET, XTSRAD, XPABST, & XAER, XCLDFR, XCIT,PSEA=ZSEA(:,:)) + DEALLOCATE(ZSEA) + ELSE + CALL PROFILER_n(XTSTEP, & + XXHAT, XYHAT, XZZ,XRHODREF, & + XUT, XVT, XWT, XTHT, XRT, XSVT, XTKET, XTSRAD, XPABST, & + XAER, XCLDFR, XCIT) + END IF +END IF ! ! CALL SECOND_MNH2(ZTIME2) diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90 index 433a5c6ef02ae8a1630718f497b1f602b536f7a5..c1eabd5e17de3dff4cbce78e0f26fbb09c915329 100644 --- a/src/MNH/profilern.f90 +++ b/src/MNH/profilern.f90 @@ -31,7 +31,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PP ! pressure REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PAER ! aerosol extinction REAL, DIMENSION(:,:,:), INTENT(IN) :: PCLDFR ! cloud fraction REAL, DIMENSION(:,:,:), INTENT(IN) :: PCIT ! ice concentration -REAL, DIMENSION(:,:), INTENT(IN) :: PSEA ! for radar +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! for radar ! !------------------------------------------------------------------------------- ! @@ -97,7 +97,7 @@ USE MODD_GRID USE MODD_SUB_PROFILER_n USE MODD_NSV USE MODD_PARAMETERS -USE MODD_PARAM_n, ONLY: CCLOUD, CRAD +USE MODD_PARAM_n, ONLY: CCLOUD, CRAD, CSURF USE MODD_PROFILER_n USE MODD_TIME, only: tdtexp USE MODD_TIME_n, only: tdtcur @@ -157,7 +157,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PP ! pressure REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PAER ! aerosol extinction REAL, DIMENSION(:,:,:), INTENT(IN) :: PCLDFR ! cloud fraction REAL, DIMENSION(:,:,:), INTENT(IN) :: PCIT ! ice concentration -REAL, DIMENSION(:,:), INTENT(IN) :: PSEA ! for radar +REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA ! for radar ! !------------------------------------------------------------------------------- ! @@ -548,10 +548,15 @@ IF (GSTORE) THEN DO JLOOP=3,6 ZRZ(:,JLOOP)=PROFILER_INTERP(PR(:,:,:,JLOOP)) END DO - DO JK=1,IKU - ZRZ(JK,2)=PROFILER_INTERP_2D(PR(:,:,JK,2)*PSEA(:,:)) ! becomes cloud mixing ratio over sea - ZRZ(JK,7)=PROFILER_INTERP_2D(PR(:,:,JK,2)*(1.-PSEA(:,:))) ! becomes cloud mixing ratio over land - END DO + IF (CSURF=="EXTE") THEN + DO JK=1,IKU + ZRZ(JK,2)=PROFILER_INTERP_2D(PR(:,:,JK,2)*PSEA(:,:)) ! becomes cloud mixing ratio over sea + ZRZ(JK,7)=PROFILER_INTERP_2D(PR(:,:,JK,2)*(1.-PSEA(:,:))) ! becomes cloud mixing ratio over land + END DO + ELSE + ZRZ(:,2)=PROFILER_INTERP(PR(:,:,:,2)) + ZRZ(:,7)=0. + END IF ALLOCATE(ZAELOC(IKU)) ! ZAELOC(:)=0.