PROGRAM xvik USE filtreg_mod, ONLY: inifilr USE comconst_mod, ONLY: dtvr,g,r,pi USE comvert_mod, ONLY: pa,preff 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 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----------------------------------------------------------------------- pi=4.*atan(1.) pa=20 preff=610. chr2="0" iyear=0 unanj=669. print*,'WARNING!!! Assuming',unanj,'sols/year' c----------------------------------------------------------------------- c Viking Lander coordinates: c -------------------------------------------------------------------- lonvik(1) = lonvik1 latvik(1) = latvik1 lonvik(2) = lonvik2 latvik(2) = latvik2 phivik(1) = phivik1 phivik(2) = phivik2 WRITE(*,*) 'Viking coordinates:' WRITE(*,*) 'latvik:',latvik,' lonvik:',lonvik WRITE(*,*) 'Phivik:', phivik ! convert coordinates to radians lonvik(1) = lonvik1 * pi/180. latvik(1) = latvik1 * pi/180. lonvik(2) = lonvik2 * pi/180. latvik(2) = latvik2 * pi/180. WRITE(*,*) 'Path to the diagfi files directory' READ (*,'(a)') pathchmp WRITE(*,*) 'Path to the dir for outputs' READ (*,'(a)') pathsor WRITE(*,*) 'Output file time axis in sol (1) '// &'in ls (2) ,or both (3)' READ (*,*) Time_unit write (*,*)'>>>>>>>>>>>>>>>>', phivik,g DO iv=1,2 phivik(iv)=phivik(iv)*3.73 END DO c----------------------------------------------------------------------- c output files: c----------------------------------------------------------------------- ifile(1)=12 ifile(2)=13 kyear=-1 unitlec=11 print*,'diagfi file name (without trailing .nc)' READ(5,'(a)',err=9999) nomfich c%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% c loop on the diagfi files: 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 ierr= NF_OPEN(file(1:len_trim(file))//'.nc',NF_NOWRITE,nid) c---------------------------------------------------------------------- c initialise physics: 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