Changeset 4721 for LMDZ6


Ignore:
Timestamp:
Oct 9, 2023, 2:23:04 PM (15 months ago)
Author:
Laurent Fairhead
Message:

Needed for convergence
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/LMDZ_cdrag_LSCE/libf/phylmd/cdrag_mod.F90

    r4662 r4721  
    174174  INTEGER, SAVE :: iflag_corr_insta
    175175  !$OMP THREADPRIVATE(iflag_corr_insta)
     176  LOGICAL, SAVE :: ok_cdrag_iter
     177  !$OMP THREADPRIVATE(ok_cdrag_iter)
    176178
    177179!===================================================================c
     
    247249! On choisit les fonctions de stabilite utilisees au premier appel
    248250!**************************************************************************
    249   IF (firstcall) THEN
     251 IF (firstcall) THEN
    250252   iflag_corr_sta=2
    251253   iflag_corr_insta=2
     254   ok_cdrag_iter = .FALSE.
    252255 
    253256   CALL getin_p('iflag_corr_sta',iflag_corr_sta)
    254257   CALL getin_p('iflag_corr_insta',iflag_corr_insta)
     258   CALL getin_p('ok_cdrag_iter',ok_cdrag_iter)
    255259
    256260   firstcall = .FALSE.
     
    489493             cdhh(i)=MIN(cdh(i),cdhmax)
    490494           ENDIF
    491            rugos_itm(i,1) = rugos_itm(i,2)
    492            rugos_ith(i,1) = rugos_ith(i,2)
    493            rugos_itm(i,2) =  0.018*cdmm(i) * (speed(i))/RG  &
     495           IF (ok_cdrag_iter) THEN
     496             rugos_itm(i,1) = rugos_itm(i,2)
     497             rugos_ith(i,1) = rugos_ith(i,2)
     498             rugos_itm(i,2) =  0.018*cdmm(i) * (speed(i))/RG  &
    494499                              +  0.11*14e-6 / SQRT(cdmm(i) * zdu2)
    495500
    496501!---------- Version SEPARATION DES Z0 ----------------------
    497            IF (iflag_z0_oce==0) THEN
    498              rugos_ith(i,2) = rugos_itm(i,2)
    499            ELSE IF (iflag_z0_oce==1) THEN
    500              rugos_ith(i,2) = 0.40*14e-6 / SQRT(cdmm(i) * zdu2)
     502             IF (iflag_z0_oce==0) THEN
     503               rugos_ith(i,2) = rugos_itm(i,2)
     504             ELSE IF (iflag_z0_oce==1) THEN
     505               rugos_ith(i,2) = 0.40*14e-6 / SQRT(cdmm(i) * zdu2)
     506             ENDIF
    501507           ENDIF
    502508         ENDIF
    503          rugos_itm(i,2) = MAX(1.5e-05,rugos_itm(i,2))
    504          rugos_ith(i,2) = MAX(1.5e-05,rugos_ith(i,2))
     509         IF (ok_cdrag_iter) THEN
     510           rugos_itm(i,2) = MAX(1.5e-05,rugos_itm(i,2))
     511           rugos_ith(i,2) = MAX(1.5e-05,rugos_ith(i,2))
     512         ENDIF
    505513       ENDDO
    506514       IF (nsrf.EQ.is_oce) THEN
Note: See TracChangeset for help on using the changeset viewer.