/[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.3 by jscott, Wed Sep 13 15:23:04 2006 UTC revision 1.4 by jscott, Mon Apr 23 21:20:17 2007 UTC
# Line 1  Line 1 
1    c source sokolov users  76203 Apr  7 12:46 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.COM"
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 368  C**** INITIALIZE TIME PARAMETERS Line 368  C**** INITIALIZE TIME PARAMETERS
368        TAU=FLOAT(ITAU)/XINT                                                31.          TAU=FLOAT(ITAU)/XINT                                                31.  
369        IDAY=1+ITAU/I24                                                     32.          IDAY=1+ITAU/I24                                                     32.  
370        TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                     33.          TOFDAY=(ITAU-(IDAY-1)*I24)/XINT                                     33.  
371        if(ISTART.eq.2.or.ISTRT1.eq.0.and..not.CONTRR)then  !     if(ISTART.eq.2.or.ISTRT1.eq.0.and..not.CONTRR)then
372        do 458 j=1,JM  !     do 458 j=1,JM
373         TSURFD(j)=0.  !      TSURFD(j)=0.
374         TSURFT(j)=0.  !      TSURFT(j)=0.
375    458 continue  ! 458 continue
376        endif  !     endif
377        if(JDATE.eq.100)then        if(JDATE.eq.100)then
378         print *,JDATE,JMONTH,JYEAR         print *,JDATE,JMONTH,JYEAR
379         print *,' main before daily0'         print *,' main before daily0'
# Line 388  C**** INITIALIZE TIME PARAMETERS Line 388  C**** INITIALIZE TIME PARAMETERS
388        endif        endif
389        CALL DAILY_NEW0                                                         34.          CALL DAILY_NEW0                                                         34.  
390        print *,' Main after DAILYNEW0 JYEAR=',JYEAR        print *,' Main after DAILYNEW0 JYEAR=',JYEAR
391         print *,"DTSURF"         print *,"DT2MGL"
392         print *,DTSURF         print *,DT2MGL
393           print *,"DT2MLD"
394           print *,DT2MLD
395  #if( !defined OCEAN_3D&& !defined ML_2D )  #if( !defined OCEAN_3D&& !defined ML_2D )
396        CALL DAILY_OCEAN        CALL DAILY_OCEAN
397        print *,' AFTER DAILY_OCEAN IDAY=',IDAY,' IYEAR=',IYEAR        print *,' AFTER DAILY_OCEAN IDAY=',IDAY,' IYEAR=',IYEAR
# Line 438  c Line 440  c
440        JDATEATM=JDATE        JDATEATM=JDATE
441        JYEARATM=JYEAR        JYEARATM=JYEAR
442  C  C
443    #if ( defined  CPL_OCEANCO2 )
444           do j=1,jm
445            fluxco2(j)=0.0
446           enddo
447    #endif
448  #if ( defined CPL_CHEM) && ( defined CPL_TEM )  #if ( defined CPL_CHEM) && ( defined CPL_TEM )
449  C  For TEM  C  For TEM
450        if(ISTRT1.eq.0) then        if(ISTRT1.eq.0) then
# Line 457  c      Reading from last_nep Line 464  c      Reading from last_nep
464  !      adupt= 0.25  !      adupt= 0.25
465  !      adupt= -0.1123070421398009  !      adupt= -0.1123070421398009
466  !  !
467    !      adupt= adupt+0.9 ! for vs23
468    
469         aduptd=adupt/(365.*JM)         aduptd=adupt/(365.*JM)
470         temnepgl=0.0         temnepgl=0.0
471          do j=1,jm          do j=1,jm
# Line 473  c      Reading from last_nep Line 482  c      Reading from last_nep
482         elseif(LMO.eq.12) then         elseif(LMO.eq.12) then
483           call ODIFS12           call ODIFS12
484         else         else
485           Print *,' Wromng LMO',LMO           Print *,' Wrong LMO',LMO
486           stop           stop
487         endif         endif
488        endif        endif
489  #endif  #endif
490  #if (defined PREDICTED_GASES)  !#if (defined PREDICTED_GASES)
491  #if (defined CPL_TEM || defined CPL_OCEANCO2 )  #if (defined CPL_TEM || defined CPL_OCEANCO2 )
492        if(OBSFOR) then        if(OBSFOR) then
493         call obsco2(iyear,imontha)         call obsco2(iyear,imontha)
494         mnobco2=imonth         mnobco2=imonth
495        endif        endif
496  #endif  #endif
497  #endif  !#endif
498    CJRS removed below from ocean_3d
499  #ifdef ML_2D  #ifdef ML_2D
500           do j=1,jm           do j=1,jm
501             do i=1,io             do i=1,io
# Line 524  c      Reading from last_nep Line 534  c      Reading from last_nep
534          enddo          enddo
535        endif        endif
536  #endif  #endif
537    #if (defined CPL_TEM || defined CPL_OCEANCO2 )
538          print *,'ATM_CO2'          print *,'ATM_CO2'
539          print *,atm_co2          print *,atm_co2
540    #endif
541        JDAYLAST=-1        JDAYLAST=-1
542        ncallclm=0        ncallclm=0
543        NOCLM=.true.        NOCLM=.true.
544  #if ( defined CLM )  #if ( defined CLM )
545        NOCLM=.false.        NOCLM=.false.
546  #endif  #endif
547          co2mmavd=0.0
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 why?           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    #if ( defined OCEAN_3D && defined CPL_OCEANCO2 )
605    !      SECDAY=24.*3600.
606           SECDAY=DTATM*3600.
607           co2mmav=0.0
608           do j=1,jmocean
609             co2mmav=co2mmav+mmco2flux(j)
610           enddo
611           print *,'CO2F form ocean TAU=',TAU,co2mmav*12.e-15
612    Cjrs *** this block needs attention?? ***
613    Cjrs       fluxco2(1)=fluxco2(1)+SECDAY*mmco2flux(1)
614           fluxco2(1)=fluxco2(1) + SECDAY*mmco2flux(2)  
615           do j=2,jm-1
616            fluxco2(j)=fluxco2(j)+SECDAY*mmco2flux(j-1)
617           enddo
618    Cjrs       fluxco2(JM)=fluxco2(JM)+SECDAY*mmco2flux(JMOCEAN)
619           fluxco2(JM)=fluxco2(JM) + SECDAY*mmco2flux(JM-1)
620    # endif
621    
622        WLMMAX=0.0        WLMMAX=0.0
623  C  C
624    100 IF(.NOT.EVENT(TAUT)) GO TO 200                                      46.      100 IF(.NOT.EVENT(TAUT)) GO TO 200                                      46.  
 C      print *,' atmosphere TAU=',tau  
625  c     HPRNT=TAU.ge.17520.00  c     HPRNT=TAU.ge.17520.00
626        NSTEP1=NSTEP                                                        46.5          NSTEP1=NSTEP                                                        46.5  
627  C**** WRITE RESTART INFORMATION ONTO DISK                                 47.    C**** WRITE RESTART INFORMATION ONTO DISK                                 47.  
# Line 614  C**** WRITE RESTART INFORMATION ONTO DIS Line 644  C**** WRITE RESTART INFORMATION ONTO DIS
644        if(TRANSR)then        if(TRANSR)then
645        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.
646       *  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.
647       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
648       *  ,TG3M,RTGO,STG3,DTG3       *  ,TG3M,RTGO,STG3,DTG3
649        print *,' STG3'        print *,' STG3'
650        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 657  C**** WRITE RESTART INFORMATION ONTO DIS
657        else        else
658        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.  
659       *  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.  
660       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
661        endif        endif
662        REWIND KDISK0                                                       52.          REWIND KDISK0                                                       52.  
663        end if    ! ISTART.eq.2        end if    ! ISTART.eq.2
# Line 643  c     HPRNT=TAU.gt.470.0.and.TAU.lt.550. Line 673  c     HPRNT=TAU.gt.470.0.and.TAU.lt.550.
673        NCOMP=0        NCOMP=0
674    210 REWIND 503                                                          61.1      210 REWIND 503                                                          61.1  
675        IF(LABSSW.EQ.LABEL1) KSS6=1                                         61.2          IF(LABSSW.EQ.LABEL1) KSS6=1                                         61.2  
676        IF(KSS6.EQ.1) GO TO 800                                             62.          IF(KSS6.EQ.1) GO TO 800                                             62.  
677        IF(TAU+.06125.GE.TAUE) GO TO 820                                    63.          IF(TAU+.06125.GE.TAUE) GO TO 820                                    63.  
678        JDAY00=JDAY        JDAY00=JDAY
679  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 1060  C**** RADIATION, SOLAR AND THERMAL
1060           CALL RADIA                             CALL RADIA                  
1061        endif        endif
1062  #endif  #endif
   
1063        if(HPRNT)then        if(HPRNT)then
1064        print *,' main after radia',' TAU=',TAU        print *,' main after radia',' TAU=',TAU
1065  #include "PRNT.COM"  #include "PRNT.COM"
# Line 1061  C**** SURFACE INTERACTION AND GROUND CAL Line 1090  C**** SURFACE INTERACTION AND GROUND CAL
1090        print *,' main after surf4clm',' TAU=',TAU        print *,' main after surf4clm',' TAU=',TAU
1091  #include "PRNT.COM"  #include "PRNT.COM"
1092        endif        endif
1093          i=1
1094        do j=1,jm        do j=1,jm
1095           pcpl4clm(j)=pcpl4clm(j)*prlnd2total(j,mndriver)           pcpl4clm(i,j)=pcpl4clm(i,j)*prlnd2total(j,mndriver)
1096           pcpc4clm(j)=pcpc4clm(j)*prlnd2total(j,mndriver)           pcpc4clm(i,j)=pcpc4clm(i,j)*prlnd2total(j,mndriver)
1097        enddo        enddo
1098  !     print *,' main after surf4clm',' TAU=',TAU  !     print *,' main after surf4clm',' TAU=',TAU
1099  !       print  ('2(12f7.2,/,11f7.2,/)'),ps4clm,pcpl4clm,  !       print  ('2(12f7.2,/,11f7.2,/)'),ps4clm,pcpl4clm,
# Line 1100  c       print *,'before clm4mit2d ncallc Line 1130  c       print *,'before clm4mit2d ncallc
1130        endif        endif
1131    
1132  c     if(JYEAR.gt.20)then  c     if(JYEAR.gt.20)then
1133  c      write (934),tau,tsoiclm,snwdclm,snwcclm,  !      write (934),tau,tsoiclm,snwdclm,snwcclm,
1134  c    & lwuclm,tref2mclm,tflxclm,tgndclm,  !    & lwuclm,tref2mclm,tflxclm,tgndclm,
1135  c    & lhfclm,shfclm,tauxclm,tauyclm,  !    & lhfclm,shfclm,tauxclm,tauyclm,
1136  c    & asdirclm,aldirclm,asdifclm,aldifclm,  !    & asdirclm,aldirclm,asdifclm,aldifclm,
1137  c    & sroclm,ssrclm,glrclm  !    & sroclm,ssrclm,glrclm
1138  c    &,h2olclm,h2oiclm  !    &,h2olclm,h2oiclm
1139  c     endif  c     endif
1140  !     print *,' main after clm4mit2d',' TAU=',TAU  !     print *,' main after clm4mit2d',' TAU=',TAU
1141  !       print  ('2(12f7.2,/,11f7.2,/)'),tsoiclm,snwdclm,snwcclm,  !       print  ('2(12f7.2,/,11f7.2,/)'),tsoiclm,snwdclm,snwcclm,
# Line 1239  C**** Line 1269  C****
1269  C                                                                        196.    C                                                                        196.  
1270        do J=1,JM0        do J=1,JM0
1271          TSURFW(J)=TSURFD(J)          TSURFW(J)=TSURFD(J)
1272            TLANDW(J)=TLANDD(J)
1273        enddo        enddo
1274    
1275        JDATECLM=JDATE        JDATECLM=JDATE
# Line 1363  c Line 1394  c
1394          pC_atm(j)=zco2(1,j,1)          pC_atm(j)=zco2(1,j,1)
1395       &           *28.97296245/44.0*1.e-9               &           *28.97296245/44.0*1.e-9        
1396                          !ppb(m) to kg per volume base                          !ppb(m) to kg per volume base
1397    
1398              atm_co2(j)=pC_atm(j)*1.e6
1399    
1400        enddo    !       j        enddo    !       j
1401  c  c
1402  c -------  c -------
# Line 1401  c     print *,'tem=',tggary(27) Line 1435  c     print *,'tem=',tggary(27)
1435  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)
1436  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)
1437  c     ncallgary=ncallgary+1  c     ncallgary=ncallgary+1
1438        call carb_mxdlyr_chem(focean)  !     10/28/06
1439        call carb_airsea_flx  !     call carb_mxdlyr_chem(focean)
1440    !     call carb_airsea_flx
1441    !
1442    !     3D ocean chemistry
1443          call carb_chem_ocmip(focean)
1444          call carb_airsea_flx(dtco2)
1445    !     3D ocean chemistry
1446    !     10/28/06
1447  c     print *,'FCO2 ncallgary=',ncallgary  c     print *,'FCO2 ncallgary=',ncallgary
1448  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',
1449  c    &       (fluxco2(j)*12.e-15*365.,j=1,jm)  c    &       (fluxco2(j)*12.e-15*365.,j=1,jm)
1450  #endif  #endif
1451    
 # 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  
   
