1 |
c source sokolov users 76203 Apr 7 12:46 atmosphere.F |
c source 2007 sokolov users 76203 Apr 25 15:29 atmosphere.F |
2 |
|
|
3 |
#include "ctrparam.h" |
#include "ctrparam.h" |
4 |
|
|
117 |
#endif |
#endif |
118 |
|
|
119 |
#if ( defined CPL_OCEANCO2 ) |
#if ( defined CPL_OCEANCO2 ) |
120 |
#include "OCM.COM" |
#include "OCM.h" |
121 |
common /Garyflux/pC_atm(jm0),wind_amp,fluxco2(jm0) |
common /Garyflux/pC_atm(jm0),wind_amp,fluxco2(jm0) |
122 |
# if ( defined ML_2D ) |
# if ( defined ML_2D ) |
123 |
common/Garyclim/tggary(jm0),wsgary(jm0),areaml(jm0),arsrf(jm0) |
common/Garyclim/tggary(jm0),wsgary(jm0),areaml(jm0),arsrf(jm0) |
335 |
READ (546) |
READ (546) |
336 |
245 continue |
245 continue |
337 |
endif |
endif |
|
WRITE(503) OFFSSW 17.1 |
|
|
REWIND 503 17.2 |
|
338 |
c CALL FRTR0(IO) 18. |
c CALL FRTR0(IO) 18. |
339 |
KBGN=KINC+1 18.5 |
KBGN=KINC+1 18.5 |
340 |
KM2=KM*2-1 18.51 |
KM2=KM*2-1 18.51 |
363 |
NSTEP2=NSTEP 29.6 |
NSTEP2=NSTEP 29.6 |
364 |
MRCHT=0. 29.7 |
MRCHT=0. 29.7 |
365 |
ITAU=(NSTEP+NSTEP0)*IDTHR 30. |
ITAU=(NSTEP+NSTEP0)*IDTHR 30. |
366 |
TAU=FLOAT(ITAU)/XINT 31. |
cjrs changed to dfloat 8/2/07 |
367 |
|
TAU=DFLOAT(ITAU)/XINT 31. |
368 |
IDAY=1+ITAU/I24 32. |
IDAY=1+ITAU/I24 32. |
369 |
TOFDAY=(ITAU-(IDAY-1)*I24)/XINT 33. |
TOFDAY=(ITAU-(IDAY-1)*I24)/XINT 33. |
370 |
! if(ISTART.eq.2.or.ISTRT1.eq.0.and..not.CONTRR)then |
! if(ISTART.eq.2.or.ISTRT1.eq.0.and..not.CONTRR)then |
450 |
c New run |
c New run |
451 |
c Reading from flin_nep |
c Reading from flin_nep |
452 |
read(537)adupt,temco2 |
read(537)adupt,temco2 |
453 |
else |
else |
454 |
c Restart of the run |
c Restart of the run |
455 |
c Reading from last_nep |
c Reading from last_nep |
456 |
read(367)adupt,temco2 |
cjrs file previously opened in input.F |
457 |
! & ,temch4,temn2o |
read(876)adupt,temco2 |
458 |
rewind 367 |
C CLOSE(876) |
459 |
endif |
rewind 876 |
460 |
! |
endif |
461 |
! adupt= 1.459814341652516 |
|
462 |
! adupt= 0.9078891180588442 |
cjrs next line per Andrei instruction 10/12/07 |
463 |
! adupt= 0.25 |
adupt= 0.0 |
|
! adupt= -0.1123070421398009 |
|
|
! |
|
|
! adupt= adupt+0.9 ! for vs23 |
|
464 |
|
|
465 |
aduptd=adupt/(365.*JM) |
aduptd=adupt/(365.*JM) |
466 |
temnepgl=0.0 |
temnepgl=0.0 |
540 |
#if ( defined CLM ) |
#if ( defined CLM ) |
541 |
NOCLM=.false. |
NOCLM=.false. |
542 |
#endif |
#endif |
|
co2mmavd=0.0 |
|
543 |
print *,' atmosphere DTATM=',DTATM |
print *,' atmosphere DTATM=',DTATM |
544 |
print *,' It is running' |
print *,' It is running' |
545 |
print *,'End of atmospheric model initialization' |
print *,'End of atmospheric model initialization' |
582 |
solarnet_ice(j)=0. |
solarnet_ice(j)=0. |
583 |
solarinc_ocean(j)=0. |
solarinc_ocean(j)=0. |
584 |
solarnet_ocean(j)=0. |
solarnet_ocean(j)=0. |
585 |
Cjrs why? surfpr(j)=0. |
Cjrs not used anymore (?) surfpr(j)=0. |
586 |
naveo(j)=0. |
naveo(j)=0. |
587 |
navei(j)=0. |
navei(j)=0. |
588 |
navrad(j)=0. |
navrad(j)=0. |
596 |
c |
c |
597 |
enddo |
enddo |
598 |
#endif |
#endif |
599 |
#if ( defined OCEAN_3D && defined CPL_OCEANCO2 ) |
#ifdef OCEAN_3D |
600 |
! SECDAY=24.*3600. |
C get data from atm-ocean common block |
601 |
SECDAY=DTATM*3600. |
do j=1,jm0 |
602 |
co2mmav=0.0 |
ODATA(1,j,1)=mmsst(j) |
603 |
do j=1,jmocean |
ODATA(1,j,2)=mmfice(j) |
604 |
co2mmav=co2mmav+mmco2flux(j) |
GDATA(1,j,3)=mmtice(j) |
605 |
enddo |
GDATA(1,j,1)=mmsnowm(j) |
606 |
print *,'CO2F form ocean TAU=',TAU,co2mmav*12.e-15 |
ODATA(1,j,3)=mmicem(j) |
607 |
Cjrs *** this block needs attention?? *** |
GDATA(1,j,7)=0.5*(mmtice2(j)+mmtice1(j)) |
608 |
Cjrs fluxco2(1)=fluxco2(1)+SECDAY*mmco2flux(1) |
# ifdef CPL_OCEANCO2 |
609 |
fluxco2(1)=fluxco2(1) + SECDAY*mmco2flux(2) |
fluxco2(j)=fluxco2(j) + dtatm*3600.*mmco2flux(j) |
610 |
do j=2,jm-1 |
# endif |
|
fluxco2(j)=fluxco2(j)+SECDAY*mmco2flux(j-1) |
|
611 |
enddo |
enddo |
612 |
Cjrs fluxco2(JM)=fluxco2(JM)+SECDAY*mmco2flux(JMOCEAN) |
#endif |
|
fluxco2(JM)=fluxco2(JM) + SECDAY*mmco2flux(JM-1) |
|
|
# endif |
|
|
|
|
613 |
WLMMAX=0.0 |
WLMMAX=0.0 |
614 |
C |
C |
615 |
100 IF(.NOT.EVENT(TAUT)) GO TO 200 46. |
100 IF(.NOT.EVENT(TAUT)) GO TO 200 46. |
658 |
PERCNT=100.*MELSE/(MSTART-MNOW+1.E-5) 56. |
PERCNT=100.*MELSE/(MSTART-MNOW+1.E-5) 56. |
659 |
MLAST=MNOW 59. |
MLAST=MNOW 59. |
660 |
C**** TEST FOR TERMINATION OF RUN 60. |
C**** TEST FOR TERMINATION OF RUN 60. |
661 |
200 READ (503,END=210) LABSSW 61. |
200 continue |
662 |
c HPRNT=TAU.gt.45.0.and.TAU.lt.60.0 |
c HPRNT=TAU.gt.45.0.and.TAU.lt.60.0 |
663 |
c HPRNT=TAU.gt.470.0.and.TAU.lt.550.0 |
c HPRNT=TAU.gt.470.0.and.TAU.lt.550.0 |
664 |
NCOMP=0 |
NCOMP=0 |
|
210 REWIND 503 61.1 |
|
|
IF(LABSSW.EQ.LABEL1) KSS6=1 61.2 |
|
|
IF(KSS6.EQ.1) GO TO 800 62. |
|
665 |
IF(TAU+.06125.GE.TAUE) GO TO 820 63. |
IF(TAU+.06125.GE.TAUE) GO TO 820 63. |
666 |
JDAY00=JDAY |
JDAY00=JDAY |
667 |
C**** IF TIME TO ZERO OUT DIAGNOSTIC ACCUMULATING ARRAYS, DO SO 64. |
C**** IF TIME TO ZERO OUT DIAGNOSTIC ACCUMULATING ARRAYS, DO SO 64. |
1249 |
C**** 189. |
C**** 189. |
1250 |
500 NSTEP=NSTEP+NDYN 190. |
500 NSTEP=NSTEP+NDYN 190. |
1251 |
ITAU=(NSTEP+NSTEP0)*IDTHR 191. |
ITAU=(NSTEP+NSTEP0)*IDTHR 191. |
1252 |
TAU=FLOAT(ITAU)/XINT 192. |
cJRS fix to DFLOAT 8/2/07 |
1253 |
|
TAU=DFLOAT(ITAU)/XINT 192. |
1254 |
IDAY=1+ITAU/I24 193. |
IDAY=1+ITAU/I24 193. |
1255 |
TOFDAYPR=TOFDAY+1.00 |
TOFDAYPR=TOFDAY+1.00 |
1256 |
TOFDAY=(ITAU-(IDAY-1)*I24)/XINT 194. |
TOFDAY=(ITAU-(IDAY-1)*I24)/XINT 194. |
1443 |
do j=1,jm |
do j=1,jm |
1444 |
OCUPT=OCUPT+fluxco2(j) |
OCUPT=OCUPT+fluxco2(j) |
1445 |
enddo |
enddo |
1446 |
print *,' OCUPT=',OCUPT*12.e-15 |
! print *,' OCUPT=',OCUPT*12.e-15 |
1447 |
|
|
1448 |
#if ( defined CPL_CHEM ) |
#if ( defined CPL_CHEM ) |
1449 |
! |
! |
1872 |
C DTATM time step of atm model in hours |
C DTATM time step of atm model in hours |
1873 |
C precip and evap in mm/day or kg/m**2/day |
C precip and evap in mm/day or kg/m**2/day |
1874 |
do j=1,jm0 |
do j=1,jm0 |
1875 |
#if ( defined OCEAN_3D && defined CPL_OCEANCO2 ) |
Cjrs #if ( defined OCEAN_3D && defined CPL_OCEANCO2 ) |
1876 |
ncallatm=ncallatm+1 |
#ifdef OCEAN_3D |
1877 |
|
!jrs ncallatm=ncallatm+1 |
1878 |
! 020107 |
! 020107 |
1879 |
! co24ocean(j)=pC_atm(j)*1.e6 |
! co24ocean(j)=pC_atm(j)*1.e6 |
1880 |
|
! jrs give CO2 even if ocn carbon off |
1881 |
co24ocean(j)=atm_co2(j) |
co24ocean(j)=atm_co2(j) |
1882 |
! 020107 |
# ifdef CPL_OCEANCO2 |
1883 |
co24ocnan(j)=co24ocnan(j)+co24ocean(j) |
co24ocnan(j)=co24ocnan(j)+co24ocean(j) |
1884 |
|
# endif |
1885 |
#endif |
#endif |
1886 |
#ifdef ML_2D |
#ifdef ML_2D |
1887 |
cjrs block only MD_2D |
cjrs block only MD_2D |
2074 |
return |
return |
2075 |
C CALL ENQJOB 309. |
C CALL ENQJOB 309. |
2076 |
C CALL ENQJOB 310. |
C CALL ENQJOB 310. |
|
IF(KSS6.EQ.1) STOP 12 310.1 |
|
2077 |
IF(IPFLAG.EQ.0) STOP 13 311. |
IF(IPFLAG.EQ.0) STOP 13 311. |
2078 |
STOP 1 312. |
STOP 1 312. |
2079 |
C**** 313. |
C**** 313. |