/[MITgcm]/MITgcm_contrib/jscott/igsm/src/atmosphere.F
ViewVC logotype

Diff of /MITgcm_contrib/jscott/igsm/src/atmosphere.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by jscott, Tue Aug 22 20:25:52 2006 UTC revision 1.8 by jscott, Fri Aug 24 19:26:15 2007 UTC
# Line 1  Line 1 
1    c source 2007 sokolov users  76203 Apr 25 15:29 atmosphere.F
2    
3  #include "ctrparam.h"  #include "ctrparam.h"
4    
# Line 108  c     character *8 buf1 Line 109  c     character *8 buf1
109        logical odifcarbon        logical odifcarbon
110    
111  #if ( defined CLM )  #if ( defined CLM )
112  #include "CLM.COM"  #  include "CLM.h"
113  !#include "TEM.COM"  #  if ( defined CPL_TEM )      
 #if ( defined CPL_TEM )        
114  C  For TEM  C  For TEM
115  #include "TEM.COM"  #    include "TEM.h"
116  #endif  #  endif
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)
124        common/Garydiff/depthml(jm0),edzon(jm0),dzg(lmo),dzog(lmo-1),        common/Garydiff/depthml(jm0),edzcar(jm0),dzg(lmo),dzog(lmo-1),
125       &Rco2(jm0,lmo),edohd(lmo),zg(lmo),focean(jm0)       &Rco2(jm0,lmo),edohd(lmo),zg(lmo),focean(jm0)
126        common /Garychem/Hg(jm0)        common /Garychem/Hg(jm0)
127        common/qfl/QFLUX(JM0,0:13),ZOAV(JM0),QFLUXT(JM0)        common/qfl/QFLUX(JM0,0:13),ZOAV(JM0),QFLUXT(JM0)
128        common /Garyvdif/iyearocm,vdfocm,acvdfc        common /Garyvdif/iyearocm,vdfocm,acvdfc
129         common /Garyvlog/odifcarbon        common /Garyvlog/odifcarbon,ocarcont
130          common /Garykvct/cfkvct,edzcart(jm0)
131  # endif  # endif
132  #endif  #endif
133    
134        INTEGER dtatm, mndriver   !routine arguments        INTEGER dtatm, mndriver   !routine arguments jrs
135    
136  #if ( defined OCEAN_3D || defined ML_2D )  #if ( defined OCEAN_3D || defined ML_2D )
137  #include "AGRID.h"  #include "AGRID.h"
138  C#include "HRD4OCN.COM"  Cjrs elimated COM file/moved elsewhere#include "HRD4OCN.COM"
139          dimension oimeltt(jm0),dhdtav(jm0),devdtav(jm0)          dimension oimeltt(jm0),dhdtav(jm0),devdtav(jm0)
140  #endif  #endif
141    
142  C **** CLEAR SKY  C **** CLEAR SKY
143        common/clrsk/CLEAR(JM0),NCLR(JM0),AJCLR(JM0,12),BJCLR(JM0,12),        common/clrsk/CLEAR(JM0),NCLR(JM0),AJCLR(JM0,12),BJCLR(JM0,12),
144       * CJCLR(JM0,12)       * CJCLR(JM0,12)
145        common/TSUR/TSURFC(JM0,0:13),TSURFT(JM0),TSURFD(JM0),DTSURF(JM0)  !     common/TSUR/TSURFC(JM0,0:13),TSURFT(JM0),TSURFD(JM0),DTSURF(JM0)
146        real TSURFW(JM0)  #include "TSRF.COM"
147          real TSURFW(JM0),TLANDW(JM0)
148        integer CLEAR        integer CLEAR
149    
150        common /ATCO2/atm_co2(jm0)        common /ATCO2/atm_co2(jm0)
# Line 205  c     CALL HARMO(36,1,24,ACO,BSI,CCO,DSI Line 208  c     CALL HARMO(36,1,24,ACO,BSI,CCO,DSI
208        IPFLAG=0                                                            15.          IPFLAG=0                                                            15.  
209  C     CALL ENQJOB                                                         16.    C     CALL ENQJOB                                                         16.  
210        CALL INPUT                                                          17.          CALL INPUT                                                          17.  
        print *,"After input"  
        print *,"TSURFD"  
        print *,TSURFD  
        print *,"TSURFT"  
        print *,TSURFT  
