Ignore:
Timestamp:
Jul 5, 2000, 4:58:04 PM (24 years ago)
Author:
lmdzadmin
Message:

Interface avec les differentes surface, version de travail.LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/branches/rel-LF/libf/phylmd/condsurf.F

    r79 r98  
    3131
    3232      LOGICAL newlmt
    33       PARAMETER (newlmt=.FALSE.)
     33      PARAMETER (newlmt=.TRUE.)
    3434
    3535      INTEGER     nannemax
     
    114114      IF (newlmt) THEN
    115115c
    116 c Fraction "ocean":
    117       ierr = NF_INQ_VARID (nid, "FOCE", nvarid)
    118       IF (ierr .NE. NF_NOERR) THEN
    119          PRINT*, "condsurf: Le champ <FOCE> est absent"
    120          CALL abort
    121       ENDIF
    122 #ifdef NC_DOUBLE
    123       ierr = NF_GET_VARA_DOUBLE(nid,nvarid,debut,epais,pctsrf(1,is_oce))
    124 #else
    125       ierr = NF_GET_VARA_REAL(nid,nvarid,debut,epais,pctsrf(1,is_oce))
    126 #endif
    127       IF (ierr .NE. NF_NOERR) THEN
    128          PRINT*, "condsurf: Lecture echouee pour <FOCE>"
    129          CALL abort
    130       ENDIF
     116c$$$c Fraction "ocean":
     117c$$$      ierr = NF_INQ_VARID (nid, "FOCE", nvarid)
     118c$$$      IF (ierr .NE. NF_NOERR) THEN
     119c$$$         PRINT*, "condsurf: Le champ <FOCE> est absent"
     120c$$$         CALL abort
     121c$$$      ENDIF
     122c$$$#ifdef NC_DOUBLE
     123c$$$      ierr = NF_GET_VARA_DOUBLE(nid,nvarid,debut,epais,pctsrf(1,is_oce))
     124c$$$#else
     125c$$$      ierr = NF_GET_VARA_REAL(nid,nvarid,debut,epais,pctsrf(1,is_oce))
     126c$$$#endif
     127c$$$      IF (ierr .NE. NF_NOERR) THEN
     128c$$$         PRINT*, "condsurf: Lecture echouee pour <FOCE>"
     129c$$$         CALL abort
     130c$$$      ENDIF
    131131c
    132132c Fraction "glace de mer":
     133c
     134c
    133135      ierr = NF_INQ_VARID (nid, "FSIC", nvarid)
    134136      IF (ierr .NE. NF_NOERR) THEN
     
    145147         CALL abort
    146148      ENDIF
    147 c
    148 c Fraction "terre":
    149       ierr = NF_INQ_VARID (nid, "FTER", nvarid)
    150       IF (ierr .NE. NF_NOERR) THEN
    151          PRINT*, "condsurf: Le champ <FTER> est absent"
    152          CALL abort
    153       ENDIF
    154 #ifdef NC_DOUBLE
    155       ierr = NF_GET_VARA_DOUBLE(nid,nvarid,debut,epais,pctsrf(1,is_ter))
    156 #else
    157       ierr = NF_GET_VARA_REAL(nid,nvarid,debut,epais,pctsrf(1,is_ter))
    158 #endif
    159       IF (ierr .NE. NF_NOERR) THEN
    160          PRINT*, "condsurf: Lecture echouee pour <FTER>"
    161          CALL abort
    162       ENDIF
    163 c
    164 c Fraction "glacier terre":
    165       ierr = NF_INQ_VARID (nid, "FLIC", nvarid)
    166       IF (ierr .NE. NF_NOERR) THEN
    167          PRINT*, "condsurf: Le champ <FLIC> est absent"
    168          CALL abort
    169       ENDIF
    170 #ifdef NC_DOUBLE
    171       ierr = NF_GET_VARA_DOUBLE(nid,nvarid,debut,epais,pctsrf(1,is_lic))
    172 #else
    173       ierr = NF_GET_VARA_REAL(nid,nvarid,debut,epais,pctsrf(1,is_lic))
    174 #endif
    175       IF (ierr .NE. 0) THEN
    176          PRINT*, "condsurf: Lecture echouee pour <FLIC>"
    177          CALL abort
    178       ENDIF
     149C
     150C positionnement % ocean libre et verification qu'il y a compatibilite des soussurfaces
     151      pctsrf(1 : klon, is_oce) = (1. - zmasq(1 : klon))
     152     $    - pctsrf(1 : klon, is_sic)
     153      DO i = 1, klon
     154        IF ( pctsrf(i, is_sic) .GT. (1. - zmasq(i)) ) THEN
     155            WRITE(*,*) 'condsurf : sea-ice et masque pb en ', i,
     156     $     pctsrf(i, is_sic), (1. - zmasq(i))     
     157            pctsrf(i, is_sic) = (1. - zmasq(i))
     158            pctsrf(i, is_oce) = 0.
     159        ENDIF         
     160        IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) +
     161     $       pctsrf(i, is_oce) + pctsrf(i, is_sic)  - 1.) .GT. EPSFRA)
     162     $       THEN
     163             WRITE(*,*) 'physiq : pb sous surface au point ', i,
     164     $           pctsrf(i, 1 : nbsrf)
     165         ENDIF
     166      END DO
     167c
     168c$$$c Fraction "terre":
     169c$$$      ierr = NF_INQ_VARID (nid, "FTER", nvarid)
     170c$$$      IF (ierr .NE. NF_NOERR) THEN
     171c$$$         PRINT*, "condsurf: Le champ <FTER> est absent"
     172c$$$         CALL abort
     173c$$$      ENDIF
     174c$$$#ifdef NC_DOUBLE
     175c$$$      ierr = NF_GET_VARA_DOUBLE(nid,nvarid,debut,epais,pctsrf(1,is_ter))
     176c$$$#else
     177c$$$      ierr = NF_GET_VARA_REAL(nid,nvarid,debut,epais,pctsrf(1,is_ter))
     178c$$$#endif
     179c$$$      IF (ierr .NE. NF_NOERR) THEN
     180c$$$         PRINT*, "condsurf: Lecture echouee pour <FTER>"
     181c$$$         CALL abort
     182c$$$      ENDIF
     183c$$$c
     184c$$$c Fraction "glacier terre":
     185c$$$      ierr = NF_INQ_VARID (nid, "FLIC", nvarid)
     186c$$$      IF (ierr .NE. NF_NOERR) THEN
     187c$$$         PRINT*, "condsurf: Le champ <FLIC> est absent"
     188c$$$         CALL abort
     189c$$$      ENDIF
     190c$$$#ifdef NC_DOUBLE
     191c$$$      ierr = NF_GET_VARA_DOUBLE(nid,nvarid,debut,epais,pctsrf(1,is_lic))
     192c$$$#else
     193c$$$      ierr = NF_GET_VARA_REAL(nid,nvarid,debut,epais,pctsrf(1,is_lic))
     194c$$$#endif
     195c$$$      IF (ierr .NE. 0) THEN
     196c$$$         PRINT*, "condsurf: Lecture echouee pour <FLIC>"
     197c$$$         CALL abort
     198c$$$      ENDIF
    179199c
    180200      ELSE ! test sur newlmt
Note: See TracChangeset for help on using the changeset viewer.