--- MITgcm_contrib/jscott/igsm/src/atmosphere.F 2007/04/23 21:20:17 1.4 +++ MITgcm_contrib/jscott/igsm/src/atmosphere.F 2007/10/15 15:03:55 1.9 @@ -1,4 +1,4 @@ -c source sokolov users 76203 Apr 7 12:46 atmosphere.F +c source 2007 sokolov users 76203 Apr 25 15:29 atmosphere.F #include "ctrparam.h" @@ -117,7 +117,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) @@ -335,8 +335,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 +363,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 +450,17 @@ c New run c Reading from flin_nep read(537)adupt,temco2 - else + 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(367)adupt,temco2 + CLOSE(367) +cjrs rewind 367 + endif + +cjrs next line per Andrei instruction 10/12/07 + adupt= 0.0 aduptd=adupt/(365.*JM) temnepgl=0.0 @@ -544,7 +540,6 @@ #if ( defined CLM ) NOCLM=.false. #endif - co2mmavd=0.0 print *,' atmosphere DTATM=',DTATM print *,' It is running' print *,'End of atmospheric model initialization' @@ -587,7 +582,7 @@ solarnet_ice(j)=0. solarinc_ocean(j)=0. solarnet_ocean(j)=0. -Cjrs why? surfpr(j)=0. +Cjrs not used anymore (?) surfpr(j)=0. naveo(j)=0. navei(j)=0. navrad(j)=0. @@ -601,24 +596,20 @@ c enddo #endif -#if ( defined OCEAN_3D && defined CPL_OCEANCO2 ) -! SECDAY=24.*3600. - SECDAY=DTATM*3600. - co2mmav=0.0 - do j=1,jmocean - co2mmav=co2mmav+mmco2flux(j) - enddo - print *,'CO2F form ocean TAU=',TAU,co2mmav*12.e-15 -Cjrs *** this block needs attention?? *** -Cjrs fluxco2(1)=fluxco2(1)+SECDAY*mmco2flux(1) - fluxco2(1)=fluxco2(1) + SECDAY*mmco2flux(2) - do j=2,jm-1 - fluxco2(j)=fluxco2(j)+SECDAY*mmco2flux(j-1) +#ifdef OCEAN_3D +C get data from atm-ocean common block + do j=1,jm0 + ODATA(1,j,1)=mmsst(j) + ODATA(1,j,2)=mmfice(j) + GDATA(1,j,3)=mmtice(j) + GDATA(1,j,1)=mmsnowm(j) + ODATA(1,j,3)=mmicem(j) + GDATA(1,j,7)=0.5*(mmtice2(j)+mmtice1(j)) +# ifdef CPL_OCEANCO2 + fluxco2(j)=fluxco2(j) + dtatm*3600.*mmco2flux(j) +# endif enddo -Cjrs fluxco2(JM)=fluxco2(JM)+SECDAY*mmco2flux(JMOCEAN) - fluxco2(JM)=fluxco2(JM) + SECDAY*mmco2flux(JM-1) -# endif - +#endif WLMMAX=0.0 C 100 IF(.NOT.EVENT(TAUT)) GO TO 200 46. @@ -667,13 +658,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. @@ -1261,7 +1249,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. @@ -1454,7 +1443,7 @@ do j=1,jm OCUPT=OCUPT+fluxco2(j) enddo - print *,' OCUPT=',OCUPT*12.e-15 +! print *,' OCUPT=',OCUPT*12.e-15 #if ( defined CPL_CHEM ) ! @@ -1883,13 +1872,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 @@ -2082,7 +2074,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.