--- trunk/libf/phylmd/phyetat0.f90 2008/07/21 16:05:07 12 +++ trunk/libf/phylmd/phyetat0.f90 2011/04/08 12:43:31 43 @@ -1,21 +1,20 @@ module phyetat0_m - use dimphy, only: klon, klev, zmasq + use dimphy, only: klon IMPLICIT none - REAL, save:: rlat(klon), rlon(klon) - ! latitude et longitude pour chaque point, in degrees + REAL, save:: rlat(klon), rlon(klon) ! latitude and longitude, in degrees - private klon, klev, zmasq + private klon contains SUBROUTINE phyetat0(fichnom, pctsrf, tsol,tsoil, ocean, tslab,seaice, & qsurf,qsol,snow, & albe, alblw, evap, rain_fall, snow_fall, solsw, sollw, & - fder,radsol,frugs,agesno,clesphy0, & - zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel, & + fder,radsol,frugs,agesno, & + zmea,zstd,zsig,zgam,zthe,zpic,zval, & t_ancien,q_ancien,ancien_ok, rnebcon, ratqs,clwcon, & run_off_lic_0) @@ -26,10 +25,9 @@ USE indicesol, ONLY : epsfra, is_lic, is_oce, is_sic, is_ter, nbsrf USE dimsoil, ONLY : nsoilmx USE temps, ONLY : itau_phy - USE clesphys2, ONLY : cycle_diurne, iflag_con, nbapp_rad, new_oliq, & - ok_limitvrai, ok_orodr, ok_orolf, soil_model - use netcdf, only: nf90_get_att, nf90_global - use netcdf95, only: handle_err + use netcdf, only: nf90_get_att, nf90_global, nf90_inq_varid, NF90_NOERR + use netcdf95, only: handle_err, nf95_get_var + use dimphy, only: zmasq, klev include "netcdf.inc" @@ -53,13 +51,12 @@ REAL frugs(klon,nbsrf) REAL agesno(klon,nbsrf) REAL zmea(klon) - REAL zstd(klon) - REAL zsig(klon) + REAL, intent(out):: zstd(klon) + REAL, intent(out):: zsig(klon) REAL zgam(klon) REAL zthe(klon) REAL zpic(klon) REAL zval(klon) - REAL rugsrel(klon) REAL pctsrf(klon, nbsrf) REAL fractint(klon) REAL run_off_lic_0(klon) @@ -70,16 +67,10 @@ CHARACTER(len=*), intent(in):: ocean - INTEGER longcles - PARAMETER ( longcles = 20 ) - REAL, intent(in):: clesphy0( longcles ) - REAL xmin, xmax INTEGER nid, nvarid INTEGER ierr, i, nsrf, isoil - INTEGER length - PARAMETER (length=100) CHARACTER*7 str7 CHARACTER*2 str2 @@ -91,63 +82,50 @@ print *, 'fichnom = ', fichnom ierr = NF_OPEN (fichnom, NF_NOWRITE,nid) - IF (ierr.NE.NF_NOERR) THEN + IF (ierr.NE.NF90_NOERR) THEN write(6,*)' Pb d''ouverture du fichier '//fichnom write(6,*)' ierr = ', ierr STOP 1 ENDIF - iflag_con = clesphy0(1) - nbapp_rad = clesphy0(2) - cycle_diurne = clesphy0(3) == 1 - soil_model = clesphy0(4) == 1 - new_oliq = clesphy0(5) == 1 - ok_orodr = clesphy0(6) == 1 - ok_orolf = clesphy0(7) == 1 - ok_limitvrai = clesphy0(8) == 1 - ierr = nf90_get_att(nid, nf90_global, "itau_phy", itau_phy) call handle_err("phyetat0 itau_phy", ierr, nid, nf90_global) ! Lecture des latitudes (coordonnees): - ierr = NF_INQ_VARID (nid, "latitude", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "latitude", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, rlat) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF ! Lecture des longitudes (coordonnees): - ierr = NF_INQ_VARID (nid, "longitude", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "longitude", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, rlon) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF ! Lecture du masque terre mer - ierr = NF_INQ_VARID (nid, "masque", nvarid) - IF (ierr .EQ. NF_NOERR) THEN - ierr = NF_GET_VAR_REAL(nid, nvarid, zmasq) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF + ierr = NF90_INQ_VARID (nid, "masque", nvarid) + IF (ierr == NF90_NOERR) THEN + call nf95_get_var(nid, nvarid, zmasq) else - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, 'fichier startphy non compatible avec phyetat0' + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, 'fichier startphy non compatible avec phyetat0' ! stop 1 ENDIF ! Lecture des fractions pour chaque sous-surface @@ -158,57 +136,41 @@ ! fraction de terre - ierr = NF_INQ_VARID (nid, "FTER", nvarid) - IF (ierr .EQ. NF_NOERR) THEN - ierr = NF_GET_VAR_REAL(nid, nvarid, pctsrf(1 : klon,is_ter)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF + ierr = NF90_INQ_VARID (nid, "FTER", nvarid) + IF (ierr == NF90_NOERR) THEN + call nf95_get_var(nid, nvarid, pctsrf(1 : klon,is_ter)) else - PRINT*, 'phyetat0: Le champ est absent' + PRINT *, 'phyetat0: Le champ est absent' !$$$ stop 1 ENDIF ! fraction de glace de terre - ierr = NF_INQ_VARID (nid, "FLIC", nvarid) - IF (ierr .EQ. NF_NOERR) THEN - ierr = NF_GET_VAR_REAL(nid, nvarid, pctsrf(1 : klon,is_lic)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF + ierr = NF90_INQ_VARID (nid, "FLIC", nvarid) + IF (ierr == NF90_NOERR) THEN + call nf95_get_var(nid, nvarid, pctsrf(1 : klon,is_lic)) else - PRINT*, 'phyetat0: Le champ est absent' + PRINT *, 'phyetat0: Le champ est absent' !$$$ stop 1 ENDIF ! fraction d'ocean - ierr = NF_INQ_VARID (nid, "FOCE", nvarid) - IF (ierr .EQ. NF_NOERR) THEN - ierr = NF_GET_VAR_REAL(nid, nvarid, pctsrf(1 : klon,is_oce)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF + ierr = NF90_INQ_VARID (nid, "FOCE", nvarid) + IF (ierr == NF90_NOERR) THEN + call nf95_get_var(nid, nvarid, pctsrf(1 : klon,is_oce)) else - PRINT*, 'phyetat0: Le champ est absent' + PRINT *, 'phyetat0: Le champ est absent' !$$$ stop 1 ENDIF ! fraction glace de mer - ierr = NF_INQ_VARID (nid, "FSIC", nvarid) - IF (ierr .EQ. NF_NOERR) THEN - ierr = NF_GET_VAR_REAL(nid, nvarid, pctsrf(1 : klon, is_sic)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF + ierr = NF90_INQ_VARID (nid, "FSIC", nvarid) + IF (ierr == NF90_NOERR) THEN + call nf95_get_var(nid, nvarid, pctsrf(1 : klon, is_sic)) else - PRINT*, 'phyetat0: Le champ est absent' + PRINT *, 'phyetat0: Le champ est absent' !$$$ stop 1 ENDIF @@ -235,24 +197,24 @@ ! Lecture des temperatures du sol: - ierr = NF_INQ_VARID (nid, "TS", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, ' Mais je vais essayer de lire TS**' + ierr = NF90_INQ_VARID (nid, "TS", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, ' Mais je vais essayer de lire TS**' DO nsrf = 1, nbsrf IF (nsrf.GT.99) THEN - PRINT*, "Trop de sous-mailles" + PRINT *, "Trop de sous-mailles" stop 1 ENDIF WRITE(str2,'(i2.2)') nsrf - ierr = NF_INQ_VARID (nid, "TS"//str2, nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" + ierr = NF90_INQ_VARID (nid, "TS"//str2, nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, tsol(1,nsrf)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Lecture echouee pour " stop 1 ENDIF xmin = 1.0E+20 @@ -261,23 +223,19 @@ xmin = MIN(tsol(i,nsrf),xmin) xmax = MAX(tsol(i,nsrf),xmax) ENDDO - PRINT*,'Temperature du sol TS**:', nsrf, xmin, xmax + PRINT *,'Temperature du sol TS**:', nsrf, xmin, xmax ENDDO ELSE - PRINT*, 'phyetat0: Le champ est present' - PRINT*, ' J ignore donc les autres temperatures TS**' - ierr = NF_GET_VAR_REAL(nid, nvarid, tsol(1,1)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + PRINT *, 'phyetat0: Le champ est present' + PRINT *, ' J ignore donc les autres temperatures TS**' + call nf95_get_var(nid, nvarid, tsol(:,1)) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(tsol(i,1),xmin) xmax = MAX(tsol(i,1),xmax) ENDDO - PRINT*,'Temperature du sol ', xmin, xmax + PRINT *,'Temperature du sol ', xmin, xmax DO nsrf = 2, nbsrf DO i = 1, klon tsol(i,nsrf) = tsol(i,1) @@ -290,21 +248,21 @@ DO nsrf = 1, nbsrf DO isoil=1, nsoilmx IF (isoil.GT.99 .AND. nsrf.GT.99) THEN - PRINT*, "Trop de couches ou sous-mailles" + PRINT *, "Trop de couches ou sous-mailles" stop 1 ENDIF WRITE(str7,'(i2.2,"srf",i2.2)') isoil, nsrf - ierr = NF_INQ_VARID (nid, 'Tsoil'//str7, nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" - PRINT*, " Il prend donc la valeur de surface" + ierr = NF90_INQ_VARID (nid, 'Tsoil'//str7, nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" + PRINT *, " Il prend donc la valeur de surface" DO i=1, klon tsoil(i,isoil,nsrf)=tsol(i,nsrf) ENDDO ELSE ierr = NF_GET_VAR_REAL(nid, nvarid, tsoil(1,isoil,nsrf)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "Lecture echouee pour " + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "Lecture echouee pour " stop 1 ENDIF ENDIF @@ -316,43 +274,35 @@ ! Lecture de tslab (pour slab ocean seulement): IF (ocean .eq. 'slab ') then - ierr = NF_INQ_VARID (nid, "TSLAB", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" - stop 1 - ENDIF - ierr = NF_GET_VAR_REAL(nid, nvarid, tslab) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " + ierr = NF90_INQ_VARID (nid, "TSLAB", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" stop 1 ENDIF + call nf95_get_var(nid, nvarid, tslab) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(tslab(i),xmin) xmax = MAX(tslab(i),xmax) ENDDO - PRINT*,'Ecart de la SST tslab:', xmin, xmax + PRINT *,'Ecart de la SST tslab:', xmin, xmax ! Lecture de seaice (pour slab ocean seulement): - ierr = NF_INQ_VARID (nid, "SEAICE", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" - stop 1 - ENDIF - ierr = NF_GET_VAR_REAL(nid, nvarid, seaice) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " + ierr = NF90_INQ_VARID (nid, "SEAICE", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" stop 1 ENDIF + call nf95_get_var(nid, nvarid, seaice) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(seaice(i),xmin) xmax = MAX(seaice(i),xmax) ENDDO - PRINT*,'Masse de la glace de mer seaice:', xmin, xmax + PRINT *,'Masse de la glace de mer seaice:', xmin, xmax ELSE tslab = 0. seaice = 0. @@ -360,24 +310,24 @@ ! Lecture de l'humidite de l'air juste au dessus du sol: - ierr = NF_INQ_VARID (nid, "QS", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, ' Mais je vais essayer de lire QS**' + ierr = NF90_INQ_VARID (nid, "QS", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, ' Mais je vais essayer de lire QS**' DO nsrf = 1, nbsrf IF (nsrf.GT.99) THEN - PRINT*, "Trop de sous-mailles" + PRINT *, "Trop de sous-mailles" stop 1 ENDIF WRITE(str2,'(i2.2)') nsrf - ierr = NF_INQ_VARID (nid, "QS"//str2, nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" + ierr = NF90_INQ_VARID (nid, "QS"//str2, nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, qsurf(1,nsrf)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Lecture echouee pour " stop 1 ENDIF xmin = 1.0E+20 @@ -386,23 +336,19 @@ xmin = MIN(qsurf(i,nsrf),xmin) xmax = MAX(qsurf(i,nsrf),xmax) ENDDO - PRINT*,'Humidite pres du sol QS**:', nsrf, xmin, xmax + PRINT *,'Humidite pres du sol QS**:', nsrf, xmin, xmax ENDDO ELSE - PRINT*, 'phyetat0: Le champ est present' - PRINT*, ' J ignore donc les autres humidites QS**' - ierr = NF_GET_VAR_REAL(nid, nvarid, qsurf(1,1)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + PRINT *, 'phyetat0: Le champ est present' + PRINT *, ' J ignore donc les autres humidites QS**' + call nf95_get_var(nid, nvarid, qsurf(:,1)) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(qsurf(i,1),xmin) xmax = MAX(qsurf(i,1),xmax) ENDDO - PRINT*,'Humidite pres du sol ', xmin, xmax + PRINT *,'Humidite pres du sol ', xmin, xmax DO nsrf = 2, nbsrf DO i = 1, klon qsurf(i,nsrf) = qsurf(i,1) @@ -412,18 +358,13 @@ ! Eau dans le sol (pour le modele de sol "bucket") - ierr = NF_INQ_VARID (nid, "QSOL", nvarid) - IF (ierr .EQ. NF_NOERR) THEN - ierr = NF_GET_VAR_REAL(nid, nvarid, qsol) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF + ierr = NF90_INQ_VARID(nid, "QSOL", nvarid) + IF (ierr == NF90_NOERR) THEN + call nf95_get_var(nid, nvarid, qsol) else - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, ' Valeur par defaut nulle' - qsol(:)=0. - !$$$ stop 1 + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, ' Valeur par defaut nulle' + qsol = 0. ENDIF xmin = 1.0E+20 xmax = -1.0E+20 @@ -431,28 +372,28 @@ xmin = MIN(qsol(i),xmin) xmax = MAX(qsol(i),xmax) ENDDO - PRINT*,'Eau dans le sol (mm) ', xmin, xmax + PRINT *,'Eau dans le sol (mm) ', xmin, xmax ! Lecture de neige au sol: - ierr = NF_INQ_VARID (nid, "SNOW", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, ' Mais je vais essayer de lire SNOW**' + ierr = NF90_INQ_VARID (nid, "SNOW", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, ' Mais je vais essayer de lire SNOW**' DO nsrf = 1, nbsrf IF (nsrf.GT.99) THEN - PRINT*, "Trop de sous-mailles" + PRINT *, "Trop de sous-mailles" stop 1 ENDIF WRITE(str2,'(i2.2)') nsrf - ierr = NF_INQ_VARID (nid, "SNOW"//str2, nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" + ierr = NF90_INQ_VARID (nid, "SNOW"//str2, nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, snow(1,nsrf)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Lecture echouee pour " stop 1 ENDIF xmin = 1.0E+20 @@ -461,23 +402,19 @@ xmin = MIN(snow(i,nsrf),xmin) xmax = MAX(snow(i,nsrf),xmax) ENDDO - PRINT*,'Neige du sol SNOW**:', nsrf, xmin, xmax + PRINT *,'Neige du sol SNOW**:', nsrf, xmin, xmax ENDDO ELSE - PRINT*, 'phyetat0: Le champ est present' - PRINT*, ' J ignore donc les autres neiges SNOW**' - ierr = NF_GET_VAR_REAL(nid, nvarid, snow(1,1)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + PRINT *, 'phyetat0: Le champ est present' + PRINT *, ' J ignore donc les autres neiges SNOW**' + call nf95_get_var(nid, nvarid, snow(:,1)) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(snow(i,1),xmin) xmax = MAX(snow(i,1),xmax) ENDDO - PRINT*,'Neige du sol ', xmin, xmax + PRINT *,'Neige du sol ', xmin, xmax DO nsrf = 2, nbsrf DO i = 1, klon snow(i,nsrf) = snow(i,1) @@ -487,24 +424,24 @@ ! Lecture de albedo au sol: - ierr = NF_INQ_VARID (nid, "ALBE", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, ' Mais je vais essayer de lire ALBE**' + ierr = NF90_INQ_VARID (nid, "ALBE", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, ' Mais je vais essayer de lire ALBE**' DO nsrf = 1, nbsrf IF (nsrf.GT.99) THEN - PRINT*, "Trop de sous-mailles" + PRINT *, "Trop de sous-mailles" stop 1 ENDIF WRITE(str2,'(i2.2)') nsrf - ierr = NF_INQ_VARID (nid, "ALBE"//str2, nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" + ierr = NF90_INQ_VARID (nid, "ALBE"//str2, nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, albe(1,nsrf)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Lecture echouee pour " stop 1 ENDIF xmin = 1.0E+20 @@ -513,23 +450,19 @@ xmin = MIN(albe(i,nsrf),xmin) xmax = MAX(albe(i,nsrf),xmax) ENDDO - PRINT*,'Albedo du sol ALBE**:', nsrf, xmin, xmax + PRINT *,'Albedo du sol ALBE**:', nsrf, xmin, xmax ENDDO ELSE - PRINT*, 'phyetat0: Le champ est present' - PRINT*, ' J ignore donc les autres ALBE**' - ierr = NF_GET_VAR_REAL(nid, nvarid, albe(1,1)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + PRINT *, 'phyetat0: Le champ est present' + PRINT *, ' J ignore donc les autres ALBE**' + call nf95_get_var(nid, nvarid, albe(:,1)) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(albe(i,1),xmin) xmax = MAX(albe(i,1),xmax) ENDDO - PRINT*,'Neige du sol ', xmin, xmax + PRINT *,'Neige du sol ', xmin, xmax DO nsrf = 2, nbsrf DO i = 1, klon albe(i,nsrf) = albe(i,1) @@ -540,31 +473,27 @@ ! Lecture de albedo au sol LW: - ierr = NF_INQ_VARID (nid, "ALBLW", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - ! PRINT*, ' Mais je vais essayer de lire ALBLW**' - PRINT*, ' Mais je vais prendre ALBE**' + ierr = NF90_INQ_VARID (nid, "ALBLW", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + ! PRINT *, ' Mais je vais essayer de lire ALBLW**' + PRINT *, ' Mais je vais prendre ALBE**' DO nsrf = 1, nbsrf DO i = 1, klon alblw(i,nsrf) = albe(i,nsrf) ENDDO ENDDO ELSE - PRINT*, 'phyetat0: Le champ est present' - PRINT*, ' J ignore donc les autres ALBLW**' - ierr = NF_GET_VAR_REAL(nid, nvarid, alblw(1,1)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + PRINT *, 'phyetat0: Le champ est present' + PRINT *, ' J ignore donc les autres ALBLW**' + call nf95_get_var(nid, nvarid, alblw(:,1)) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(alblw(i,1),xmin) xmax = MAX(alblw(i,1),xmax) ENDDO - PRINT*,'Neige du sol ', xmin, xmax + PRINT *,'Neige du sol ', xmin, xmax DO nsrf = 2, nbsrf DO i = 1, klon alblw(i,nsrf) = alblw(i,1) @@ -574,24 +503,24 @@ ! Lecture de evaporation: - ierr = NF_INQ_VARID (nid, "EVAP", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, ' Mais je vais essayer de lire EVAP**' + ierr = NF90_INQ_VARID (nid, "EVAP", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, ' Mais je vais essayer de lire EVAP**' DO nsrf = 1, nbsrf IF (nsrf.GT.99) THEN - PRINT*, "Trop de sous-mailles" + PRINT *, "Trop de sous-mailles" stop 1 ENDIF WRITE(str2,'(i2.2)') nsrf - ierr = NF_INQ_VARID (nid, "EVAP"//str2, nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" + ierr = NF90_INQ_VARID (nid, "EVAP"//str2, nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, evap(1,nsrf)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Lecture echouee pour " stop 1 ENDIF xmin = 1.0E+20 @@ -600,23 +529,19 @@ xmin = MIN(evap(i,nsrf),xmin) xmax = MAX(evap(i,nsrf),xmax) ENDDO - PRINT*,'evap du sol EVAP**:', nsrf, xmin, xmax + PRINT *,'evap du sol EVAP**:', nsrf, xmin, xmax ENDDO ELSE - PRINT*, 'phyetat0: Le champ est present' - PRINT*, ' J ignore donc les autres EVAP**' - ierr = NF_GET_VAR_REAL(nid, nvarid, evap(1,1)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + PRINT *, 'phyetat0: Le champ est present' + PRINT *, ' J ignore donc les autres EVAP**' + call nf95_get_var(nid, nvarid, evap(:,1)) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(evap(i,1),xmin) xmax = MAX(evap(i,1),xmax) ENDDO - PRINT*,'Evap du sol ', xmin, xmax + PRINT *,'Evap du sol ', xmin, xmax DO nsrf = 2, nbsrf DO i = 1, klon evap(i,nsrf) = evap(i,1) @@ -626,14 +551,14 @@ ! Lecture precipitation liquide: - ierr = NF_INQ_VARID (nid, "rain_f", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "rain_f", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, rain_fall) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -642,18 +567,18 @@ xmin = MIN(rain_fall(i),xmin) xmax = MAX(rain_fall(i),xmax) ENDDO - PRINT*,'Precipitation liquide rain_f:', xmin, xmax + PRINT *,'Precipitation liquide rain_f:', xmin, xmax ! Lecture precipitation solide: - ierr = NF_INQ_VARID (nid, "snow_f", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "snow_f", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, snow_fall) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -662,21 +587,17 @@ xmin = MIN(snow_fall(i),xmin) xmax = MAX(snow_fall(i),xmax) ENDDO - PRINT*,'Precipitation solide snow_f:', xmin, xmax + PRINT *,'Precipitation solide snow_f:', xmin, xmax ! Lecture rayonnement solaire au sol: - ierr = NF_INQ_VARID (nid, "solsw", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, 'mis a zero' + ierr = NF90_INQ_VARID (nid, "solsw", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, 'mis a zero' solsw = 0. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, solsw) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, solsw) ENDIF xmin = 1.0E+20 xmax = -1.0E+20 @@ -684,21 +605,17 @@ xmin = MIN(solsw(i),xmin) xmax = MAX(solsw(i),xmax) ENDDO - PRINT*,'Rayonnement solaire au sol solsw:', xmin, xmax + PRINT *,'Rayonnement solaire au sol solsw:', xmin, xmax ! Lecture rayonnement IF au sol: - ierr = NF_INQ_VARID (nid, "sollw", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, 'mis a zero' + ierr = NF90_INQ_VARID (nid, "sollw", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, 'mis a zero' sollw = 0. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, sollw) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, sollw) ENDIF xmin = 1.0E+20 xmax = -1.0E+20 @@ -706,22 +623,18 @@ xmin = MIN(sollw(i),xmin) xmax = MAX(sollw(i),xmax) ENDDO - PRINT*,'Rayonnement IF au sol sollw:', xmin, xmax + PRINT *,'Rayonnement IF au sol sollw:', xmin, xmax ! Lecture derive des flux: - ierr = NF_INQ_VARID (nid, "fder", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, 'mis a zero' + ierr = NF90_INQ_VARID (nid, "fder", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, 'mis a zero' fder = 0. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, fder) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, fder) ENDIF xmin = 1.0E+20 xmax = -1.0E+20 @@ -729,19 +642,19 @@ xmin = MIN(fder(i),xmin) xmax = MAX(fder(i),xmax) ENDDO - PRINT*,'Derive des flux fder:', xmin, xmax + PRINT *,'Derive des flux fder:', xmin, xmax ! Lecture du rayonnement net au sol: - ierr = NF_INQ_VARID (nid, "RADS", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "RADS", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, radsol) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -750,29 +663,29 @@ xmin = MIN(radsol(i),xmin) xmax = MAX(radsol(i),xmax) ENDDO - PRINT*,'Rayonnement net au sol radsol:', xmin, xmax + PRINT *,'Rayonnement net au sol radsol:', xmin, xmax ! Lecture de la longueur de rugosite - ierr = NF_INQ_VARID (nid, "RUG", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, ' Mais je vais essayer de lire RUG**' + ierr = NF90_INQ_VARID (nid, "RUG", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, ' Mais je vais essayer de lire RUG**' DO nsrf = 1, nbsrf IF (nsrf.GT.99) THEN - PRINT*, "Trop de sous-mailles" + PRINT *, "Trop de sous-mailles" stop 1 ENDIF WRITE(str2,'(i2.2)') nsrf - ierr = NF_INQ_VARID (nid, "RUG"//str2, nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" + ierr = NF90_INQ_VARID (nid, "RUG"//str2, nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, frugs(1,nsrf)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Lecture echouee pour " stop 1 ENDIF xmin = 1.0E+20 @@ -781,23 +694,19 @@ xmin = MIN(frugs(i,nsrf),xmin) xmax = MAX(frugs(i,nsrf),xmax) ENDDO - PRINT*,'rugosite du sol RUG**:', nsrf, xmin, xmax + PRINT *,'rugosite du sol RUG**:', nsrf, xmin, xmax ENDDO ELSE - PRINT*, 'phyetat0: Le champ est present' - PRINT*, ' J ignore donc les autres RUG**' - ierr = NF_GET_VAR_REAL(nid, nvarid, frugs(1,1)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + PRINT *, 'phyetat0: Le champ est present' + PRINT *, ' J ignore donc les autres RUG**' + call nf95_get_var(nid, nvarid, frugs(:,1)) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(frugs(i,1),xmin) xmax = MAX(frugs(i,1),xmax) ENDDO - PRINT*,'rugosite ', xmin, xmax + PRINT *,'rugosite ', xmin, xmax DO nsrf = 2, nbsrf DO i = 1, klon frugs(i,nsrf) = frugs(i,1) @@ -808,24 +717,24 @@ ! Lecture de l'age de la neige: - ierr = NF_INQ_VARID (nid, "AGESNO", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - PRINT*, ' Mais je vais essayer de lire AGESNO**' + ierr = NF90_INQ_VARID (nid, "AGESNO", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' + PRINT *, ' Mais je vais essayer de lire AGESNO**' DO nsrf = 1, nbsrf IF (nsrf.GT.99) THEN - PRINT*, "Trop de sous-mailles" + PRINT *, "Trop de sous-mailles" stop 1 ENDIF WRITE(str2,'(i2.2)') nsrf - ierr = NF_INQ_VARID (nid, "AGESNO"//str2, nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" + ierr = NF90_INQ_VARID (nid, "AGESNO"//str2, nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" agesno = 50.0 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, agesno(1,nsrf)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Lecture echouee pour " stop 1 ENDIF xmin = 1.0E+20 @@ -834,23 +743,19 @@ xmin = MIN(agesno(i,nsrf),xmin) xmax = MAX(agesno(i,nsrf),xmax) ENDDO - PRINT*,'Age de la neige AGESNO**:', nsrf, xmin, xmax + PRINT *,'Age de la neige AGESNO**:', nsrf, xmin, xmax ENDDO ELSE - PRINT*, 'phyetat0: Le champ est present' - PRINT*, ' J ignore donc les autres AGESNO**' - ierr = NF_GET_VAR_REAL(nid, nvarid, agesno(1,1)) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + PRINT *, 'phyetat0: Le champ est present' + PRINT *, ' J ignore donc les autres AGESNO**' + call nf95_get_var(nid, nvarid, agesno(:,1)) xmin = 1.0E+20 xmax = -1.0E+20 DO i = 1, klon xmin = MIN(agesno(i,1),xmin) xmax = MAX(agesno(i,1),xmax) ENDDO - PRINT*,'Age de la neige ', xmin, xmax + PRINT *,'Age de la neige ', xmin, xmax DO nsrf = 2, nbsrf DO i = 1, klon agesno(i,nsrf) = agesno(i,1) @@ -859,14 +764,14 @@ ENDIF - ierr = NF_INQ_VARID (nid, "ZMEA", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "ZMEA", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, zmea) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -875,17 +780,17 @@ xmin = MIN(zmea(i),xmin) xmax = MAX(zmea(i),xmax) ENDDO - PRINT*,'OROGRAPHIE SOUS-MAILLE zmea:', xmin, xmax + PRINT *,'OROGRAPHIE SOUS-MAILLE zmea:', xmin, xmax - ierr = NF_INQ_VARID (nid, "ZSTD", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "ZSTD", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, zstd) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -894,17 +799,17 @@ xmin = MIN(zstd(i),xmin) xmax = MAX(zstd(i),xmax) ENDDO - PRINT*,'OROGRAPHIE SOUS-MAILLE zstd:', xmin, xmax + PRINT *,'OROGRAPHIE SOUS-MAILLE zstd:', xmin, xmax - ierr = NF_INQ_VARID (nid, "ZSIG", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "ZSIG", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, zsig) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -913,17 +818,17 @@ xmin = MIN(zsig(i),xmin) xmax = MAX(zsig(i),xmax) ENDDO - PRINT*,'OROGRAPHIE SOUS-MAILLE zsig:', xmin, xmax + PRINT *,'OROGRAPHIE SOUS-MAILLE zsig:', xmin, xmax - ierr = NF_INQ_VARID (nid, "ZGAM", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "ZGAM", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, zgam) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -932,17 +837,17 @@ xmin = MIN(zgam(i),xmin) xmax = MAX(zgam(i),xmax) ENDDO - PRINT*,'OROGRAPHIE SOUS-MAILLE zgam:', xmin, xmax + PRINT *,'OROGRAPHIE SOUS-MAILLE zgam:', xmin, xmax - ierr = NF_INQ_VARID (nid, "ZTHE", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "ZTHE", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, zthe) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -951,17 +856,17 @@ xmin = MIN(zthe(i),xmin) xmax = MAX(zthe(i),xmax) ENDDO - PRINT*,'OROGRAPHIE SOUS-MAILLE zthe:', xmin, xmax + PRINT *,'OROGRAPHIE SOUS-MAILLE zthe:', xmin, xmax - ierr = NF_INQ_VARID (nid, "ZPIC", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "ZPIC", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, zpic) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -970,16 +875,16 @@ xmin = MIN(zpic(i),xmin) xmax = MAX(zpic(i),xmax) ENDDO - PRINT*,'OROGRAPHIE SOUS-MAILLE zpic:', xmin, xmax + PRINT *,'OROGRAPHIE SOUS-MAILLE zpic:', xmin, xmax - ierr = NF_INQ_VARID (nid, "ZVAL", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' + ierr = NF90_INQ_VARID (nid, "ZVAL", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Le champ est absent' stop 1 ENDIF ierr = NF_GET_VAR_REAL(nid, nvarid, zval) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, 'phyetat0: Lecture echouee pour ' stop 1 ENDIF xmin = 1.0E+20 @@ -988,145 +893,97 @@ xmin = MIN(zval(i),xmin) xmax = MAX(zval(i),xmax) ENDDO - PRINT*,'OROGRAPHIE SOUS-MAILLE zval:', xmin, xmax - - - ierr = NF_INQ_VARID (nid, "RUGSREL", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Le champ est absent' - stop 1 - ENDIF - ierr = NF_GET_VAR_REAL(nid, nvarid, rugsrel) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, 'phyetat0: Lecture echouee pour ' - stop 1 - ENDIF - xmin = 1.0E+20 - xmax = -1.0E+20 - DO i = 1, klon - xmin = MIN(rugsrel(i),xmin) - xmax = MAX(rugsrel(i),xmax) - ENDDO - PRINT*,'Rugosite relief (ecart-type) rugsrel:', xmin, xmax - + PRINT *,'OROGRAPHIE SOUS-MAILLE zval:', xmin, xmax ancien_ok = .TRUE. - ierr = NF_INQ_VARID (nid, "TANCIEN", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" - PRINT*, "Depart legerement fausse. Mais je continue" + ierr = NF90_INQ_VARID (nid, "TANCIEN", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" + PRINT *, "Depart legerement fausse. Mais je continue" ancien_ok = .FALSE. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, t_ancien) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, t_ancien) ENDIF - ierr = NF_INQ_VARID (nid, "QANCIEN", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" - PRINT*, "Depart legerement fausse. Mais je continue" + ierr = NF90_INQ_VARID (nid, "QANCIEN", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" + PRINT *, "Depart legerement fausse. Mais je continue" ancien_ok = .FALSE. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, q_ancien) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, q_ancien) ENDIF - ierr = NF_INQ_VARID (nid, "CLWCON", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ CLWCON est absent" - PRINT*, "Depart legerement fausse. Mais je continue" + ierr = NF90_INQ_VARID (nid, "CLWCON", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ CLWCON est absent" + PRINT *, "Depart legerement fausse. Mais je continue" clwcon = 0. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, clwcon) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, clwcon) ENDIF xmin = 1.0E+20 xmax = -1.0E+20 xmin = MINval(clwcon) xmax = MAXval(clwcon) - PRINT*,'Eau liquide convective (ecart-type) clwcon:', xmin, xmax + PRINT *,'Eau liquide convective (ecart-type) clwcon:', xmin, xmax - ierr = NF_INQ_VARID (nid, "RNEBCON", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ RNEBCON est absent" - PRINT*, "Depart legerement fausse. Mais je continue" + ierr = NF90_INQ_VARID (nid, "RNEBCON", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ RNEBCON est absent" + PRINT *, "Depart legerement fausse. Mais je continue" rnebcon = 0. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, rnebcon) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, rnebcon) ENDIF xmin = 1.0E+20 xmax = -1.0E+20 xmin = MINval(rnebcon) xmax = MAXval(rnebcon) - PRINT*,'Nebulosite convective (ecart-type) rnebcon:', xmin, xmax + PRINT *,'Nebulosite convective (ecart-type) rnebcon:', xmin, xmax - ierr = NF_INQ_VARID (nid, "QANCIEN", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" - PRINT*, "Depart legerement fausse. Mais je continue" + ierr = NF90_INQ_VARID (nid, "QANCIEN", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" + PRINT *, "Depart legerement fausse. Mais je continue" ancien_ok = .FALSE. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, q_ancien) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, q_ancien) ENDIF ! Lecture ratqs - ierr = NF_INQ_VARID (nid, "RATQS", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" - PRINT*, "Depart legerement fausse. Mais je continue" + ierr = NF90_INQ_VARID (nid, "RATQS", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" + PRINT *, "Depart legerement fausse. Mais je continue" ratqs = 0. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, ratqs) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, ratqs) ENDIF xmin = 1.0E+20 xmax = -1.0E+20 xmin = MINval(ratqs) xmax = MAXval(ratqs) - PRINT*,'(ecart-type) ratqs:', xmin, xmax + PRINT *,'(ecart-type) ratqs:', xmin, xmax ! Lecture run_off_lic_0 - ierr = NF_INQ_VARID (nid, "RUNOFFLIC0", nvarid) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Le champ est absent" - PRINT*, "Depart legerement fausse. Mais je continue" + ierr = NF90_INQ_VARID (nid, "RUNOFFLIC0", nvarid) + IF (ierr.NE.NF90_NOERR) THEN + PRINT *, "phyetat0: Le champ est absent" + PRINT *, "Depart legerement fausse. Mais je continue" run_off_lic_0 = 0. ELSE - ierr = NF_GET_VAR_REAL(nid, nvarid, run_off_lic_0) - IF (ierr.NE.NF_NOERR) THEN - PRINT*, "phyetat0: Lecture echouee pour " - stop 1 - ENDIF + call nf95_get_var(nid, nvarid, run_off_lic_0) ENDIF xmin = 1.0E+20 xmax = -1.0E+20 xmin = MINval(run_off_lic_0) xmax = MAXval(run_off_lic_0) - PRINT*,'(ecart-type) run_off_lic_0:', xmin, xmax + PRINT *,'(ecart-type) run_off_lic_0:', xmin, xmax ! Fermer le fichier: