PROGRAM xvik USE filtreg_mod, ONLY: inifilr USE comconst_mod, ONLY: dtvr,g,r,pi IMPLICIT NONE c======================================================================= c c Pression au site Viking c c======================================================================= c----------------------------------------------------------------------- c declarations: c----------------------------------------------------------------------- include "dimensions.h" include "paramet.h" include "comdissip.h" include "comgeom2.h" include "netcdf.inc" INTEGER itau,nbpas,nbpasmx PARAMETER(nbpasmx=1000000) REAL temps(nbpasmx) INTEGER unitlec INTEGER i,j,l,jj REAL constR c Declarations NCDF: c ----------------- CHARACTER*100 varname INTEGER ierr,nid,nvarid,dimid LOGICAL nc INTEGER start_ps(3),start_temp(4),start_co2ice(3) INTEGER count_ps(3),count_temp(4),count_co2ice(3) c declarations pour les points viking: c ------------------------------------ INTEGER ivik(2),jvik(2),ifile(2),iv REAL, PARAMETER :: lonvik1 = -47.95 REAL, PARAMETER :: latvik1 = 22.27 REAL, PARAMETER :: lonvik2 = 134.29 REAL, PARAMETER :: latvik2 = 47.67 REAL, PARAMETER :: phivik1 = -3637 REAL, PARAMETER :: phivik2 = -4505 REAL lonvik(2),latvik(2),phivik(2),phisim(2) REAL unanj c variables meteo: c ---------------- REAL vnat(iip1,jjm,llm),unat(iip1,jjp1,llm) REAL t(iip1,jjp1,llm),ps(iip1,jjp1),pstot, phis(iip1,jjp1) REAL co2ice(iip1,jjp1), captotN,captotS real t7(iip1,jjp1) ! temperature in 7th atmospheric layer REAL zp1,zp2,zp2_sm,zu,zv,zw(0:1,0:1,2),zalpha,zbeta LOGICAL firstcal INTEGER*4 day0 REAL ziceco2(iip1,jjp1) REAL day,zt,sollong,sol,dayw,dayw_ls REAL airtot1,gh INTEGER ii,iyear,kyear CHARACTER*2 chr2 c declarations de l'interface avec mywrite: c ----------------------------------------- CHARACTER file*80 CHARACTER pathchmp*80,pathsor*80,nomfich*80 INTEGER Time_unit c externe: c -------- EXTERNAL iniconst,inigeom,covcont,mywrite EXTERNAL exner,pbar EXTERNAL coordij,moy2 EXTERNAL SSUM REAL SSUM cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c----------------------------------------------------------------------- c initialisations: c----------------------------------------------------------------------- chr2="0" unanj=669. print*,'WARNING!!!',unanj,'Jours/an' nc=.true. phivik(1) = phivik1 phivik(2) = phivik2 print *, 'COORDVIKIIIN', latvik, lonvik print*, 'LES PHIVIK', phivik WRITE(*,*) 'Chemin des fichiers histoires' READ (*,'(a)') pathchmp WRITE(*,*) 'Chemin des fichiers sorties' READ (*,'(a)') pathsor WRITE(*,*) 'Fichiers de sortie en sol (1) &,en ls (2) ,les deux (3)' READ (*,*) Time_unit write (*,*)'>>>>>>>>>>>>>>>>', phivik,g DO iv=1,2 phivik(iv)=phivik(iv)*3.73 END DO c----------------------------------------------------------------------- c ouverture des fichiers xgraph: c----------------------------------------------------------------------- ifile(1)=12 ifile(2)=13 kyear=-1 unitlec=11 print*,'Entrer un fichier NC (sans le .nc)' READ(5,'(a)',err=9999) nomfich c%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% c grande boucle sur les fichiers histoire: c%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% firstcal=.true. DO WHILE(len_trim(nomfich).GT.0.AND.len_trim(nomfich).LT.50) PRINT *,'>>> nomfich : ',trim(nomfich) c---------------------------------------------------------------------- c Ouverture des fichiers histoire: c---------------------------------------------------------------------- file=pathchmp(1:len_trim(pathchmp))//'/'// s nomfich(1:len_trim(nomfich)) PRINT*,'file.nc: ', file(1:len_trim(file))//'.nc' PRINT*,'timestep ',dtvr IF(nc) THEN ierr= NF_OPEN(file(1:len_trim(file))//'.nc',NF_NOWRITE,nid) ELSE PRINT*,'Ouverture binaire ',file OPEN(unitlec,file=file,status='old',form='unformatted', . iostat=ierr) ENDIF c---------------------------------------------------------------------- c initialisation de la physique: c---------------------------------------------------------------------- CALL readhead_NC(file(1:len_trim(file))//'.nc',day0,phis,constR) WRITE (*,*) 'day0 = ' , day0 CALL conf_gcm( 99, .TRUE. ) CALL iniconst CALL inigeom c---------------------------------------------------------------------- c Lecture temps : c---------------------------------------------------------------------- ierr= NF_INQ_DIMID (nid,"Time",dimid) IF (ierr.NE.NF_NOERR) THEN PRINT*, 'xvik: Le champ