11 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
12 INTEGER,
DIMENSION(:),
INTENT(IN) :: k1d_in
13 INTEGER,
DIMENSION(:),
INTENT(OUT):: k1d_out
14 INTEGER,
OPTIONAL,
INTENT(IN) :: kmiss
19 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
20 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: k1d_in
21 INTEGER,
DIMENSION(:,:),
INTENT(OUT):: k1d_out
22 INTEGER,
OPTIONAL,
INTENT(IN) :: kmiss
27 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
28 LOGICAL,
DIMENSION(:),
INTENT(IN) :: o1d_in
29 LOGICAL,
DIMENSION(:),
INTENT(OUT):: o1d_out
30 LOGICAL,
OPTIONAL,
INTENT(IN) :: omiss
35 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
36 REAL,
DIMENSION(:),
INTENT(IN) :: p1d_in
37 REAL,
DIMENSION(:),
INTENT(OUT):: p1d_out
38 REAL,
OPTIONAL,
INTENT(IN) :: pmiss
43 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
44 REAL,
DIMENSION(:,:),
INTENT(IN) :: p2d_in
45 REAL,
DIMENSION(:,:),
INTENT(OUT):: p2d_out
46 REAL,
OPTIONAL,
INTENT(IN) :: pmiss
52 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
53 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: p3d_in
54 REAL,
DIMENSION(:,:,:),
INTENT(OUT):: p3d_out
55 REAL,
OPTIONAL,
INTENT(IN) :: pmiss
61 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
62 REAL,
DIMENSION(:,:,:,:),
INTENT(IN) :: p4d_in
63 REAL,
DIMENSION(:,:,:,:),
INTENT(OUT):: p4d_out
64 REAL,
OPTIONAL,
INTENT(IN) :: pmiss
111 USE yomhook
,ONLY : lhook, dr_hook
112 USE parkind1
,ONLY : jprb
119 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
120 REAL,
DIMENSION(:),
INTENT(IN) :: p1d_in
121 REAL,
DIMENSION(:),
INTENT(OUT):: p1d_out
122 REAL,
OPTIONAL,
INTENT(IN) :: pmiss
128 REAL(KIND=JPRB) :: zhook_handle
132 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM1D',0,zhook_handle)
133 IF(present(pmiss))
THEN
140 DO ji=1,
SIZE(p1d_in,1)
141 p1d_out(km(ji)) = p1d_in(ji)
143 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM1D',1,zhook_handle)
188 USE yomhook
,ONLY : lhook, dr_hook
189 USE parkind1
,ONLY : jprb
196 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
197 INTEGER,
DIMENSION(:),
INTENT(IN) :: k1d_in
198 INTEGER,
DIMENSION(:),
INTENT(OUT):: k1d_out
199 INTEGER,
OPTIONAL,
INTENT(IN) :: kmiss
205 REAL(KIND=JPRB) :: zhook_handle
209 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM1DI',0,zhook_handle)
210 IF(present(kmiss))
THEN
217 DO ji=1,
SIZE(k1d_in,1)
218 k1d_out(km(ji)) = k1d_in(ji)
220 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM1DI',1,zhook_handle)
265 USE yomhook
,ONLY : lhook, dr_hook
266 USE parkind1
,ONLY : jprb
273 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
274 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: k2d_in
275 INTEGER,
DIMENSION(:,:),
INTENT(OUT):: k2d_out
276 REAL,
OPTIONAL,
INTENT(IN) :: pmiss
282 REAL(KIND=JPRB) :: zhook_handle
286 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM2DI',0,zhook_handle)
288 IF(present(pmiss))
THEN
291 k2d_out(:,:) = nundef
294 DO jj=1,
SIZE(k2d_in,2)
296 DO ji=1,
SIZE(k2d_in,1)
297 k2d_out(km(ji),jj) = k2d_in(ji,jj)
300 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM2DI',1,zhook_handle)
343 USE yomhook
,ONLY : lhook, dr_hook
344 USE parkind1
,ONLY : jprb
351 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
352 LOGICAL,
DIMENSION(:),
INTENT(IN) :: o1d_in
353 LOGICAL,
DIMENSION(:),
INTENT(OUT):: o1d_out
354 LOGICAL,
OPTIONAL,
INTENT(IN) :: omiss
360 REAL(KIND=JPRB) :: zhook_handle
364 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM1DL',0,zhook_handle)
365 IF(present(omiss))
THEN
372 DO ji=1,
SIZE(o1d_in,1)
373 o1d_out(km(ji)) = o1d_in(ji)
375 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM1DL',1,zhook_handle)
420 USE yomhook
,ONLY : lhook, dr_hook
421 USE parkind1
,ONLY : jprb
428 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
429 REAL,
DIMENSION(:,:),
INTENT(IN) :: p2d_in
430 REAL,
DIMENSION(:,:),
INTENT(OUT):: p2d_out
431 REAL,
OPTIONAL,
INTENT(IN) :: pmiss
437 REAL(KIND=JPRB) :: zhook_handle
441 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM2D',0,zhook_handle)
442 IF(present(pmiss))
THEN
445 p2d_out(:,:) = xundef
448 DO jj=1,
SIZE(p2d_in,2)
450 DO ji=1,
SIZE(p2d_in,1)
451 p2d_out(km(ji),jj) = p2d_in(ji,jj)
454 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM2D',1,zhook_handle)
501 USE yomhook
,ONLY : lhook, dr_hook
502 USE parkind1
,ONLY : jprb
509 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
510 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: p3d_in
511 REAL,
DIMENSION(:,:,:),
INTENT(OUT):: p3d_out
512 REAL,
OPTIONAL,
INTENT(IN) :: pmiss
517 INTEGER :: ji, jj, jk
518 REAL(KIND=JPRB) :: zhook_handle
522 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM3D',0,zhook_handle)
523 IF(present(pmiss))
THEN
524 p3d_out(:,:,:) = pmiss
526 p3d_out(:,:,:) = xundef
529 DO jk=1,
SIZE(p3d_in,3)
530 DO jj=1,
SIZE(p3d_in,2)
532 DO ji=1,
SIZE(p3d_in,1)
533 p3d_out(km(ji),jj,jk) = p3d_in(ji,jj,jk)
537 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM3D',1,zhook_handle)
583 USE yomhook
,ONLY : lhook, dr_hook
584 USE parkind1
,ONLY : jprb
591 INTEGER,
DIMENSION(:),
INTENT(IN) :: km
592 REAL,
DIMENSION(:,:,:,:),
INTENT(IN) :: p4d_in
593 REAL,
DIMENSION(:,:,:,:),
INTENT(OUT):: p4d_out
594 REAL,
OPTIONAL,
INTENT(IN) :: pmiss
600 INTEGER :: ji, jj, jk, jl
601 REAL(KIND=JPRB) :: zhook_handle
605 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM4D',0,zhook_handle)
606 IF(present(pmiss))
THEN
607 p4d_out(:,:,:,:) = pmiss
609 p4d_out(:,:,:,:) = xundef
612 DO jl=1,
SIZE(p4d_out,4)
613 DO jk=1,
SIZE(p4d_out,3)
614 DO jj=1,
SIZE(p4d_out,2)
616 DO ji=1,
SIZE(p4d_out,1)
617 p4d_out(km(ji),jj,jk,jl) = p4d_in(ji,jj,jk,jl)
622 IF (lhook) CALL dr_hook(
'MODI_UNPACK_SAME_RANK:UNPACK_SAME_RANK_FROM4D',1,zhook_handle)
subroutine unpack_same_rank_from3d(KM, P3D_IN, P3D_OUT, PMISS)
subroutine unpack_same_rank_from2di(KM, K2D_IN, K2D_OUT, PMISS)
subroutine unpack_same_rank_from1d(KM, P1D_IN, P1D_OUT, PMISS)
subroutine unpack_same_rank_from1dl(KM, O1D_IN, O1D_OUT, OMISS)
subroutine unpack_same_rank_from2d(KM, P2D_IN, P2D_OUT, PMISS)
subroutine unpack_same_rank_from4d(KM, P4D_IN, P4D_OUT, PMISS)
subroutine unpack_same_rank_from1di(KM, K1D_IN, K1D_OUT, KMISS)