--- MITgcm_contrib/jscott/igsm/src/atmosphere.F 2007/05/08 15:55:36 1.5 +++ MITgcm_contrib/jscott/igsm/src/atmosphere.F 2009/09/17 15:48:38 1.12 @@ -1,4 +1,5 @@ -c source 2007 sokolov users 76203 Apr 25 15:29 atmosphere.F +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/jscott/igsm/src/atmosphere.F,v 1.12 2009/09/17 15:48:38 jscott Exp $ +C $Name: $ #include "ctrparam.h" @@ -89,7 +90,7 @@ common/SURRAD/TRSURF(JM0,4),SRSURF(JM0,4) dimension RTGOAV(JM0,lmo) common/tprmtg/tprmg(JM0),ntprmg(JM0) - common/aexpc/AEXP,ISTRT1,ISTRTCHEM,LYEAREM + common/aexpc/AEXP,ISTRT1,ISTRTCHEM common/mixlr/Z1OAV(JM0),NZ1OAV(JM0) common/flxio/FLIO(JM0),NFLIO(JM0) common/surps/srps(JM0+3),nsrps @@ -117,7 +118,7 @@ #endif #if ( defined CPL_OCEANCO2 ) -#include "OCM.COM" +#include "OCM.h" common /Garyflux/pC_atm(jm0),wind_amp,fluxco2(jm0) # if ( defined ML_2D ) common/Garyclim/tggary(jm0),wsgary(jm0),areaml(jm0),arsrf(jm0) @@ -215,13 +216,7 @@ ! --- Set year and month index: ! myyear = 1 !year from starting point - myyear = JYEAR-1976 !year from starting point -! myyear = JYEAR-1891 !year from starting point - print *,'Emissioms for ',nchemyr,' year' - myyearlast = min(LYEAREM-1976,nchemyr) !last year of emission -! myyearlast = min(LYEAREM-1891,nchemyr) !last year of emission -! myyear = min(myyear,nchemyr) - myyear = min(myyear,myyearlast) + iyearchem = 1 !year from starting point mymonth = 1 !month ihaha = 1 @@ -235,10 +230,6 @@ do k=1,nlev cfcnsf(k) = 0.0 enddo - print *,'First year of emissions ', myyear -! print *,'Emission will be fixed at year ',LYEAREM - print *,'Emission will be fixed at year ',1976+myyearlast -! print *,'Emission will be fixed at year ',1891+myyearlast ! #endif @@ -335,8 +326,6 @@ READ (546) 245 continue endif - WRITE(503) OFFSSW 17.1 - REWIND 503 17.2 c CALL FRTR0(IO) 18. KBGN=KINC+1 18.5 KM2=KM*2-1 18.51 @@ -365,7 +354,8 @@ NSTEP2=NSTEP 29.6 MRCHT=0. 29.7 ITAU=(NSTEP+NSTEP0)*IDTHR 30. - TAU=FLOAT(ITAU)/XINT 31. +cjrs changed to dfloat 8/2/07 + TAU=DFLOAT(ITAU)/XINT 31. IDAY=1+ITAU/I24 32. TOFDAY=(ITAU-(IDAY-1)*I24)/XINT 33. ! if(ISTART.eq.2.or.ISTRT1.eq.0.and..not.CONTRR)then @@ -451,20 +441,19 @@ c New run c Reading from flin_nep read(537)adupt,temco2 - else + & ,temch4,temn2o + else c Restart of the run c Reading from last_nep - read(367)adupt,temco2 -! & ,temch4,temn2o - rewind 367 - endif -! -! adupt= 1.459814341652516 -! adupt= 0.9078891180588442 -! adupt= 0.25 -! adupt= -0.1123070421398009 -! -! adupt= adupt+0.9 ! for vs23 +cjrs file previously opened in input.F + read(876)adupt,temco2 + & ,temch4,temn2o +C CLOSE(876) + rewind 876 + endif + +cjrs next line per Andrei instruction 10/12/07 + adupt= 0.0 aduptd=adupt/(365.*JM) temnepgl=0.0 @@ -662,13 +651,10 @@ PERCNT=100.*MELSE/(MSTART-MNOW+1.E-5) 56. MLAST=MNOW 59. C**** TEST FOR TERMINATION OF RUN 60. - 200 READ (503,END=210) LABSSW 61. + 200 continue c HPRNT=TAU.gt.45.0.and.TAU.lt.60.0 c HPRNT=TAU.gt.470.0.and.TAU.lt.550.0 NCOMP=0 - 210 REWIND 503 61.1 - IF(LABSSW.EQ.LABEL1) KSS6=1 61.2 - IF(KSS6.EQ.1) GO TO 800 62. IF(TAU+.06125.GE.TAUE) GO TO 820 63. JDAY00=JDAY C**** IF TIME TO ZERO OUT DIAGNOSTIC ACCUMULATING ARRAYS, DO SO 64. @@ -927,7 +913,8 @@ call chemmass66(1.0, 1.0,zco2,zco2mass) - call chemmass6(150.0,1.0,xn2o,xn2omass) +!call chemmass6(150.0,1.0,xn2o,xn2omass) + call chemmass6(120.0,1.0,xn2o,xn2omass) call chemmass2(1.0,ch4, ch4mass ) ! === if hfc, pfc, and sf6 are included: @@ -1088,7 +1075,9 @@ i=1 do j=1,jm pcpl4clm(i,j)=pcpl4clm(i,j)*prlnd2total(j,mndriver) + & *3600./(NDYN*DT) pcpc4clm(i,j)=pcpc4clm(i,j)*prlnd2total(j,mndriver) + & *3600./(NDYN*DT) enddo ! print *,' main after surf4clm',' TAU=',TAU ! print ('2(12f7.2,/,11f7.2,/)'),ps4clm,pcpl4clm, @@ -1256,7 +1245,8 @@ C**** 189. 500 NSTEP=NSTEP+NDYN 190. ITAU=(NSTEP+NSTEP0)*IDTHR 191. - TAU=FLOAT(ITAU)/XINT 192. +cJRS fix to DFLOAT 8/2/07 + TAU=DFLOAT(ITAU)/XINT 192. IDAY=1+ITAU/I24 193. TOFDAYPR=TOFDAY+1.00 TOFDAY=(ITAU-(IDAY-1)*I24)/XINT 194. @@ -1589,9 +1579,7 @@ ! mymonth = mymonth + 1 if(mymonth.gt.12)then - myyear = myyear +1 -! myyear = min(myyear,nchemyr) - myyear = min(myyear,myyearlast) + iyearchem = iyearchem +1 mymonth = 1 ! endif ! 27/8/2005 @@ -1601,8 +1589,8 @@ ! === at end of each year: 27/8/2005 ! rewind 178 - print *,'For chem restart ',myyear,mymonth - write(178)myyear,mymonth,airmass, + print *,'For chem restart ',iyearchem,mymonth + write(178)iyearchem,mymonth,airmass, & cfc11,cfc110, & cfc11m, & cfc11sd, @@ -1878,13 +1866,16 @@ C DTATM time step of atm model in hours C precip and evap in mm/day or kg/m**2/day do j=1,jm0 -#if ( defined OCEAN_3D && defined CPL_OCEANCO2 ) - ncallatm=ncallatm+1 +Cjrs #if ( defined OCEAN_3D && defined CPL_OCEANCO2 ) +#ifdef OCEAN_3D +!jrs ncallatm=ncallatm+1 ! 020107 ! co24ocean(j)=pC_atm(j)*1.e6 +! jrs give CO2 even if ocn carbon off co24ocean(j)=atm_co2(j) -! 020107 +# ifdef CPL_OCEANCO2 co24ocnan(j)=co24ocnan(j)+co24ocean(j) +# endif #endif #ifdef ML_2D cjrs block only MD_2D @@ -2077,7 +2068,6 @@ return C CALL ENQJOB 309. C CALL ENQJOB 310. - IF(KSS6.EQ.1) STOP 12 310.1 IF(IPFLAG.EQ.0) STOP 13 311. STOP 1 312. C**** 313.