211                
212  #if ( defined CPL_CHEM )  #if ( defined CPL_CHEM )
213  !  !
# Line 257  c       LHORDIF=.false. Line 255  c       LHORDIF=.false.
255  #if ( defined CPL_OCEANCO2 && defined ML_2D )  #if ( defined CPL_OCEANCO2 && defined ML_2D )
256        odifcarbon=.true.        odifcarbon=.true.
257        wind_amp=1.        wind_amp=1.
258          dtco2=3600.*24.
259  c     ncallgary=0  c     ncallgary=0
260        do j=1,jm        do j=1,jm
261          areaml(j)=dxyp(j)*(1-FDATA(1,J,2))          areaml(j)=dxyp(j)*(1-FDATA(1,J,2))
# Line 264  c     ncallgary=0 Line 263  c     ncallgary=0
263          DEPTHML(j)=ZOAV(j)          DEPTHML(j)=ZOAV(j)
264        end do    !       j        end do    !       j
265          print *,' RCO2'          print *,' RCO2'
266          print 5001,((Rco2(j,k),j=1,jm),k=1,LMO)  !       print 5001,((Rco2(j,k),j=1,jm),k=1,LMO)
267            print 5001,((Rco2(j,k)*1.e2,j=1,jm),k=1,LMO)
268          dzog(1)=10./SQRT(1.7010587)          dzog(1)=10./SQRT(1.7010587)
269          dzg(2)=10.          dzg(2)=10.
270          do l=2,lmo-1          do l=2,lmo-1
# Line 365  C**** INITIALIZE TIME PARAMETERS Line 365  C**** INITIALIZE TIME PARAMETERS
365        NSTEP2=NSTEP                                                        29.6          NSTEP2=NSTEP                                                        29.6  
366        MRCHT=0.                                                            29.7          MRCHT=0.                                                            29.7  
367        ITAU=(NSTEP+NSTEP0)*IDTHR                                           30.          ITAU=(NSTEP+NSTEP0)*IDTHR                                           30.  
368        TAU=FLOAT(ITAU)/XINT                                                31.    cjrs changed to dfloat 8/2/07
369          TAU=DFLOAT(ITAU)/XINT                                               31.  
370        IDAY=1+ITAU/I24                                                     32.          IDAY=1+ITAU/I24                                                     32.  
371        TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                     33.          TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                     33.  
372        if(ISTART.eq.2.or.ISTRT1.eq.0.and..not.CONTRR)then  !     if(ISTART.eq.2.or.ISTRT1.eq.0.and..not.CONTRR)then
373        do 458 j=1,JM  !     do 458 j=1,JM
374         TSURFD(j)=0.  !      TSURFD(j)=0.
375         TSURFT(j)=0.  !      TSURFT(j)=0.
376    458 continue  ! 458 continue
377        endif  !     endif
378        if(JDATE.eq.100)then        if(JDATE.eq.100)then
379         print *,JDATE,JMONTH,JYEAR         print *,JDATE,JMONTH,JYEAR
380         print *,' main before daily0'         print *,' main before daily0'
# Line 388  C**** INITIALIZE TIME PARAMETERS Line 389  C**** INITIALIZE TIME PARAMETERS
389        endif        endif
390        CALL DAILY_NEW0                                                         34.          CALL DAILY_NEW0                                                         34.  
391        print *,' Main after DAILYNEW0 JYEAR=',JYEAR        print *,' Main after DAILYNEW0 JYEAR=',JYEAR
392         print *,"DTSURF"         print *,"DT2MGL"
393         print *,DTSURF         print *,DT2MGL
394           print *,"DT2MLD"
395           print *,DT2MLD
396  #if( !defined OCEAN_3D&& !defined ML_2D )  #if( !defined OCEAN_3D&& !defined ML_2D )
397        CALL DAILY_OCEAN        CALL DAILY_OCEAN
398        print *,' AFTER DAILY_OCEAN IDAY=',IDAY,' IYEAR=',IYEAR        print *,' AFTER DAILY_OCEAN IDAY=',IDAY,' IYEAR=',IYEAR
# Line 438  c Line 441  c
441        JDATEATM=JDATE        JDATEATM=JDATE
442        JYEARATM=JYEAR        JYEARATM=JYEAR
443  C  C
444    #if ( defined  CPL_OCEANCO2 )
445           do j=1,jm
446            fluxco2(j)=0.0
447           enddo
448    #endif
449  #if ( defined CPL_CHEM) && ( defined CPL_TEM )  #if ( defined CPL_CHEM) && ( defined CPL_TEM )
450  C  For TEM  C  For TEM
451        if(ISTRT1.eq.0) then        if(ISTRT1.eq.0) then
# Line 457  c      Reading from last_nep Line 465  c      Reading from last_nep
465  !      adupt= 0.25  !      adupt= 0.25
466  !      adupt= -0.1123070421398009  !      adupt= -0.1123070421398009
467  !  !
468    !      adupt= adupt+0.9 ! for vs23
469    
470         aduptd=adupt/(365.*JM)         aduptd=adupt/(365.*JM)
471         temnepgl=0.0         temnepgl=0.0
472          do j=1,jm          do j=1,jm
# Line 473  c      Reading from last_nep Line 483  c      Reading from last_nep
483         elseif(LMO.eq.12) then         elseif(LMO.eq.12) then
484           call ODIFS12           call ODIFS12
485         else         else
486           Print *,' Wromng LMO',LMO           Print *,' Wrong LMO',LMO
487           stop           stop
488         endif         endif
489        endif        endif
490  #endif  #endif
491  #if (defined PREDICTED_GASES)  !#if (defined PREDICTED_GASES)
492  #if (defined CPL_TEM || defined CPL_OCEANCO2 )  #if (defined CPL_TEM || defined CPL_OCEANCO2 )
493        if(OBSFOR) then        if(OBSFOR) then
494         call obsco2(iyear,imontha)         call obsco2(iyear,imontha)
495         mnobco2=imonth         mnobco2=imonth
496        endif        endif
497  #endif  #endif
498  #endif  !#endif
499    CJRS removed below from ocean_3d
500  #ifdef ML_2D  #ifdef ML_2D
501           do j=1,jm           do j=1,jm
502             do i=1,io             do i=1,io
# Line 524  c      Reading from last_nep Line 535  c      Reading from last_nep
535          enddo          enddo
536        endif        endif
537  #endif  #endif
538    #if (defined CPL_TEM || defined CPL_OCEANCO2 )
539          print *,'ATM_CO2'          print *,'ATM_CO2'
540          print *,atm_co2          print *,atm_co2
541    #endif
542        JDAYLAST=-1        JDAYLAST=-1
543        ncallclm=0        ncallclm=0
544        NOCLM=.true.        NOCLM=.true.
# Line 533  c      Reading from last_nep Line 546  c      Reading from last_nep
546        NOCLM=.false.        NOCLM=.false.
547  #endif  #endif
548        print *,' atmosphere DTATM=',DTATM        print *,' atmosphere DTATM=',DTATM
549          print *,' It is running'
550        print *,'End of atmospheric model initialization'        print *,'End of atmospheric model initialization'
551        print *,'  '        print *,'  '
552        print *,'  '        print *,'  '
# Line 550  cprint *,' atmosphere TAU=',tau Line 564  cprint *,' atmosphere TAU=',tau
564  c     HPRNT=TAU.ge.17520.0.and.TAU.lt.17545.0  c     HPRNT=TAU.ge.17520.0.and.TAU.lt.17545.0
565  c     print *,' TAUE=',TAUE  c     print *,' TAUE=',TAUE
566  #if ( defined OCEAN_3D || defined ML_2D)  #if ( defined OCEAN_3D || defined ML_2D)
 C         print *,'TAU,DTATM,TAUE: ', TAU,DTATM,TAUE  
          CALL OCEAN4ATM  
