Ignore:
Timestamp:
Mar 9, 2001, 4:36:10 PM (24 years ago)
Author:
lmdzadmin
Message:

Lots of stuff, plus particulierement:

  • appel a ORCHIDEE en etat de marche (pb de grille subsiste)
  • modifs de Pascale sur soil dans le cas ou ok_veget=false -
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/branches/rel-LF/libf/dyn3d/create_limit.F

    r173 r177  
    101101      REAL, ALLOCATABLE, DIMENSION (:,:) :: fraclic
    102102      REAL :: flic_tmp(iip1, jjp1)
    103       REAL :: champint(iim, jjp1)
    104103c Diverses variables locales
    105104      REAL time
     
    153152      zmasq(:) = 0.
    154153      CALL startget(varname,iip1,jjp1,rlonv,rlatu,klon,zmasq,0.0)
    155       WHERE (zmasq(1 : klon) .LE. EPSFRA)
     154      WHERE (zmasq(1 : klon) .LT. EPSFRA)
    156155          zmasq(1 : klon) = 0.
     156      END WHERE
     157      WHERE (1 - zmasq(1 : klon) .LT. EPSFRA)
     158          zmasq(1 : klon) = 1.
    157159      END WHERE
    158160!      WRITE(*,*)zmasq
     
    169171          END DO
    170172      ENDIF
    171       DO i = 1, iim
     173c$$$      DO i = 1, iim
     174c$$$      DO j = 1, jjp1
     175c$$$         mask(i,j) = masque(i,j)
     176c$$$      ENDDO
     177c$$$      ENDDO
     178c$$$      CALL gr_dyn_fi(1, iip1, jjp1, klon, masque, phy_nat0)
     179      phy_nat0(1:klon) = zmasq(1:klon)
     180      mask = 0.
    172181      DO j = 1, jjp1
    173          mask(i,j) = masque(i,j)
    174       ENDDO
    175       ENDDO
    176       CALL gr_dyn_fi(1, iip1, jjp1, klon, masque, phy_nat0)
     182        DO i = 1, iim
     183          IF ( masque(i,j) .GE. EPSFRA) mask (i,j) = 1
     184        END DO
     185      END DO 
    177186C
    178187C En cas de simulation couplee, lecture du masque ocean issu du modele ocean
     
    275284     $    pctsrf(1:klon, is_lic))
    276285C adequation avec le maque terre/mer
    277       WHERE (pctsrf(1 : klon, is_lic) .LE. EPSFRA )
     286      WHERE (pctsrf(1 : klon, is_lic) .LT. EPSFRA )
    278287          pctsrf(1 : klon, is_lic) = 0.
    279288      END WHERE
    280       WHERE (zmasq( 1 : klon) .LE. EPSFRA)
     289      WHERE (zmasq( 1 : klon) .LT. EPSFRA)
    281290          pctsrf(1 : klon, is_lic) = 0.
    282291      END WHERE
     
    289298            ELSE
    290299                pctsrf(ji,is_ter) = zmasq(ji) - pctsrf(ji, is_lic)
     300                IF (pctsrf(ji,is_ter) .LT. EPSFRA) THEN
     301                    pctsrf(ji,is_ter) = 0.
     302                    pctsrf(ji, is_lic) = zmasq(ji)
     303                ENDIF
    291304            ENDIF
    292305        ENDIF
     
    557570CPB  en attendant de mettre fraction de terre
    558571c
    559           WHERE(phy_ice(1:klon) .GT. 1.) phy_ice(1 : klon) = 1.
     572          WHERE(phy_ice(1:klon) .GE. 1.) phy_ice(1 : klon) = 1.
    560573          WHERE(phy_ice(1:klon) .LT. EPSFRA) phy_ice(1 : klon) = 0.
    561574c
     
    564577            pctsrf_t(:,is_ter,k) = pctsrf(:,is_ter)
    565578            pctsrf_t(:,is_lic,k) = pctsrf(:,is_lic)
     579            pctsrf_t(1:klon,is_sic,k) =   phy_ice(1:klon)
     580     $            - pctsrf_t(1:klon,is_lic,k)
     581c§§ Il y a des cas ou il y a de la glace dans landiceref et pas dans AMIP
     582            WHERE (pctsrf_t(1:klon,is_sic,k) .LE. 0)
     583                pctsrf_t(1:klon,is_sic,k) = 0.
     584            END WHERE
     585            WHERE( 1. - zmasq(1:klon) .LT. EPSFRA)
     586                pctsrf_t(1:klon,is_sic,k) = 0.
     587                pctsrf_t(1:klon,is_oce,k) = 0.
     588            END WHERE
    566589            DO i = 1, klon
    567               pctsrf_t(i,is_sic,k) = (1. - pctsrf_t(i,is_lic,k) -
    568      .                               pctsrf_t(i,is_ter,k)) * phy_ice(i)
    569               pctsrf_t(i,is_oce,k) = 1. - pctsrf_t(i,is_lic,k) -
    570      .                      pctsrf_t(i,is_ter,k) - pctsrf_t(i,is_sic,k) 
     590c$$              pctsrf_t(i,is_sic,k) = (1. - pctsrf_t(i,is_lic,k) -
     591c$$     .                               pctsrf_t(i,is_ter,k)) * phy_ice(i)
     592c$$              pctsrf_t(i,is_oce,k) = 1. - pctsrf_t(i,is_lic,k) -
     593c$$     .                      pctsrf_t(i,is_ter,k) - pctsrf_t(i,is_sic,k)
     594              IF ( 1. - zmasq(i) .GT. EPSFRA) THEN
     595                  IF ( pctsrf_t(i,is_sic,k) .GE. 1 - zmasq(i)) THEN
     596                      pctsrf_t(i,is_sic,k) = 1 - zmasq(i)
     597                      pctsrf_t(i,is_oce,k) = 0.
     598                  ELSE
     599                      pctsrf_t(i,is_oce,k) = 1 - zmasq(i)
     600     $                    - pctsrf_t(i,is_sic,k)
     601                      IF (pctsrf_t(i,is_oce,k) .LT. EPSFRA) THEN
     602                          pctsrf_t(i,is_oce,k) = 0.
     603                          pctsrf_t(i,is_sic,k) = 1 - zmasq(i)
     604                      ENDIF
     605                  ENDIF
     606              ENDIF 
    571607              if (pctsrf_t(i,is_oce,k) .lt. 0.) then
    572                       WRITE(*,*) 'pb sous maille au point : i,k '
    573      $                    , i,k,pctsrf_t(:,is_oce,k)
     608                  WRITE(*,*) 'pb sous maille au point : i,k '
     609     $                , i,k,pctsrf_t(:,is_oce,k)
     610              ENDIF
     611              IF ( abs( pctsrf_t(i, is_ter,k) + pctsrf_t(i, is_lic,k) +
     612     $            pctsrf_t(i, is_oce,k) + pctsrf_t(i, is_sic,k)  - 1.)
     613     $            .GT. EPSFRA) THEN
     614                  WRITE(*,*) 'physiq : pb sous surface au point ', i,
     615     $                pctsrf_t(i, 1 : nbsrf,k), phy_ice(i)
    574616              ENDIF
    575617            END DO
    576           ELSE
     618        ELSE
    577619            DO i = 1, klon
    578620              pctsrf_t(i,is_ter,k) = pctsrf(i,is_ter)
     
    750792      ENDDO
    751793c
     794      WHERE(phy_sst .LT. 271.35) phy_sst = 271.35
    752795      ierr = NF_CLOSE(ncid)
    753796c
Note: See TracChangeset for help on using the changeset viewer.