Merge remote-tracking branch 'origin/release-v4.5.2'
[WRF.git] / var / da / da_physics / da_julian_day.inc
blob60a730b2405d0d1bf93b9320448535b37510150b
1 subroutine da_julian_day(NY,NM,ND,JD,METHOD) 
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    ! method = 1: input ---- ny, nm, nd.  output ---- jd                         
6    ! method = 2: input ---- ny, jd.      output ---- nm, nd            
7    !----------------------------------------------------------------------- 
8     
9    implicit none
11    integer,  intent(in)    :: METHOD, NY
12    integer,  intent(inout) :: NM, ND, JD
14    integer                 :: LOOP
15    integer, dimension(12)  :: MDAY = (/31,28,31,30,31,30,31,31,30,31,30,31/)
17    if (trace_use_dull) call da_trace_entry("da_julian_day")
19    if (mod(ny,4) == 0) then
20       mday(2)=29      
21       if (mod(ny,100) == 0) then
22          mday(2)=28
23          if (mod(ny,400) == 0) then
24             mday(2)=29
25          end if
26       end if
27    end if
29    if (method == 1) then                  
30       jd=nd
31       juday: do loop=1,nm-1                  
32          jd=jd+mday(loop)                
33       end do juday                           
34    else if (method == 2) then             
35       nm=1                               
36       nd=jd
37       do loop=1,11                    
38          if (nd <= mday(loop)) exit
40          nd=nd-mday(loop)     
41          nm=nm+1                      
42       end do
43    end if   
45    if (trace_use_dull) call da_trace_exit("da_julian_day")                             
47 end subroutine da_julian_day