567           do j=1,jm0           do j=1,jm0
568             tauu(j)=0.             tauu(j)=0.
569             tauv(j)=0.             tauv(j)=0.
# Line 569  C         print *,'TAU,DTATM,TAUE: ', TA Line 581  C         print *,'TAU,DTATM,TAUE: ', TA
581             dhfidtgeq(j)=0.             dhfidtgeq(j)=0.
582             devidtgeq(j)=0.             devidtgeq(j)=0.
583             tempr(j)=0.             tempr(j)=0.
584    cjrs change var name to arunoff
585             arunoff(j)=0.             arunoff(j)=0.
586             solarinc_ice(j)=0.             solarinc_ice(j)=0.
587             solarnet_ice(j)=0.             solarnet_ice(j)=0.
588             solarinc_ocean(j)=0.             solarinc_ocean(j)=0.
589             solarnet_ocean(j)=0.             solarnet_ocean(j)=0.
590  Cjrs           surfpr(j)=0.  Cjrs not used anymore (?)           surfpr(j)=0.
591             naveo(j)=0.             naveo(j)=0.
592             navei(j)=0.             navei(j)=0.
593             navrad(j)=0.             navrad(j)=0.
# Line 588  c Line 601  c
601  c  c
602           enddo           enddo
603  #endif  #endif
604    #ifdef OCEAN_3D
605    C get data from atm-ocean common block
606           do j=1,jm0
607             ODATA(1,j,1)=mmsst(j)
608             ODATA(1,j,2)=mmfice(j)
609             GDATA(1,j,3)=mmtice(j)
610             GDATA(1,j,1)=mmsnowm(j)
611             ODATA(1,j,3)=mmicem(j)
612             GDATA(1,j,7)=0.5*(mmtice2(j)+mmtice1(j))
613    #  ifdef CPL_OCEANCO2
614             fluxco2(j)=fluxco2(j) + dtatm*3600.*mmco2flux(j)
615    #  endif
616           enddo
617    #endif
618        WLMMAX=0.0        WLMMAX=0.0
619  C  C
620    100 IF(.NOT.EVENT(TAUT)) GO TO 200                                      46.      100 IF(.NOT.EVENT(TAUT)) GO TO 200                                      46.  
 C      print *,' atmosphere TAU=',tau  
