/[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.9 by jscott, Mon Oct 15 15:03:55 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 335  C*** Line 335  C***
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
# Line 365  C**** INITIALIZE TIME PARAMETERS Line 363  C**** INITIALIZE TIME PARAMETERS
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
371        do 458 j=1,JM  !     do 458 j=1,JM
372         TSURFD(j)=0.  !      TSURFD(j)=0.
373         TSURFT(j)=0.  !      TSURFT(j)=0.
374    458 continue  ! 458 continue
375        endif  !     endif
376        if(JDATE.eq.100)then        if(JDATE.eq.100)then
377         print *,JDATE,JMONTH,JYEAR         print *,JDATE,JMONTH,JYEAR
378         print *,' main before daily0'         print *,' main before daily0'
# Line 388  C**** INITIALIZE TIME PARAMETERS Line 387  C**** INITIALIZE TIME PARAMETERS
387        endif        endif
388        CALL DAILY_NEW0                                                         34.          CALL DAILY_NEW0                                                         34.  
389        print *,' Main after DAILYNEW0 JYEAR=',JYEAR        print *,' Main after DAILYNEW0 JYEAR=',JYEAR
390         print *,"DTSURF"         print *,"DT2MGL"
391         print *,DTSURF         print *,DT2MGL
392           print *,"DT2MLD"
393           print *,DT2MLD
394  #if( !defined OCEAN_3D&& !defined ML_2D )  #if( !defined OCEAN_3D&& !defined ML_2D )
395        CALL DAILY_OCEAN        CALL DAILY_OCEAN
396        print *,' AFTER DAILY_OCEAN IDAY=',IDAY,' IYEAR=',IYEAR        print *,' AFTER DAILY_OCEAN IDAY=',IDAY,' IYEAR=',IYEAR
# Line 438  c Line 439  c
439        JDATEATM=JDATE        JDATEATM=JDATE
440        JYEARATM=JYEAR        JYEARATM=JYEAR
441  C  C
442    #if ( defined  CPL_OCEANCO2 )
443           do j=1,jm
444            fluxco2(j)=0.0
445           enddo
446    #endif
447  #if ( defined CPL_CHEM) && ( defined CPL_TEM )  #if ( defined CPL_CHEM) && ( defined CPL_TEM )
448  C  For TEM  C  For TEM
449        if(ISTRT1.eq.0) then        if(ISTRT1.eq.0) 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(367)adupt,temco2
458          rewind 367         CLOSE(367)
459         endif  cjrs        rewind 367
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
464  !      adupt= -0.1123070421398009  
 !  
465         aduptd=adupt/(365.*JM)         aduptd=adupt/(365.*JM)
466         temnepgl=0.0         temnepgl=0.0
467          do j=1,jm          do j=1,jm
# Line 473  c      Reading from last_nep Line 478  c      Reading from last_nep
478         elseif(LMO.eq.12) then         elseif(LMO.eq.12) then
479           call ODIFS12           call ODIFS12
480         else         else
481           Print *,' Wromng LMO',LMO           Print *,' Wrong LMO',LMO
482           stop           stop
483         endif         endif
484        endif        endif
485  #endif  #endif
486  #if (defined PREDICTED_GASES)  !#if (defined PREDICTED_GASES)
487  #if (defined CPL_TEM || defined CPL_OCEANCO2 )  #if (defined CPL_TEM || defined CPL_OCEANCO2 )
488        if(OBSFOR) then        if(OBSFOR) then
489         call obsco2(iyear,imontha)         call obsco2(iyear,imontha)
490         mnobco2=imonth         mnobco2=imonth
491        endif        endif
492  #endif  #endif
493  #endif  !#endif
494    CJRS removed below from ocean_3d
495  #ifdef ML_2D  #ifdef ML_2D
496           do j=1,jm           do j=1,jm
497             do i=1,io             do i=1,io
# Line 524  c      Reading from last_nep Line 530  c      Reading from last_nep
530          enddo          enddo
531        endif        endif
532  #endif  #endif
533    #if (defined CPL_TEM || defined CPL_OCEANCO2 )
534          print *,'ATM_CO2'          print *,'ATM_CO2'
535          print *,atm_co2          print *,atm_co2
536    #endif
537        JDAYLAST=-1        JDAYLAST=-1
538        ncallclm=0        ncallclm=0
539        NOCLM=.true.        NOCLM=.true.
# Line 533  c      Reading from last_nep Line 541  c      Reading from last_nep
541        NOCLM=.false.        NOCLM=.false.
542  #endif  #endif
543        print *,' atmosphere DTATM=',DTATM        print *,' atmosphere DTATM=',DTATM
544          print *,' It is running'
545        print *,'End of atmospheric model initialization'        print *,'End of atmospheric model initialization'
546        print *,'  '        print *,'  '
547        print *,'  '        print *,'  '
# Line 550  cprint *,' atmosphere TAU=',tau Line 559  cprint *,' atmosphere TAU=',tau
559  c     HPRNT=TAU.ge.17520.0.and.TAU.lt.17545.0  c     HPRNT=TAU.ge.17520.0.and.TAU.lt.17545.0
560  c     print *,' TAUE=',TAUE  c     print *,' TAUE=',TAUE
561  #if ( defined OCEAN_3D || defined ML_2D)  #if ( defined OCEAN_3D || defined ML_2D)
 C         print *,'TAU,DTATM,TAUE: ', TAU,DTATM,TAUE  
          CALL OCEAN4ATM  
562           do j=1,jm0           do j=1,jm0
563             tauu(j)=0.             tauu(j)=0.
564             tauv(j)=0.             tauv(j)=0.
# Line 569  C         print *,'TAU,DTATM,TAUE: ', TA Line 576  C         print *,'TAU,DTATM,TAUE: ', TA
576             dhfidtgeq(j)=0.             dhfidtgeq(j)=0.
577             devidtgeq(j)=0.             devidtgeq(j)=0.
578             tempr(j)=0.             tempr(j)=0.
579    cjrs change var name to arunoff
580             arunoff(j)=0.             arunoff(j)=0.
581             solarinc_ice(j)=0.             solarinc_ice(j)=0.
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           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.
# Line 588  c Line 596  c
596  c  c
597           enddo           enddo
598  #endif  #endif
599    #ifdef OCEAN_3D
600    C get data from atm-ocean common block
601           do j=1,jm0
602             ODATA(1,j,1)=mmsst(j)
603             ODATA(1,j,2)=mmfice(j)
604             GDATA(1,j,3)=mmtice(j)
605             GDATA(1,j,1)=mmsnowm(j)
606             ODATA(1,j,3)=mmicem(j)
607             GDATA(1,j,7)=0.5*(mmtice2(j)+mmtice1(j))
608    #  ifdef CPL_OCEANCO2
609             fluxco2(j)=fluxco2(j) + dtatm*3600.*mmco2flux(j)
610    #  endif
611           enddo
612    #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.  
 C      print *,' atmosphere TAU=',tau  
616  c     HPRNT=TAU.ge.17520.00  c     HPRNT=TAU.ge.17520.00
617        NSTEP1=NSTEP                                                        46.5          NSTEP1=NSTEP                                                        46.5  
618  C**** WRITE RESTART INFORMATION ONTO DISK                                 47.    C**** WRITE RESTART INFORMATION ONTO DISK                                 47.  
# Line 614  C**** WRITE RESTART INFORMATION ONTO DIS Line 635  C**** WRITE RESTART INFORMATION ONTO DIS
635        if(TRANSR)then        if(TRANSR)then
636        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.
637       *  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.
638       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
639       *  ,TG3M,RTGO,STG3,DTG3       *  ,TG3M,RTGO,STG3,DTG3
640        print *,' STG3'        print *,' STG3'
641        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 648  C**** WRITE RESTART INFORMATION ONTO DIS
648        else        else
649        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.  
650       *  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.  
651       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
652        endif        endif
653        REWIND KDISK0                                                       52.          REWIND KDISK0                                                       52.  
654        end if    ! ISTART.eq.2        end if    ! ISTART.eq.2
# Line 637  C**** WRITE RESTART INFORMATION ONTO DIS Line 658  C**** WRITE RESTART INFORMATION ONTO DIS
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.  
# Line 1030  C**** RADIATION, SOLAR AND THERMAL Line 1048  C**** RADIATION, SOLAR AND THERMAL
1048           CALL RADIA                             CALL RADIA                  
1049        endif        endif
1050  #endif  #endif
   
1051        if(HPRNT)then        if(HPRNT)then
1052        print *,' main after radia',' TAU=',TAU        print *,' main after radia',' TAU=',TAU
1053  #include "PRNT.COM"  #include "PRNT.COM"
# Line 1061  C**** SURFACE INTERACTION AND GROUND CAL Line 1078  C**** SURFACE INTERACTION AND GROUND CAL
1078        print *,' main after surf4clm',' TAU=',TAU        print *,' main after surf4clm',' TAU=',TAU
1079  #include "PRNT.COM"  #include "PRNT.COM"
1080        endif        endif
1081          i=1
1082        do j=1,jm        do j=1,jm
1083           pcpl4clm(j)=pcpl4clm(j)*prlnd2total(j,mndriver)           pcpl4clm(i,j)=pcpl4clm(i,j)*prlnd2total(j,mndriver)
1084           pcpc4clm(j)=pcpc4clm(j)*prlnd2total(j,mndriver)           pcpc4clm(i,j)=pcpc4clm(i,j)*prlnd2total(j,mndriver)
1085        enddo        enddo
1086  !     print *,' main after surf4clm',' TAU=',TAU  !     print *,' main after surf4clm',' TAU=',TAU
1087  !       print  ('2(12f7.2,/,11f7.2,/)'),ps4clm,pcpl4clm,  !       print  ('2(12f7.2,/,11f7.2,/)'),ps4clm,pcpl4clm,
# Line 1100  c       print *,'before clm4mit2d ncallc Line 1118  c       print *,'before clm4mit2d ncallc
1118        endif        endif
1119    
1120  c     if(JYEAR.gt.20)then  c     if(JYEAR.gt.20)then
1121  c      write (934),tau,tsoiclm,snwdclm,snwcclm,  !      write (934),tau,tsoiclm,snwdclm,snwcclm,
1122  c    & lwuclm,tref2mclm,tflxclm,tgndclm,  !    & lwuclm,tref2mclm,tflxclm,tgndclm,
1123  c    & lhfclm,shfclm,tauxclm,tauyclm,  !    & lhfclm,shfclm,tauxclm,tauyclm,
1124  c    & asdirclm,aldirclm,asdifclm,aldifclm,  !    & asdirclm,aldirclm,asdifclm,aldifclm,
1125  c    & sroclm,ssrclm,glrclm  !    & sroclm,ssrclm,glrclm
1126  c    &,h2olclm,h2oiclm  !    &,h2olclm,h2oiclm
1127  c     endif  c     endif
1128  !     print *,' main after clm4mit2d',' TAU=',TAU  !     print *,' main after clm4mit2d',' TAU=',TAU
1129  !       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 1249  C**** UPDATE MODEL TIME AND CALL DAILY I
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.  
# Line 1239  C**** Line 1258  C****
1258  C                                                                        196.    C                                                                        196.  
1259        do J=1,JM0        do J=1,JM0
1260          TSURFW(J)=TSURFD(J)          TSURFW(J)=TSURFD(J)
1261            TLANDW(J)=TLANDD(J)
1262        enddo        enddo
1263    
1264        JDATECLM=JDATE        JDATECLM=JDATE
# Line 1363  c Line 1383  c
1383          pC_atm(j)=zco2(1,j,1)          pC_atm(j)=zco2(1,j,1)
1384       &           *28.97296245/44.0*1.e-9               &           *28.97296245/44.0*1.e-9        
1385                          !ppb(m) to kg per volume base                          !ppb(m) to kg per volume base
1386    
1387              atm_co2(j)=pC_atm(j)*1.e6
1388    
1389        enddo    !       j        enddo    !       j
1390  c  c
1391  c -------  c -------
# Line 1401  c     print *,'tem=',tggary(27) Line 1424  c     print *,'tem=',tggary(27)
1424  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)
1425  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)
1426  c     ncallgary=ncallgary+1  c     ncallgary=ncallgary+1
1427        call carb_mxdlyr_chem(focean)  !     10/28/06
1428        call carb_airsea_flx  !     call carb_mxdlyr_chem(focean)
1429    !     call carb_airsea_flx
1430    !
1431    !     3D ocean chemistry
1432          call carb_chem_ocmip(focean)
1433          call carb_airsea_flx(dtco2)
1434    !     3D ocean chemistry
1435    !     10/28/06
1436  c     print *,'FCO2 ncallgary=',ncallgary  c     print *,'FCO2 ncallgary=',ncallgary
1437  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',  c     print '12f7.1,/,2(11f7.1,/,),12f7.1',
1438  c    &       (fluxco2(j)*12.e-15*365.,j=1,jm)  c    &       (fluxco2(j)*12.e-15*365.,j=1,jm)
1439  #endif  #endif
1440    
 # 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  
   
