5 SUBROUTINE put_in_time(HNAME,HTYPE,NTIME1,NTIME2,PDATA)
14 CHARACTER(LEN=*),
INTENT(IN) :: HNAME
15 CHARACTER(LEN=3),
INTENT(IN) :: HTYPE
17 INTEGER,
INTENT(IN) :: NTIME1
18 INTEGER,
INTENT(IN) :: NTIME2
19 REAL,
DIMENSION(:,:,:),
INTENT(INOUT) :: PDATA
21 CHARACTER(LEN=2) :: YTIME1, YTIME2
22 INTEGER :: I1, I2, JJ, JTIME
23 REAL,
DIMENSION(SIZE(PDATA,1),NTIME1,SIZE(PDATA,3)) :: ZDATA
24 REAL(KIND=JPRB) :: ZHOOK_HANDLE
29 IF (ntime1.LE.0 .OR. ntime1.GT.ntime2)
THEN 30 CALL abor1_sfx(
"PUT_IN_TIME: NTIME1 MUST BE <= NTIME2 AND > 0")
31 ELSEIF (ntime1==ntime2)
THEN 34 ELSEIF (ntime1==1)
THEN 36 pdata(:,jj,:)=pdata(:,1,:)
38 ELSEIF (ntime1==2)
THEN 39 IF (ntime2.EQ.36)
THEN 42 pdata(:,jj,:)=zdata(:,1,:)
45 pdata(:,jj,:)=zdata(:,2,:)
48 pdata(:,jj,:)=zdata(:,1,:)
50 ELSEIF (ntime2.EQ.12)
THEN 53 pdata(:,jj,:)=zdata(:,1,:)
56 pdata(:,jj,:)=zdata(:,2,:)
59 pdata(:,jj,:)=zdata(:,1,:)
62 CALL abor1_sfx(
'PUT_IN_TIME: WITH NTIME1=2, NTIME2 MUST BE =36 OR =12 (WINTER AND SUMMER VALUES) '//&
63 'PROBLEM VAR '//hname//
''//htype)
69 WRITE(ytime1,
'(I2.2)')ntime1
70 WRITE(ytime2,
'(I2.2)')ntime2
71 CALL abor1_sfx(
'PUT_INT_TIME: NTIME2 (='//ytime2(1:len_trim(ytime2)) // &
72 ') MUST BE A MULTIPLE OF NTIME1 (='//ytime1(1:len_trim(ytime1))// &
73 ') PROBLEM VAR '//hname//
''//htype)
75 zdata=pdata(:,1:ntime1,:)
77 DO jj=(jtime-1)*i1+1,jtime*i1
78 pdata(:,jj,:)=zdata(:,jtime,:)
subroutine abor1_sfx(YTEXT)
subroutine put_in_time(HNAME, HTYPE, NTIME1, NTIME2, PDATA)