621  c     HPRNT=TAU.ge.17520.00  c     HPRNT=TAU.ge.17520.00
622        NSTEP1=NSTEP                                                        46.5          NSTEP1=NSTEP                                                        46.5  
623  C**** WRITE RESTART INFORMATION ONTO DISK                                 47.    C**** WRITE RESTART INFORMATION ONTO DISK                                 47.  
# Line 614  C**** WRITE RESTART INFORMATION ONTO DIS Line 640  C**** WRITE RESTART INFORMATION ONTO DIS
640        if(TRANSR)then        if(TRANSR)then
641        WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,BLDATA,  50.        WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,BLDATA,  50.
642       *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2    51.       *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2    51.
643       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
644       *  ,TG3M,RTGO,STG3,DTG3       *  ,TG3M,RTGO,STG3,DTG3
645        print *,' STG3'        print *,' STG3'
646        print 5001,(STG3(1,j),j=1,JM0)        print 5001,(STG3(1,j),j=1,JM0)
# Line 627  C**** WRITE RESTART INFORMATION ONTO DIS Line 653  C**** WRITE RESTART INFORMATION ONTO DIS
653        else        else
654        WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,BLDATA,  50.          WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,BLDATA,  50.  
655       *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2    51.         *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2    51.  
656       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
657        endif        endif
658        REWIND KDISK0                                                       52.          REWIND KDISK0                                                       52.  
659        end if    ! ISTART.eq.2        end if    ! ISTART.eq.2
# Line 643  c     HPRNT=TAU.gt.470.0.and.TAU.lt.550. Line 669  c     HPRNT=TAU.gt.470.0.and.TAU.lt.550.
669        NCOMP=0        NCOMP=0
670    210 REWIND 503                                                          61.1      210 REWIND 503                                                          61.1  
671        IF(LABSSW.EQ.LABEL1) KSS6=1                                         61.2          IF(LABSSW.EQ.LABEL1) KSS6=1                                         61.2  
672        IF(KSS6.EQ.1) GO TO 800                                             62.          IF(KSS6.EQ.1) GO TO 800                                             62.  
673        IF(TAU+.06125.GE.TAUE) GO TO 820                                    63.          IF(TAU+.06125.GE.TAUE) GO TO 820                                    63.  
674        JDAY00=JDAY        JDAY00=JDAY
675  C**** IF TIME TO ZERO OUT DIAGNOSTIC ACCUMULATING ARRAYS, DO SO           64.    C**** IF TIME TO ZERO OUT DIAGNOSTIC ACCUMULATING ARRAYS, DO SO           64.  
# Line 1030  C**** RADIATION, SOLAR AND THERMAL Line 1056  C**** RADIATION, SOLAR AND THERMAL
1056           CALL RADIA                             CALL RADIA                  
1057        endif        endif
1058  #endif  #endif
   
1059        if(HPRNT)then        if(HPRNT)then
1060        print *,' main after radia',' TAU=',TAU        print *,' main after radia',' TAU=',TAU
1061  #include "PRNT.COM"  #include "PRNT.COM"
# Line 1061  C**** SURFACE INTERACTION AND GROUND CAL Line 1086  C**** SURFACE INTERACTION AND GROUND CAL
1086        print *,' main after surf4clm',' TAU=',TAU        print *,' main after surf4clm',' TAU=',TAU
1087  #include "PRNT.COM"  #include "PRNT.COM"
1088        endif        endif
1089          i=1
1090        do j=1,jm        do j=1,jm
1091           pcpl4clm(j)=pcpl4clm(j)*prlnd2total(j,mndriver)           pcpl4clm(i,j)=pcpl4clm(i,j)*prlnd2total(j,mndriver)
1092           pcpc4clm(j)=pcpc4clm(j)*prlnd2total(j,mndriver)           pcpc4clm(i,j)=pcpc4clm(i,j)*prlnd2total(j,mndriver)
1093        enddo        enddo
1094  !     print *,' main after surf4clm',' TAU=',TAU  !     print *,' main after surf4clm',' TAU=',TAU
1095  !       print  ('2(12f7.2,/,11f7.2,/)'),ps4clm,pcpl4clm,  !       print  ('2(12f7.2,/,11f7.2,/)'),ps4clm,pcpl4clm,
# Line 1100  c       print *,'before clm4mit2d ncallc Line 1126  c       print *,'before clm4mit2d ncallc
1126        endif        endif
1127    
1128  c     if(JYEAR.gt.20)then  c     if(JYEAR.gt.20)then
1129  c      write (934),tau,tsoiclm,snwdclm,snwcclm,  !      write (934),tau,tsoiclm,snwdclm,snwcclm,
1130  c    & lwuclm,tref2mclm,tflxclm,tgndclm,  !    & lwuclm,tref2mclm,tflxclm,tgndclm,
1131  c    & lhfclm,shfclm,tauxclm,tauyclm,  !    & lhfclm,shfclm,tauxclm,tauyclm,
1132  c    & asdirclm,aldirclm,asdifclm,aldifclm,  !    & asdirclm,aldirclm,asdifclm,aldifclm,
1133  c    & sroclm,ssrclm,glrclm  !    & sroclm,ssrclm,glrclm
1134  c    &,h2olclm,h2oiclm  !    &,h2olclm,h2oiclm
1135  c     endif  c     endif
1136  !     print *,' main after clm4mit2d',' TAU=',TAU  !     print *,' main after clm4mit2d',' TAU=',TAU
1137  !       print  ('2(12f7.2,/,11f7.2,/)'),tsoiclm,snwdclm,snwcclm,  !       print  ('2(12f7.2,/,11f7.2,/)'),tsoiclm,snwdclm,snwcclm,
# Line 1231  C**** UPDATE MODEL TIME AND CALL DAILY I Line 1257  C**** UPDATE MODEL TIME AND CALL DAILY I
1257  C****                                                                    189.    C****                                                                    189.  
1258    500 NSTEP=NSTEP+NDYN                                                   190.      500 NSTEP=NSTEP+NDYN                                                   190.  
1259        ITAU=(NSTEP+NSTEP0)*IDTHR                                          191.          ITAU=(NSTEP+NSTEP0)*IDTHR                                          191.  
1260        TAU=FLOAT(ITAU)/XINT                                               192.    cJRS fix to DFLOAT 8/2/07
1261          TAU=DFLOAT(ITAU)/XINT                                               192.  
1262        IDAY=1+ITAU/I24                                                    193.          IDAY=1+ITAU/I24                                                    193.  
1263        TOFDAYPR=TOFDAY+1.00        TOFDAYPR=TOFDAY+1.00
1264        TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                    194.          TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                    194.  
# Line 1239  C**** Line 1266  C****
1266  C                                                                        196.    C                                                                        196.  
1267        do J=1,JM0        do J=1,JM0
1268          TSURFW(J)=TSURFD(J)          TSURFW(J)=TSURFD(J)
1269            TLANDW(J)=TLANDD(J)
1270        enddo        enddo
1271    
1272        JDATECLM=JDATE        JDATECLM=JDATE
# Line 1363  c Line 1391  c
1391          pC_atm(j)=zco2(1,j,1)          pC_atm(j)=zco2(1,j,1)
1392       &           *28.97296245/44.0*1.e-9               &           *28.97296245/44.0*1.e-9        
1393                          !ppb(m) to kg per volume base                          !ppb(m) to kg per volume base
1394    
1395              atm_co2(j)=pC_atm(j)*1.e6
1396    
1397        enddo    !       j        enddo    !       j
1398  c  c
1399  c -------  c -------
# Line 1401  c     print *,'tem=',tggary(27) Line 1432  c     print *,'tem=',tggary(27)
1432  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',(pC_atm(j)*1.e6,j=1,jm)  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',(pC_atm(j)*1.e6,j=1,jm)
1433  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',(rco2(j,1),j=1,jm)  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',(rco2(j,1),j=1,jm)
1434  c     ncallgary=ncallgary+1  c     ncallgary=ncallgary+1
1435        call carb_mxdlyr_chem(focean)  !     10/28/06
1436        call carb_airsea_flx  !     call carb_mxdlyr_chem(focean)
1437    !     call carb_airsea_flx
1438    !
1439    !     3D ocean chemistry
1440          call carb_chem_ocmip(focean)
1441          call carb_airsea_flx(dtco2)
1442    !     3D ocean chemistry
1443    !     10/28/06
1444  c     print *,'FCO2 ncallgary=',ncallgary  c     print *,'FCO2 ncallgary=',ncallgary
1445  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',
1446  c    &       (fluxco2(j)*12.e-15*365.,j=1,jm)  c    &       (fluxco2(j)*12.e-15*365.,j=1,jm)
1447  #endif  #endif
1448    
 # if ( defined OCEAN_3D)  
        SECDAY=24.*3600.  
 c      print *,'CO2F form ocean'  
 c      print *,mmco2flux  
 Cjrs       fluxco2(1)=SECDAY*mmco2flux(1)  
        fluxco2(1)=SECDAY*mmco2flux(2)    
        do j=2,jm-1  
         fluxco2(j)=SECDAY*mmco2flux(j-1)  
        enddo  
        fluxco2(JM)=SECDAY*mmco2flux(JM-1)  
 Cjrs       fluxco2(JM)=SECDAY*mmco2flux(JMOCEAN)  
 # endif  
   