1452  C    For ocean carbon model  C    For ocean carbon model
1453  c  Annual oceanic CO2 uptake  c  Annual oceanic CO2 uptake
1454         do j=1,jm         do j=1,jm
1455           OCUPT=OCUPT+fluxco2(j)           OCUPT=OCUPT+fluxco2(j)
1456         enddo         enddo
1457  c     print *,' OCUPT=',OCUPT*12.e-15        print *,' OCUPT=',OCUPT*12.e-15
1458    
1459  #if ( defined CPL_CHEM )  #if ( defined CPL_CHEM )
1460  !  !
# Line 1440  c     print *,' OCUPT=',OCUPT*12.e-15 Line 1468  c     print *,' OCUPT=',OCUPT*12.e-15
1468  !  !
1469  #endif  #endif
1470    
1471           do j=1,jm
1472            fluxco2(j)=0.0
1473           enddo
1474  #endif  #endif
1475    
1476  #if ( defined CPL_TEM )  #if ( defined CPL_TEM )
# Line 1484  c Line 1515  c
1515  #if ( defined CPL_OCEANCO2 && defined ML_2D )  #if ( defined CPL_OCEANCO2 && defined ML_2D )
1516  C    For OCM  C    For OCM
1517    
1518          dtco2=3600.*24.  !       dtco2=3600.*24.
1519          call diffusco2(lmo,jm,dtco2,0.5,edzon,depthml,focean,  !       cfkvct=1.0
1520    !       if (JYEAR.ge.1991) then begin
1521    !        if (JYEAR.le.2100) then begin
1522    !         cfkvct=(1.0*(2100-JYEAR)+0.25*(JYEAR-1990))/110.
1523    !        esle
1524    !         cfkvct=0.25
1525    !        endif
1526    !       endif
1527    !       do j=1,jm
1528    !        edzcatr(j)=cfkvct*edzcar(j)
1529    !       enddo
1530            call diffusco2(lmo,jm,dtco2,0.5,edzcart,depthml,focean,
1531       &                dzg,dzog,rco2)       &                dzg,dzog,rco2)
1532          call hdocean(rco2,focean,dxv,dyv,DXYP,depthml,edohd,dtco2)          call hdocean(rco2,focean,dxv,dyv,DXYP,depthml,edohd,dtco2)
1533          call avegary          call avegary
# Line 1724  c     print *,(RTGOAV(J,1),j=1,jm) Line 1766  c     print *,(RTGOAV(J,1),j=1,jm)
1766  c      do 5287 j=1,JM+3  c      do 5287 j=1,JM+3
1767  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)
1768  c5287 continue  c5287 continue
1769         print *,'FRMDICE'  !      print *,'FRMDICE'
1770         print '6(1PE12.4)',FRMDICE  !      print '6(1PE12.4)',FRMDICE
1771         ENKE=0.0         ENKE=0.0
1772         ENPT=0.0         ENPT=0.0
1773        do ii=1,4        do ii=1,4
# Line 1776  C     Data for possible restart for OCM Line 1818  C     Data for possible restart for OCM
1818          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,
1819       *   BLDATA,       *   BLDATA,
1820       *  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
1821       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1822       *  ,TG3M,RTGO,STG3,DTG3       *  ,TG3M,RTGO,STG3,DTG3
1823         else         else
1824          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,
1825       *   BLDATA,       *   BLDATA,
1826       *  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
1827       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1828  c       print *,' TSURFT'  c       print *,' TSURFT'
1829  c       print 5001,TSURFT  c       print 5001,TSURFT
1830  c       print *,' TSURFW'  c       print *,' TSURFW'
# Line 1803  C**** WRITE A COPY OF THE FINAL RESTART Line 1845  C**** WRITE A COPY OF THE FINAL RESTART
1845           IF(TAU.GT.TAUX+3240.) GO TO 683                                 287.             IF(TAU.GT.TAUX+3240.) GO TO 683                                 287.  
1846    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  
1847       *   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.  
1848       *   ,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *   ,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1849       *   ,TG3M,RTGO,STG3,DTG3       *   ,TG3M,RTGO,STG3,DTG3
1850           REWIND KCOPY                                                    288.5             REWIND KCOPY                                                    288.5  
1851  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 1872  C**** RUN TERMINATED BECAUSE SENSE SWITC
1872        REWIND KDISK0                                                      303.          REWIND KDISK0                                                      303.  
1873        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.  
1874       *  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.  
1875       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1876        end if        end if
1877  C     WRITE (6,908)                                                      306.    C     WRITE (6,908)                                                      306.  
1878  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 1843  C     precip and evap in mm/day or kg/m* Line 1885  C     precip and evap in mm/day or kg/m*
1885           do j=1,jm0           do j=1,jm0
1886  #if ( defined OCEAN_3D && defined CPL_OCEANCO2 )  #if ( defined OCEAN_3D && defined CPL_OCEANCO2 )
1887             ncallatm=ncallatm+1             ncallatm=ncallatm+1
1888             co24ocean(j)=pC_atm(j)*1.e6  ! 020107
1889    !          co24ocean(j)=pC_atm(j)*1.e6
1890               co24ocean(j)=atm_co2(j)
1891    ! 020107
1892             co24ocnan(j)=co24ocnan(j)+co24ocean(j)             co24ocnan(j)=co24ocnan(j)+co24ocean(j)
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  c        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.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22