1441  C    For ocean carbon model  C    For ocean carbon model
1442  c  Annual oceanic CO2 uptake  c  Annual oceanic CO2 uptake
1443         do j=1,jm         do j=1,jm
1444           OCUPT=OCUPT+fluxco2(j)           OCUPT=OCUPT+fluxco2(j)
1445         enddo         enddo
1446  c     print *,' OCUPT=',OCUPT*12.e-15  !      print *,' OCUPT=',OCUPT*12.e-15
1447    
1448  #if ( defined CPL_CHEM )  #if ( defined CPL_CHEM )
1449  !  !
# Line 1440  c     print *,' OCUPT=',OCUPT*12.e-15 Line 1457  c     print *,' OCUPT=',OCUPT*12.e-15
1457  !  !
1458  #endif  #endif
1459    
1460           do j=1,jm
1461            fluxco2(j)=0.0
1462           enddo
1463  #endif  #endif
1464    
1465  #if ( defined CPL_TEM )  #if ( defined CPL_TEM )
# Line 1484  c Line 1504  c
1504  #if ( defined CPL_OCEANCO2 && defined ML_2D )  #if ( defined CPL_OCEANCO2 && defined ML_2D )
1505  C    For OCM  C    For OCM
1506    
1507          dtco2=3600.*24.  !       dtco2=3600.*24.
1508          call diffusco2(lmo,jm,dtco2,0.5,edzon,depthml,focean,  !       cfkvct=1.0
1509    !       if (JYEAR.ge.1991) then begin
1510    !        if (JYEAR.le.2100) then begin
1511    !         cfkvct=(1.0*(2100-JYEAR)+0.25*(JYEAR-1990))/110.
1512    !        esle
1513    !         cfkvct=0.25
1514    !        endif
1515    !       endif
1516    !       do j=1,jm
1517    !        edzcatr(j)=cfkvct*edzcar(j)
1518    !       enddo
1519            call diffusco2(lmo,jm,dtco2,0.5,edzcart,depthml,focean,
1520       &                dzg,dzog,rco2)       &                dzg,dzog,rco2)
1521          call hdocean(rco2,focean,dxv,dyv,DXYP,depthml,edohd,dtco2)          call hdocean(rco2,focean,dxv,dyv,DXYP,depthml,edohd,dtco2)
1522          call avegary          call avegary
# Line 1724  c     print *,(RTGOAV(J,1),j=1,jm) Line 1755  c     print *,(RTGOAV(J,1),j=1,jm)
1755  c      do 5287 j=1,JM+3  c      do 5287 j=1,JM+3
1756  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)
1757  c5287 continue  c5287 continue
1758         print *,'FRMDICE'  !      print *,'FRMDICE'
1759         print '6(1PE12.4)',FRMDICE  !      print '6(1PE12.4)',FRMDICE
1760         ENKE=0.0         ENKE=0.0
1761         ENPT=0.0         ENPT=0.0
1762        do ii=1,4        do ii=1,4
# Line 1776  C     Data for possible restart for OCM Line 1807  C     Data for possible restart for OCM
1807          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,
1808       *   BLDATA,       *   BLDATA,
1809       *  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
1810       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1811       *  ,TG3M,RTGO,STG3,DTG3       *  ,TG3M,RTGO,STG3,DTG3
1812         else         else
1813          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,
1814       *   BLDATA,       *   BLDATA,
1815       *  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
1816       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1817  c       print *,' TSURFT'  c       print *,' TSURFT'
1818  c       print 5001,TSURFT  c       print 5001,TSURFT
1819  c       print *,' TSURFW'  c       print *,' TSURFW'
# Line 1803  C**** WRITE A COPY OF THE FINAL RESTART Line 1834  C**** WRITE A COPY OF THE FINAL RESTART
1834           IF(TAU.GT.TAUX+3240.) GO TO 683                                 287.             IF(TAU.GT.TAUX+3240.) GO TO 683                                 287.  
1835    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  
1836       *   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.  
1837       *   ,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *   ,WMGE,TPRIM2,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1838       *   ,TG3M,RTGO,STG3,DTG3       *   ,TG3M,RTGO,STG3,DTG3
1839           REWIND KCOPY                                                    288.5             REWIND KCOPY                                                    288.5  
1840  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 1861  C**** RUN TERMINATED BECAUSE SENSE SWITC
1861        REWIND KDISK0                                                      303.          REWIND KDISK0                                                      303.  
1862        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.  
1863       *  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.  
1864       *  ,MRCHT,TRSURF,SRSURF,TSURFT,TSURFW,DWAV0       *  ,MRCHT,TRSURF,SRSURF,TLANDW,TSURFW,DWAV0
1865        end if        end if
1866  C     WRITE (6,908)                                                      306.    C     WRITE (6,908)                                                      306.  
1867  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 1872  c 820 WRITE (6,905) TAU,IDAY,TOFDAY
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             co24ocean(j)=pC_atm(j)*1.e6  !jrs           ncallatm=ncallatm+1
1878    ! 020107
1879    !          co24ocean(j)=pC_atm(j)*1.e6
1880    ! jrs give CO2 even if ocn carbon off
1881               co24ocean(j)=atm_co2(j)
1882    #  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
1888             rseaice(j)=ODATA(1,J,2)             rseaice(j)=ODATA(1,J,2)
1889  #endif  #endif
1890             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 1896  C     precip and evap in mm/day or kg/m*
1896             precip(j)=precip(j)*(1.-fland*prlnd2total(j,mndriver))             precip(j)=precip(j)*(1.-fland*prlnd2total(j,mndriver))
1897       &      /(1.-fland)       &      /(1.-fland)
1898             endif             endif
1899  Cjrs           surfpr(j)=surfpr(j)/(DTATM/24.)  Cjrs            surfpr(j)=surfpr(j)/(DTATM/24.)
1900  c  c
1901             if(naveo(j).gt.0)then             if(naveo(j).gt.0)then
1902               hfluxo(j)=NSURF*hfluxo(j)/(NDYN*DT*naveo(j))               hfluxo(j)=NSURF*hfluxo(j)/(NDYN*DT*naveo(j))
# Line 1896  C Line 1934  C
1934             endif             endif
1935  c          Runoff is a flux of water from land in mm/day  c          Runoff is a flux of water from land in mm/day
1936  c          not for m**2  c          not for m**2
1937    cjrs change runoff to new name arunoff
1938             arunoff(j)=arunoff(j)/(DTATM/24.)*FDATA(1,j,2)             arunoff(j)=arunoff(j)/(DTATM/24.)*FDATA(1,j,2)
1939       &          *DXYP(J)       &          *DXYP(J)
1940             if(NWMGEA(J).gt.0)then             if(NWMGEA(J).gt.0)then
# Line 1925  c Line 1964  c
1964             CLAT=20.*TWOPI/360.             CLAT=20.*TWOPI/360.
1965             do j=1,jm             do j=1,jm
1966               SLAND=SLAND+FDATA(1,j,2)*DXYP(J)               SLAND=SLAND+FDATA(1,j,2)*DXYP(J)
1967    c jrs runoff->arunoff
1968               rungl=rungl+arunoff(j)               rungl=rungl+arunoff(j)
1969               if(LAT(J).lt.-CLAT)then               if(LAT(J).lt.-CLAT)then
1970                 runs=runs+arunoff(j)                 runs=runs+arunoff(j)
# Line 1938  c          print *,'RUNOFF TOFDAY=',TOFD Line 1978  c          print *,'RUNOFF TOFDAY=',TOFD
1978  c          print *,rungl/SLAND,rungl,runs,runt,runn  c          print *,rungl/SLAND,rungl,runs,runt,runn
1979  c       nmonth=JMNTH0  c       nmonth=JMNTH0
1980  #ifdef ML_2D  #ifdef ML_2D
1981    c jrs only ML_2D
1982          nmonth=AMONTH(mndriver)          nmonth=AMONTH(mndriver)
1983  #endif  #endif
1984          jdatefl=jdate-1          jdatefl=jdate-1
# Line 1986  c       write(893),nmonth,jdatefl,tempr, Line 2027  c       write(893),nmonth,jdatefl,tempr,
2027  c    &  evai,hfluxo,dhfodtg,devodtg,hfluxi,dhfidtg,devidtg,  c    &  evai,hfluxo,dhfodtg,devodtg,hfluxi,dhfidtg,devidtg,
2028  c    &  solarinc_ice,solarnet_ice,rseaice  c    &  solarinc_ice,solarnet_ice,rseaice
2029  #ifdef ML_2D  #ifdef ML_2D
2030    c jrs only ML_2D
2031           do j=1,jm           do j=1,jm
2032             osst(j)=ODATA(1,j,1)             osst(j)=ODATA(1,j,1)
2033             aoice(j)=ODATA(1,j,3)             aoice(j)=ODATA(1,j,3)
# Line 2008  c Line 2050  c
2050        JYEARATM=JYEAR        JYEARATM=JYEAR
2051  C  C
2052  #ifdef ML_2D  #ifdef ML_2D
2053    Cjrs change this block to only ML_2D
2054           IDAYM=IDAY           IDAYM=IDAY
2055           JDAYM=JDAY           JDAYM=JDAY
2056           JDATEM=JDATE           JDATEM=JDATE
# Line 2023  c      print *,'co24ocean=',co24ocean(jm Line 2066  c      print *,'co24ocean=',co24ocean(jm
2066  c      WRITE (6,905) TOFDAY,JDATE,JMONTH,JYEAR  c      WRITE (6,905) TOFDAY,JDATE,JMONTH,JYEAR
2067         WRITE (6,905) TOFDAYPR,JDATEPR,JMONTHPR,JYEARPR         WRITE (6,905) TOFDAYPR,JDATEPR,JMONTHPR,JYEARPR
2068          endif          endif
2069  c        print *,'ncallclm=',ncallclm  cjrs        print *,'ncallclm=',ncallclm
2070         JDAYLAST=JDAY         JDAYLAST=JDAY
2071  c      if(ncallclm.gt.6) stop  c      if(ncallclm.gt.6) stop
2072  c      stop  c      stop
# Line 2031  c      stop Line 2074  c      stop
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.  

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22