1449  C    For ocean carbon model  C    For ocean carbon model
1450  c  Annual oceanic CO2 uptake  c  Annual oceanic CO2 uptake
1451         do j=1,jm         do j=1,jm
1452           OCUPT=OCUPT+fluxco2(j)           OCUPT=OCUPT+fluxco2(j)
1453         enddo         enddo
1454  c     print *,' OCUPT=',OCUPT*12.e-15  !      print *,' OCUPT=',OCUPT*12.e-15
1455    
1456  #if ( defined CPL_CHEM )  #if ( defined CPL_CHEM )
1457  !  !
# Line 1440  c     print *,' OCUPT=',OCUPT*12.e-15 Line 1465  c     print *,' OCUPT=',OCUPT*12.e-15
1465  !  !
1466  #endif  #endif
1467    
1468           do j=1,jm
1469            fluxco2(j)=0.0
1470           enddo
1471  #endif  #endif
1472    
1473  #if ( defined CPL_TEM )  #if ( defined CPL_TEM )
# Line 1484  c Line 1512  c
1512  #if ( defined CPL_OCEANCO2 && defined ML_2D )  #if ( defined CPL_OCEANCO2 && defined ML_2D )
1513  C    For OCM  C    For OCM
1514    
1515          dtco2=3600.*24.  !       dtco2=3600.*24.
1516          call diffusco2(lmo,jm,dtco2,0.5,edzon,depthml,focean,  !       cfkvct=1.0
1517    !       if (JYEAR.ge.1991) then begin
1518    !        if (JYEAR.le.2100) then begin
1519    !         cfkvct=(1.0*(2100-JYEAR)+0.25*(JYEAR-1990))/110.
1520    !        esle
1521    !         cfkvct=0.25
1522    !        endif
1523    !       endif
1524    !       do j=1,jm
1525    !        edzcatr(j)=cfkvct*edzcar(j)
1526    !       enddo
1527            call diffusco2(lmo,jm,dtco2,0.5,edzcart,depthml,focean,
1528       &                dzg,dzog,rco2)       &                dzg,dzog,rco2)
1529          call hdocean(rco2,focean,dxv,dyv,DXYP,depthml,edohd,dtco2)          call hdocean(rco2,focean,dxv,dyv,DXYP,depthml,edohd,dtco2)
1530          call avegary          call avegary
# Line 1724  c     print *,(RTGOAV(J,1),j=1,jm) Line 1763  c     print *,(RTGOAV(J,1),j=1,jm)
1763  c      do 5287 j=1,JM+3  c      do 5287 j=1,JM+3
1764  c       GBUDG(j,38,1)=GBUDG(j,37,1)*1013./GBUDG(jm+3,37,1)  c       GBUDG(j,38,1)=GBUDG(j,37,1)*1013./GBUDG(jm+3,37,1)
1765  c5287 continue  c5287 continue
1766         print *,'FRMDICE'  !      print *,'FRMDICE'
1767         print '6(1PE12.4)',FRMDICE  !      print '6(1PE12.4)',FRMDICE
1768         ENKE=0.0         ENKE=0.0
1769         ENPT=0.0         ENPT=0.0
1770        do ii=1,4        do ii=1,4
# Line 1776  C     Data for possible restart for OCM Line 1815  C     Data for possible restart for OCM
1815          WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,          WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,
1816       *   BLDATA,       *   BLDATA,
1817       *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2       *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2
1818       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1819       *  ,TG3M,RTGO,STG3,DTG3       *  ,TG3M,RTGO,STG3,DTG3
1820         else         else
1821          WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,          WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,
1822       *   BLDATA,       *   BLDATA,
1823       *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2       *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2
1824       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1825  c       print *,' TSURFT'  c       print *,' TSURFT'
1826  c       print 5001,TSURFT  c       print 5001,TSURFT
1827  c       print *,' TSURFW'  c       print *,' TSURFW'
# Line 1803  C**** WRITE A COPY OF THE FINAL RESTART Line 1842  C**** WRITE A COPY OF THE FINAL RESTART
1842           IF(TAU.GT.TAUX+3240.) GO TO 683                                 287.             IF(TAU.GT.TAUX+3240.) GO TO 683                                 287.  
1843    685    WRITE (KCOPY) TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,BLDATA,   287.5      685    WRITE (KCOPY) TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,BLDATA,   287.5  
1844       *   RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN              288.         *   RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN              288.  
1845       *   ,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *   ,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1846       *   ,TG3M,RTGO,STG3,DTG3       *   ,TG3M,RTGO,STG3,DTG3
1847           REWIND KCOPY                                                    288.5             REWIND KCOPY                                                    288.5  
1848  C  690 changed to 691 02/21/2003  C  690 changed to 691 02/21/2003
# Line 1830  C**** RUN TERMINATED BECAUSE SENSE SWITC Line 1869  C**** RUN TERMINATED BECAUSE SENSE SWITC
1869        REWIND KDISK0                                                      303.          REWIND KDISK0                                                      303.  
1870        WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,BLDATA, 304.          WRITE(KDISK0) AEXP,TAU,JC,C,RC,KEYNR,U,V,T,P,Q,ODATA,GDATA,BLDATA, 304.  
1871       *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2   305.         *  RQT,SRHR,TRHR,(AJ(K,1),K=1,KACC),TAU,TSSFC,CKS,CKN,WMGE,TPRIM2   305.  
1872       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1873        end if        end if
1874  C     WRITE (6,908)                                                      306.    C     WRITE (6,908)                                                      306.  
1875  C**** RUN TERMINATED BECAUSE IT REACHED TAUE (OR SS6 WAS TURNED ON)      307.    C**** RUN TERMINATED BECAUSE IT REACHED TAUE (OR SS6 WAS TURNED ON)      307.  
# Line 1841  c 820 WRITE (6,905) TAU,IDAY,TOFDAY Line 1880  c 820 WRITE (6,905) TAU,IDAY,TOFDAY
1880  C     DTATM time step of atm model in hours  C     DTATM time step of atm model in hours
1881  C     precip and evap in mm/day or kg/m**2/day  C     precip and evap in mm/day or kg/m**2/day
1882           do j=1,jm0           do j=1,jm0
1883  #if ( defined OCEAN_3D && defined CPL_OCEANCO2 )  Cjrs #if ( defined OCEAN_3D && defined CPL_OCEANCO2 )
1884             ncallatm=ncallatm+1  #ifdef OCEAN_3D
1885             co24ocean(j)=pC_atm(j)*1.e6  !jrs           ncallatm=ncallatm+1
1886    ! 020107
1887    !          co24ocean(j)=pC_atm(j)*1.e6
1888    ! jrs give CO2 even if ocn carbon off
1889               co24ocean(j)=atm_co2(j)
1890    #  ifdef CPL_OCEANCO2
1891             co24ocnan(j)=co24ocnan(j)+co24ocean(j)             co24ocnan(j)=co24ocnan(j)+co24ocean(j)
1892    #  endif
1893  #endif  #endif
1894  #ifdef ML_2D  #ifdef ML_2D
1895    cjrs block only MD_2D
1896             rseaice(j)=ODATA(1,J,2)             rseaice(j)=ODATA(1,J,2)
1897  #endif  #endif
1898             tauu(j)=tauu(j)/(NSURF*DTATM)             tauu(j)=tauu(j)/(NSURF*DTATM)
# Line 1858  C     precip and evap in mm/day or kg/m* Line 1904  C     precip and evap in mm/day or kg/m*
1904             precip(j)=precip(j)*(1.-fland*prlnd2total(j,mndriver))             precip(j)=precip(j)*(1.-fland*prlnd2total(j,mndriver))
1905       &      /(1.-fland)       &      /(1.-fland)
1906             endif             endif
1907  Cjrs           surfpr(j)=surfpr(j)/(DTATM/24.)  Cjrs            surfpr(j)=surfpr(j)/(DTATM/24.)
1908  c  c
1909             if(naveo(j).gt.0)then             if(naveo(j).gt.0)then
1910               hfluxo(j)=NSURF*hfluxo(j)/(NDYN*DT*naveo(j))               hfluxo(j)=NSURF*hfluxo(j)/(NDYN*DT*naveo(j))
# Line 1896  C Line 1942  C
1942             endif             endif
1943  c          Runoff is a flux of water from land in mm/day  c          Runoff is a flux of water from land in mm/day
1944  c          not for m**2  c          not for m**2
1945    cjrs change runoff to new name arunoff
1946             arunoff(j)=arunoff(j)/(DTATM/24.)*FDATA(1,j,2)             arunoff(j)=arunoff(j)/(DTATM/24.)*FDATA(1,j,2)
1947       &          *DXYP(J)       &          *DXYP(J)
1948             if(NWMGEA(J).gt.0)then             if(NWMGEA(J).gt.0)then
# Line 1925  c Line 1972  c
1972             CLAT=20.*TWOPI/360.             CLAT=20.*TWOPI/360.
1973             do j=1,jm             do j=1,jm
1974               SLAND=SLAND+FDATA(1,j,2)*DXYP(J)               SLAND=SLAND+FDATA(1,j,2)*DXYP(J)
1975    c jrs runoff->arunoff
1976               rungl=rungl+arunoff(j)               rungl=rungl+arunoff(j)
1977               if(LAT(J).lt.-CLAT)then               if(LAT(J).lt.-CLAT)then
1978                 runs=runs+arunoff(j)                 runs=runs+arunoff(j)
# Line 1938  c          print *,'RUNOFF TOFDAY=',TOFD Line 1986  c          print *,'RUNOFF TOFDAY=',TOFD
1986  c          print *,rungl/SLAND,rungl,runs,runt,runn  c          print *,rungl/SLAND,rungl,runs,runt,runn
1987  c       nmonth=JMNTH0  c       nmonth=JMNTH0
1988  #ifdef ML_2D  #ifdef ML_2D
1989    c jrs only ML_2D
1990          nmonth=AMONTH(mndriver)          nmonth=AMONTH(mndriver)
1991  #endif  #endif
1992          jdatefl=jdate-1          jdatefl=jdate-1
# Line 1986  c       write(893),nmonth,jdatefl,tempr, Line 2035  c       write(893),nmonth,jdatefl,tempr,
2035  c    &  evai,hfluxo,dhfodtg,devodtg,hfluxi,dhfidtg,devidtg,  c    &  evai,hfluxo,dhfodtg,devodtg,hfluxi,dhfidtg,devidtg,
2036  c    &  solarinc_ice,solarnet_ice,rseaice  c    &  solarinc_ice,solarnet_ice,rseaice
2037  #ifdef ML_2D  #ifdef ML_2D
2038    c jrs only ML_2D
2039           do j=1,jm           do j=1,jm
2040             osst(j)=ODATA(1,j,1)             osst(j)=ODATA(1,j,1)
2041             aoice(j)=ODATA(1,j,3)             aoice(j)=ODATA(1,j,3)
# Line 2008  c Line 2058  c
2058        JYEARATM=JYEAR        JYEARATM=JYEAR
2059  C  C
2060  #ifdef ML_2D  #ifdef ML_2D
2061    Cjrs change this block to only ML_2D
2062           IDAYM=IDAY           IDAYM=IDAY
2063           JDAYM=JDAY           JDAYM=JDAY
2064           JDATEM=JDATE           JDATEM=JDATE
# Line 2023  c      print *,'co24ocean=',co24ocean(jm Line 2074  c      print *,'co24ocean=',co24ocean(jm
2074  c      WRITE (6,905) TOFDAY,JDATE,JMONTH,JYEAR  c      WRITE (6,905) TOFDAY,JDATE,JMONTH,JYEAR
2075         WRITE (6,905) TOFDAYPR,JDATEPR,JMONTHPR,JYEARPR         WRITE (6,905) TOFDAYPR,JDATEPR,JMONTHPR,JYEARPR
2076          endif          endif
2077          print *,'ncallclm=',ncallclm  cjrs        print *,'ncallclm=',ncallclm
2078         JDAYLAST=JDAY         JDAYLAST=JDAY
2079  c      if(ncallclm.gt.6) stop  c      if(ncallclm.gt.6) stop
2080  c      stop  c      stop

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.22